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

FileNotFoundError: [Errno 2] No such file or directory: 'README.md' with uvicorn-0.2.1.tar.gz #10856

Closed
jtremesay-sereema opened this issue Jan 31, 2022 · 7 comments
Labels
type: bug A confirmed bug or unintended behavior

Comments

@jtremesay-sereema
Copy link

Description

When we try to install the dependencies of our project with pip 22.0.2, the following error occur: "Encountered error while generating package metadata".

Expected behavior

We expected to have our dependencies installed without error, like with pip 21.3.1 and priors.

pip version

22.0.2

Python version

3.9.10

OS

Mac OS X 12.2 & Debian Bullseye

How to Reproduce

Install packages from the following requirements.txt:

aiodns
aiohttp
aioredis
asgiref
babel
backoff
beautifulsoup4
bleach
brotli
boto3
botocore
certifi
channels
channels_redis
chardet
cryptography
csscompressor
dj-database-url
django
django-admin-sortable2
django-compressor
django-countries
django-imagekit
django-markdown-deux
django-multiupload
django-phonenumber-field
django-s3-storage
fuzzy-c-means
freezegun
geomag
gunicorn
httptools
inflection
ipython
luhn
markdown2
natsort
numpy
opencv-contrib-python-headless
phonenumberslite
pillow
psutil
psycopg2-binary
python-dateutil
pytz
requests
ruptures
scikit-learn
scipy
sentry-sdk
tracking-url
unittest-xml-reporting
uvicorn
uvloop
websockets
whitenoise

Output

$ python3 --version
Python 3.9.10
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -U pip setuptools wheel
$ pip --version pip 
22.0.2 from /Users/jtremesay/projects/XXX/venv/lib/python3.9/site-packages/pip (python 3.9)
$ pip install -Ur requirements.txt
(snip)
Collecting websockets
  Using cached websockets-7.0.tar.gz (49 kB)
  Preparing metadata (setup.py) ... done
Collecting uvicorn
  Using cached uvicorn-0.8.5.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.4.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.3.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.2.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.3.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.2.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.6.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.6.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.2.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.1.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.0.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.6.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.5.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.4.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.3.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.2.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.1.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.0.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.32.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.31.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.30.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.29.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.28.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.27.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.26.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.25.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.24.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.23.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.22.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.21.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.20.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.19.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.18.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.17.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.16.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.15.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.14.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.13.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.12.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.11.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.10.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.9.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.8.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.7.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.6.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.5.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.4.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.3.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.2.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.1.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.0.tar.gz (16 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.22.tar.gz (15 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.21.tar.gz (14 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.20.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.19.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.18.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.17.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.16.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.15.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.14.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.13.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.12.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.11.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.10.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.9.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.8.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.7.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.6.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.5.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.4.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.3.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.2.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Collecting websockets
  Using cached websockets-3.3-py33.py34.py35.py36-none-any.whl (38 kB)
Collecting uvicorn
  Using cached uvicorn-0.2.1.tar.gz (10 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/qg/8rtxdx1n14d0yp808z4wscmm0000gn/T/pip-install-_5gde19q/uvicorn_7ce7d1df69b449fa9fc86c6ae610f771/setup.py", line 41, in <module>
          long_description=get_long_description(),
        File "/private/var/folders/qg/8rtxdx1n14d0yp808z4wscmm0000gn/T/pip-install-_5gde19q/uvicorn_7ce7d1df69b449fa9fc86c6ae610f771/setup.py", line 23, in get_long_description
          return open('README.md', 'r').read()
      FileNotFoundError: [Errno 2] No such file or directory: 'README.md'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.


### Code of Conduct

- [X] I agree to follow the [PSF Code of Conduct](https://www.python.org/psf/conduct/).
@jtremesay-sereema jtremesay-sereema added S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior labels Jan 31, 2022
@pfmoore
Copy link
Member

pfmoore commented Jan 31, 2022

The error is because uvicorn-0.2.1.tar.gz won't build. That in itself is a problem for the uvicorn project. But the question is why pip is trying to use such an old version of uvicorn. This is likely because of a conflict in your reqirements, but pip isn't reporting what the conflict is.

Maybe that's a result of #10655?

@malkir
Copy link

malkir commented Jan 31, 2022

@jtremesay-sereema It's related to the version of uvicorn, uvicorn==0.2.1 fails with:
FileNotFoundError: [Errno 2] No such file or directory: 'README.md'

This is fixed in uvicorn>=0.2.2.

Also consider the latest uvicorn is at 0.17.1 now, even 0.2.2 is quite a bit behind.

@jtremesay-sereema
Copy link
Author

jtremesay-sereema commented Jan 31, 2022

@malkir As you can see in the requirements.txt, we don’t pin the version of the dependencies.

When using pip 21.3.1 (pip install -U "pip < 22" setuptools wheel && pip install -Ur requirements.txt), uvicorn 0.17.1 is installed as expected:

$ pip --version
pip 21.3.1 from /Users/jtremesay/projects/XXX/venv/lib/python3.9/site-packages/pip (python 3.9)
$ pip freeze
aiodns==3.0.0
aiohttp==3.8.1
aioredis==1.3.1
aiosignal==1.2.0
appnope==0.1.2
asgiref==3.5.0
async-timeout==4.0.2
attrs==21.4.0
autobahn==22.1.1
Automat==20.2.0
Babel==2.9.1
backcall==0.2.0
backoff==1.11.1
beautifulsoup4==4.10.0
bleach==4.1.0
boto3==1.20.46
botocore==1.23.46
Brotli==1.0.9
certifi==2021.10.8
cffi==1.15.0
channels==3.0.4
channels-redis==3.3.1
chardet==4.0.0
charset-normalizer==2.0.11
click==7.1.2
constantly==15.1.0
cryptography==36.0.1
csscompressor==0.9.5
daphne==3.0.2
decorator==5.1.1
dj-database-url==0.5.0
Django==4.0.1
django-admin-sortable2==1.0.3
django-appconf==1.0.5
django-compressor==3.1
django-countries==7.2.1
django-imagekit==4.1.0
django-markdown-deux==1.0.5
django-multiupload==0.6.1
django-phonenumber-field==6.0.0
django-s3-storage==0.13.5
freezegun==1.1.0
frozenlist==1.3.0
fuzzy-c-means==1.6.3
geomag==0.9.2015
gunicorn==20.1.0
h11==0.13.0
hiredis==2.0.0
httptools==0.3.0
hyperlink==21.0.0
idna==3.3
incremental==21.3.0
inflection==0.5.1
ipython==7.31.1
jedi==0.18.1
jmespath==0.10.0
joblib==1.1.0
luhn==0.2.0
lxml==4.7.1
markdown2==2.4.2
matplotlib-inline==0.1.3
msgpack==1.0.3
multidict==6.0.2
natsort==8.1.0
numpy==1.22.1
opencv-contrib-python-headless==4.5.5.62
packaging==21.3
parso==0.8.3
pexpect==4.8.0
phonenumberslite==8.12.42
pickleshare==0.7.5
pilkit==2.0
Pillow==9.0.0
prompt-toolkit==3.0.26
psutil==5.9.0
psycopg2-binary==2.9.3
ptyprocess==0.7.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycares==4.1.2
pycparser==2.21
pydantic==1.9.0
Pygments==2.11.2
pyOpenSSL==22.0.0
pyparsing==3.0.7
python-dateutil==2.8.2
pytz==2021.3
rcssmin==1.1.0
requests==2.27.1
rjsmin==1.2.0
ruptures==1.1.6
s3transfer==0.5.0
scikit-learn==1.0.2
scipy==1.7.3
sentry-sdk==1.5.4
service-identity==21.1.0
six==1.16.0
soupsieve==2.3.1
sqlparse==0.4.2
tabulate==0.8.9
threadpoolctl==3.0.0
tracking-url==0.0.5
traitlets==5.1.1
Twisted==21.7.0
txaio==21.2.1
typer==0.3.2
typing_extensions==4.0.1
unittest-xml-reporting==3.2.0
urllib3==1.26.8
uvicorn==0.17.1
uvloop==0.16.0
wcwidth==0.2.5
webencodings==0.5.1
websockets==10.1
whitenoise==5.3.0
yarl==1.7.2
zope.interface==5.4.0

@pfmoore
Copy link
Member

pfmoore commented Jan 31, 2022

What output do you get if you require uvicorn>=0.2.2?

@jtremesay-sereema
Copy link
Author

@pfmoore I don’t see the error if I use uvicorn>=0.2.2. But the installation take forever (running for 15 minutes now and counting, <2 min with previous version of pip)

Requirement already satisfied: aiodns in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 2)) (3.0.0)
Requirement already satisfied: aiohttp in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 3)) (3.8.1)
Requirement already satisfied: aioredis in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 4)) (1.3.1)
Collecting aioredis
  Using cached aioredis-2.0.1-py3-none-any.whl (71 kB)
Requirement already satisfied: asgiref in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 5)) (3.5.0)
Requirement already satisfied: babel in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 6)) (2.9.1)
Requirement already satisfied: backoff in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 7)) (1.11.1)
Requirement already satisfied: beautifulsoup4 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 8)) (4.10.0)
Requirement already satisfied: bleach in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 9)) (4.1.0)
Requirement already satisfied: brotli in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 10)) (1.0.9)
Requirement already satisfied: boto3 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 11)) (1.20.46)
Requirement already satisfied: botocore in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 12)) (1.23.46)
Requirement already satisfied: certifi in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 13)) (2021.10.8)
Requirement already satisfied: channels in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 14)) (3.0.4)
Requirement already satisfied: channels_redis in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 15)) (3.3.1)
Requirement already satisfied: chardet in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 16)) (4.0.0)
Requirement already satisfied: cryptography in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 17)) (36.0.1)
Requirement already satisfied: csscompressor in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 18)) (0.9.5)
Requirement already satisfied: dj-database-url in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 19)) (0.5.0)
Requirement already satisfied: django in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 20)) (4.0.1)
Requirement already satisfied: django-admin-sortable2 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 21)) (1.0.3)
Requirement already satisfied: django-compressor in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 22)) (3.1)
Requirement already satisfied: django-countries in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 23)) (7.2.1)
Requirement already satisfied: django-imagekit in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 24)) (4.1.0)
Requirement already satisfied: django-markdown-deux in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 25)) (1.0.5)
Requirement already satisfied: django-multiupload in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 26)) (0.6.1)
Requirement already satisfied: django-phonenumber-field in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 27)) (6.0.0)
Requirement already satisfied: django-s3-storage in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 28)) (0.13.5)
Requirement already satisfied: fuzzy-c-means in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 29)) (1.6.3)
Requirement already satisfied: freezegun in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 30)) (1.1.0)
Requirement already satisfied: geomag in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 31)) (0.9.2015)
Requirement already satisfied: gunicorn in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 32)) (20.1.0)
Requirement already satisfied: httptools in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 33)) (0.3.0)
Requirement already satisfied: inflection in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 34)) (0.5.1)
Requirement already satisfied: ipython in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 35)) (7.31.1)
Collecting ipython
  Using cached ipython-8.0.1-py3-none-any.whl (747 kB)
Requirement already satisfied: luhn in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 36)) (0.2.0)
Requirement already satisfied: markdown2 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 37)) (2.4.2)
Requirement already satisfied: natsort in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 38)) (8.1.0)
Requirement already satisfied: numpy in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 39)) (1.22.1)
Requirement already satisfied: opencv-contrib-python-headless in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 40)) (4.5.5.62)
Requirement already satisfied: phonenumberslite in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 41)) (8.12.42)
Requirement already satisfied: pillow in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 42)) (9.0.0)
Requirement already satisfied: psutil in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 43)) (5.9.0)
Requirement already satisfied: psycopg2-binary in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 44)) (2.9.3)
Requirement already satisfied: python-dateutil in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 45)) (2.8.2)
Requirement already satisfied: pytz in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 46)) (2021.3)
Requirement already satisfied: requests in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 47)) (2.27.1)
Requirement already satisfied: ruptures in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 48)) (1.1.6)
Requirement already satisfied: scikit-learn in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 49)) (1.0.2)
Requirement already satisfied: scipy in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 50)) (1.7.3)
Requirement already satisfied: sentry-sdk in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 51)) (1.5.4)
Requirement already satisfied: tracking-url in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 52)) (0.0.5)
Requirement already satisfied: unittest-xml-reporting in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 53)) (3.2.0)
Requirement already satisfied: uvicorn>=0.2.2 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 54)) (0.17.1)
Requirement already satisfied: uvloop in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 55)) (0.16.0)
Requirement already satisfied: websockets in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 56)) (10.1)
Requirement already satisfied: whitenoise in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 57)) (5.3.0)
Requirement already satisfied: pycares>=4.0.0 in ./venv/lib/python3.9/site-packages (from aiodns->-r requirements.txt (line 2)) (4.1.2)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (4.0.2)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (2.0.11)
Requirement already satisfied: frozenlist>=1.1.1 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (1.3.0)
Requirement already satisfied: attrs>=17.3.0 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (21.4.0)
Requirement already satisfied: aiosignal>=1.1.2 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (1.2.0)
Requirement already satisfied: yarl<2.0,>=1.0 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (1.7.2)
Requirement already satisfied: multidict<7.0,>=4.5 in ./venv/lib/python3.9/site-packages (from aiohttp->-r requirements.txt (line 3)) (6.0.2)
Requirement already satisfied: typing-extensions in ./venv/lib/python3.9/site-packages (from aioredis->-r requirements.txt (line 4)) (4.0.1)
Requirement already satisfied: soupsieve>1.2 in ./venv/lib/python3.9/site-packages (from beautifulsoup4->-r requirements.txt (line 8)) (2.3.1)
Requirement already satisfied: packaging in ./venv/lib/python3.9/site-packages (from bleach->-r requirements.txt (line 9)) (21.3)
Requirement already satisfied: six>=1.9.0 in ./venv/lib/python3.9/site-packages (from bleach->-r requirements.txt (line 9)) (1.16.0)
Requirement already satisfied: webencodings in ./venv/lib/python3.9/site-packages (from bleach->-r requirements.txt (line 9)) (0.5.1)
Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in ./venv/lib/python3.9/site-packages (from boto3->-r requirements.txt (line 11)) (0.5.0)
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in ./venv/lib/python3.9/site-packages (from boto3->-r requirements.txt (line 11)) (0.10.0)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in ./venv/lib/python3.9/site-packages (from botocore->-r requirements.txt (line 12)) (1.26.8)
Requirement already satisfied: daphne<4,>=3.0 in ./venv/lib/python3.9/site-packages (from channels->-r requirements.txt (line 14)) (3.0.2)
Requirement already satisfied: msgpack~=1.0 in ./venv/lib/python3.9/site-packages (from channels_redis->-r requirements.txt (line 15)) (1.0.3)
Requirement already satisfied: hiredis in ./venv/lib/python3.9/site-packages (from aioredis->-r requirements.txt (line 4)) (2.0.0)
Requirement already satisfied: cffi>=1.12 in ./venv/lib/python3.9/site-packages (from cryptography->-r requirements.txt (line 17)) (1.15.0)
Requirement already satisfied: sqlparse>=0.2.2 in ./venv/lib/python3.9/site-packages (from django->-r requirements.txt (line 20)) (0.4.2)
Requirement already satisfied: django-appconf>=1.0.3 in ./venv/lib/python3.9/site-packages (from django-compressor->-r requirements.txt (line 22)) (1.0.5)
Requirement already satisfied: rjsmin==1.2.0 in ./venv/lib/python3.9/site-packages (from django-compressor->-r requirements.txt (line 22)) (1.2.0)
Requirement already satisfied: rcssmin==1.1.0 in ./venv/lib/python3.9/site-packages (from django-compressor->-r requirements.txt (line 22)) (1.1.0)
Requirement already satisfied: pilkit>=0.2.0 in ./venv/lib/python3.9/site-packages (from django-imagekit->-r requirements.txt (line 24)) (2.0)
Requirement already satisfied: pydantic<2.0.0,>=1.8.2 in ./venv/lib/python3.9/site-packages (from fuzzy-c-means->-r requirements.txt (line 29)) (1.9.0)
Requirement already satisfied: typer<0.4.0,>=0.3.2 in ./venv/lib/python3.9/site-packages (from fuzzy-c-means->-r requirements.txt (line 29)) (0.3.2)
Requirement already satisfied: tabulate<0.9.0,>=0.8.9 in ./venv/lib/python3.9/site-packages (from fuzzy-c-means->-r requirements.txt (line 29)) (0.8.9)
Requirement already satisfied: setuptools>=3.0 in ./venv/lib/python3.9/site-packages (from gunicorn->-r requirements.txt (line 32)) (60.6.0)
Requirement already satisfied: pygments in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (2.11.2)
Requirement already satisfied: jedi>=0.16 in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (0.18.1)
Collecting black
  Using cached black-22.1.0-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB)
Requirement already satisfied: matplotlib-inline in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (0.1.3)
Requirement already satisfied: backcall in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (0.2.0)
Requirement already satisfied: decorator in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (5.1.1)
Requirement already satisfied: appnope in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (0.1.2)
Requirement already satisfied: pickleshare in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (3.0.26)
Collecting stack-data
  Using cached stack_data-0.1.4-py3-none-any.whl (20 kB)
Requirement already satisfied: pexpect>4.3 in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (4.8.0)
Requirement already satisfied: traitlets>=5 in ./venv/lib/python3.9/site-packages (from ipython->-r requirements.txt (line 35)) (5.1.1)
Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.9/site-packages (from requests->-r requirements.txt (line 47)) (3.3)
Requirement already satisfied: joblib>=0.11 in ./venv/lib/python3.9/site-packages (from scikit-learn->-r requirements.txt (line 49)) (1.1.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in ./venv/lib/python3.9/site-packages (from scikit-learn->-r requirements.txt (line 49)) (3.0.0)
Requirement already satisfied: lxml in ./venv/lib/python3.9/site-packages (from unittest-xml-reporting->-r requirements.txt (line 53)) (4.7.1)
Requirement already satisfied: h11>=0.8 in ./venv/lib/python3.9/site-packages (from uvicorn>=0.2.2->-r requirements.txt (line 54)) (0.13.0)
Requirement already satisfied: click>=7.0 in ./venv/lib/python3.9/site-packages (from uvicorn>=0.2.2->-r requirements.txt (line 54)) (7.1.2)
Requirement already satisfied: pycparser in ./venv/lib/python3.9/site-packages (from cffi>=1.12->cryptography->-r requirements.txt (line 17)) (2.21)
Requirement already satisfied: twisted[tls]>=18.7 in ./venv/lib/python3.9/site-packages (from daphne<4,>=3.0->channels->-r requirements.txt (line 14)) (21.7.0)
Requirement already satisfied: autobahn>=0.18 in ./venv/lib/python3.9/site-packages (from daphne<4,>=3.0->channels->-r requirements.txt (line 14)) (22.1.1)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in ./venv/lib/python3.9/site-packages (from jedi>=0.16->ipython->-r requirements.txt (line 35)) (0.8.3)
Requirement already satisfied: ptyprocess>=0.5 in ./venv/lib/python3.9/site-packages (from pexpect>4.3->ipython->-r requirements.txt (line 35)) (0.7.0)
Requirement already satisfied: wcwidth in ./venv/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython->-r requirements.txt (line 35)) (0.2.5)
Collecting platformdirs>=2
  Using cached platformdirs-2.4.1-py3-none-any.whl (14 kB)
Collecting mypy-extensions>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
INFO: pip is looking at multiple versions of backcall to determine which version is compatible with other requirements. This could take a while.
Collecting backcall
  Using cached backcall-0.2.0-py2.py3-none-any.whl (11 kB)
INFO: pip is looking at multiple versions of appnope to determine which version is compatible with other requirements. This could take a while.
Collecting appnope
  Using cached appnope-0.1.2-py2.py3-none-any.whl (4.3 kB)
INFO: pip is looking at multiple versions of yarl to determine which version is compatible with other requirements. This could take a while.
Collecting yarl<2.0,>=1.0
  Using cached yarl-1.7.2-cp39-cp39-macosx_10_9_x86_64.whl (121 kB)
INFO: pip is looking at multiple versions of urllib3 to determine which version is compatible with other requirements. This could take a while.
Collecting urllib3<1.27,>=1.25.4
  Using cached urllib3-1.26.8-py2.py3-none-any.whl (138 kB)
INFO: pip is looking at multiple versions of typing-extensions to determine which version is compatible with other requirements. This could take a while.
Collecting typing-extensions
  Using cached typing_extensions-4.0.1-py3-none-any.whl (22 kB)
INFO: pip is looking at multiple versions of typer to determine which version is compatible with other requirements. This could take a while.
Collecting typer<0.4.0,>=0.3.2
  Using cached typer-0.3.2-py3-none-any.whl (21 kB)
INFO: pip is looking at multiple versions of traitlets to determine which version is compatible with other requirements. This could take a while.
Collecting traitlets>=5
  Using cached traitlets-5.1.1-py3-none-any.whl (102 kB)
INFO: pip is looking at multiple versions of threadpoolctl to determine which version is compatible with other requirements. This could take a while.
Collecting threadpoolctl>=2.0.0
  Using cached threadpoolctl-3.0.0-py3-none-any.whl (14 kB)
INFO: pip is looking at multiple versions of tabulate to determine which version is compatible with other requirements. This could take a while.
Collecting tabulate<0.9.0,>=0.8.9
  Using cached tabulate-0.8.9-py3-none-any.whl (25 kB)
INFO: pip is looking at multiple versions of typer to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of sqlparse to determine which version is compatible with other requirements. This could take a while.
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.2-py3-none-any.whl (42 kB)
INFO: pip is looking at multiple versions of soupsieve to determine which version is compatible with other requirements. This could take a while.
Collecting soupsieve>1.2
  Using cached soupsieve-2.3.1-py3-none-any.whl (37 kB)
INFO: pip is looking at multiple versions of six to determine which version is compatible with other requirements. This could take a while.
Collecting six>=1.9.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of s3transfer to determine which version is compatible with other requirements. This could take a while.
Collecting s3transfer<0.6.0,>=0.5.0
  Using cached s3transfer-0.5.0-py3-none-any.whl (79 kB)
INFO: pip is looking at multiple versions of pydantic to determine which version is compatible with other requirements. This could take a while.
Collecting pydantic<2.0.0,>=1.8.2
  Using cached pydantic-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl (2.9 MB)
INFO: pip is looking at multiple versions of pycares to determine which version is compatible with other requirements. This could take a while.
Collecting pycares>=4.0.0
  Using cached pycares-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl (75 kB)
INFO: pip is looking at multiple versions of prompt-toolkit to determine which version is compatible with other requirements. This could take a while.
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
  Using cached prompt_toolkit-3.0.26-py3-none-any.whl (375 kB)
INFO: pip is looking at multiple versions of pilkit to determine which version is compatible with other requirements. This could take a while.
Collecting pilkit>=0.2.0
  Using cached pilkit-2.0-py3-none-any.whl
INFO: pip is looking at multiple versions of pexpect to determine which version is compatible with other requirements. This could take a while.
Collecting pexpect>4.3
  Using cached pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
INFO: pip is looking at multiple versions of multidict to determine which version is compatible with other requirements. This could take a while.
Collecting multidict<7.0,>=4.5
  Using cached multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl (28 kB)
INFO: pip is looking at multiple versions of msgpack to determine which version is compatible with other requirements. This could take a while.
Collecting msgpack~=1.0
  Using cached msgpack-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl (75 kB)
INFO: pip is looking at multiple versions of joblib to determine which version is compatible with other requirements. This could take a while.
Collecting joblib>=0.11
  Using cached joblib-1.1.0-py2.py3-none-any.whl (306 kB)
INFO: pip is looking at multiple versions of jmespath to determine which version is compatible with other requirements. This could take a while.
Collecting jmespath<1.0.0,>=0.7.1
  Using cached jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
INFO: pip is looking at multiple versions of jedi to determine which version is compatible with other requirements. This could take a while.
Collecting jedi>=0.16
  Using cached jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
INFO: pip is looking at multiple versions of idna to determine which version is compatible with other requirements. This could take a while.
Collecting idna<4,>=2.5
  Using cached idna-3.3-py3-none-any.whl (61 kB)
INFO: pip is looking at multiple versions of h11 to determine which version is compatible with other requirements. This could take a while.
Collecting h11>=0.8
  Using cached h11-0.13.0-py3-none-any.whl (58 kB)
INFO: pip is looking at multiple versions of frozenlist to determine which version is compatible with other requirements. This could take a while.
Collecting frozenlist>=1.1.1
  Using cached frozenlist-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl (36 kB)
INFO: pip is looking at multiple versions of django-appconf to determine which version is compatible with other requirements. This could take a while.
Collecting django-appconf>=1.0.3
  Using cached django_appconf-1.0.5-py3-none-any.whl (6.4 kB)
INFO: pip is looking at multiple versions of daphne to determine which version is compatible with other requirements. This could take a while.
Collecting daphne<4,>=3.0
  Using cached daphne-3.0.2-py3-none-any.whl (26 kB)
INFO: pip is looking at multiple versions of click to determine which version is compatible with other requirements. This could take a while.
Collecting click>=7.0
  Using cached click-8.0.3-py3-none-any.whl (97 kB)
  Using cached click-7.1.2-py2.py3-none-any.whl (82 kB)
  Using cached click-7.1.1-py2.py3-none-any.whl (82 kB)
  Using cached click-8.0.2-py3-none-any.whl (97 kB)
INFO: pip is looking at multiple versions of click to determine which version is compatible with other requirements. This could take a while.
  Using cached click-8.0.1-py3-none-any.whl (97 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached click-8.0.0-py3-none-any.whl (96 kB)
  Using cached click-7.1-py2.py3-none-any.whl (82 kB)
  Using cached Click-7.0-py2.py3-none-any.whl (81 kB)
INFO: pip is looking at multiple versions of charset-normalizer to determine which version is compatible with other requirements. This could take a while.
Collecting charset-normalizer<3.0,>=2.0
  Using cached charset_normalizer-2.0.11-py3-none-any.whl (39 kB)
  Using cached charset_normalizer-2.0.10-py3-none-any.whl (39 kB)
INFO: pip is looking at multiple versions of cffi to determine which version is compatible with other requirements. This could take a while.
Collecting cffi>=1.12
  Using cached cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl (178 kB)
  Using cached cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl (176 kB)
INFO: pip is looking at multiple versions of attrs to determine which version is compatible with other requirements. This could take a while.
Collecting attrs>=17.3.0
  Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
  Using cached attrs-21.3.0-py2.py3-none-any.whl (61 kB)
INFO: pip is looking at multiple versions of async-timeout to determine which version is compatible with other requirements. This could take a while.
Collecting async-timeout<5.0,>=4.0.0a3
  Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
  Using cached async_timeout-4.0.1-py3-none-any.whl (5.7 kB)
INFO: pip is looking at multiple versions of aiosignal to determine which version is compatible with other requirements. This could take a while.
Collecting aiosignal>=1.1.2
  Using cached aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
  Using cached aiosignal-1.1.2-py2.py3-none-any.whl (8.2 kB)
INFO: pip is looking at multiple versions of whitenoise to determine which version is compatible with other requirements. This could take a while.
Collecting whitenoise
  Using cached whitenoise-5.3.0-py2.py3-none-any.whl (19 kB)
  Using cached whitenoise-5.2.0-py2.py3-none-any.whl (19 kB)
INFO: pip is looking at multiple versions of websockets to determine which version is compatible with other requirements. This could take a while.
Collecting websockets
  Using cached websockets-10.1-cp39-cp39-macosx_10_9_x86_64.whl (96 kB)
INFO: pip is looking at multiple versions of backcall to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of appnope to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of yarl to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of urllib3 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of typing-extensions to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of traitlets to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of threadpoolctl to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of tabulate to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of sqlparse to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of soupsieve to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of six to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of s3transfer to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pydantic to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pycares to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of prompt-toolkit to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pilkit to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pexpect to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of multidict to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of msgpack to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of joblib to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of jmespath to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of jedi to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of idna to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of h11 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of frozenlist to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-appconf to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of daphne to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of charset-normalizer to determine which version is compatible with other requirements. This could take a while.
  Using cached websockets-10.0-cp39-cp39-macosx_10_9_x86_64.whl (94 kB)
INFO: pip is looking at multiple versions of uvloop to determine which version is compatible with other requirements. This could take a while.
Collecting uvloop
  Using cached uvloop-0.16.0-cp39-cp39-macosx_10_9_x86_64.whl (1.5 MB)
INFO: pip is looking at multiple versions of cffi to determine which version is compatible with other requirements. This could take a while.
  Using cached uvloop-0.15.3-cp39-cp39-macosx_10_14_x86_64.whl (1.5 MB)
INFO: pip is looking at multiple versions of uvicorn to determine which version is compatible with other requirements. This could take a while.
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.17.1-py3-none-any.whl (54 kB)
INFO: pip is looking at multiple versions of attrs to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.17.0.post1-py3-none-any.whl (54 kB)
INFO: pip is looking at multiple versions of async-timeout to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.16.0-py3-none-any.whl (54 kB)
INFO: pip is looking at multiple versions of aiosignal to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.15.0-py3-none-any.whl (54 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of whitenoise to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.14.0-py3-none-any.whl (50 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of websockets to determine which version is compatible with other requirements. This could take a while.
Collecting click>=7.*
  Using cached click-8.0.0rc1-py3-none-any.whl (92 kB)
  Using cached click-8.0.0a1-py3-none-any.whl (89 kB)
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.13.4-py3-none-any.whl (46 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of uvloop to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.13.3-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of uvicorn to determine which version is compatible with other requirements. This could take a while.
  Using cached uvicorn-0.13.2-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached uvicorn-0.13.1-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached uvicorn-0.13.0-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached uvicorn-0.12.3-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached uvicorn-0.12.2-py3-none-any.whl (45 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Using cached uvicorn-0.12.1-py3-none-any.whl (44 kB)
  Using cached uvicorn-0.12.0-py3-none-any.whl (44 kB)
Collecting h11<0.11,>=0.8
  Using cached h11-0.10.0-py2.py3-none-any.whl (53 kB)
  Using cached h11-0.9.0-py2.py3-none-any.whl (53 kB)
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.11.8-py3-none-any.whl (43 kB)
Collecting websockets
  Using cached websockets-8.1.tar.gz (58 kB)
  Preparing metadata (setup.py) ... done
Collecting httptools
  Using cached httptools-0.1.2-cp39-cp39-macosx_10_14_x86_64.whl (101 kB)
Collecting h11<0.10,>=0.8
  Using cached h11-0.8.1-py2.py3-none-any.whl (55 kB)
Collecting websockets
  Using cached websockets-8.0.2.tar.gz (57 kB)
  Preparing metadata (setup.py) ... done
  Using cached websockets-8.0.1.tar.gz (57 kB)
  Preparing metadata (setup.py) ... done
  Using cached websockets-8.0.tar.gz (57 kB)
  Preparing metadata (setup.py) ... done
INFO: pip is looking at multiple versions of httptools to determine which version is compatible with other requirements. This could take a while.
Collecting httptools
  Using cached httptools-0.1.1.tar.gz (106 kB)
  Preparing metadata (setup.py) ... done
  Using cached httptools-0.1.0.tar.gz (106 kB)
  Preparing metadata (setup.py) ... done
INFO: pip is looking at multiple versions of httptools to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.11.7-py3-none-any.whl (43 kB)
  Using cached uvicorn-0.11.6-py3-none-any.whl (43 kB)
  Using cached uvicorn-0.11.5-py3-none-any.whl (43 kB)
  Using cached uvicorn-0.11.4-py3-none-any.whl (43 kB)
  Using cached uvicorn-0.11.3-py3-none-any.whl (42 kB)
  Using cached uvicorn-0.11.2-py3-none-any.whl (42 kB)
Collecting httptools
  Using cached httptools-0.0.13.tar.gz (104 kB)
  Preparing metadata (setup.py) ... done
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.11.1-py3-none-any.whl (42 kB)
  Using cached uvicorn-0.11.0-py3-none-any.whl (42 kB)
  Using cached uvicorn-0.10.9-py3-none-any.whl (42 kB)
  Using cached uvicorn-0.10.8.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
Collecting h11==0.8.*
  Using cached h11-0.8.0-py2.py3-none-any.whl (55 kB)
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.10.7.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.6.tar.gz (28 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.5.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.4.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
Collecting uvloop
  Using cached uvloop-0.14.0rc2.tar.gz (2.0 MB)
  Preparing metadata (setup.py) ... done
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.10.3.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.2.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.1.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.10.0.tar.gz (26 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.9.1.tar.gz (25 kB)
  Preparing metadata (setup.py) ... done
Collecting uvloop
  Using cached uvloop-0.15.2-cp39-cp39-macosx_10_14_x86_64.whl (1.5 MB)
  Using cached uvloop-0.14.0.tar.gz (2.0 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.13.0.tar.gz (2.0 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.12.2.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.12.1.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.12.0.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.11.3.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.11.2.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.11.1.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.11.0.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.10.3.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.10.2.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.10.1.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.10.0.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.9.1.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.9.0.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.8.1.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.8.0.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.7.2.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.7.1.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.7.0.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.6.8.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.6.7.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.6.6.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.6.5.tar.gz (2.0 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.6.0.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.5.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.4.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.3.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.2.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.1.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.5.0.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.34.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.33.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.32.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.31.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.30.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.29.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.28.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.27.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.26.tar.gz (1.9 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.25.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.24.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.23.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.22.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.21.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.20.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.19.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.18.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.17.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.16.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.15.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.14.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.13.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.12.tar.gz (1.8 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.11.tar.gz (845 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.10.tar.gz (845 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.9.tar.gz (844 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.8.tar.gz (844 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.7.tar.gz (840 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.6.tar.gz (790 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.5.tar.gz (778 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.4.tar.gz (1.7 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.3.tar.gz (1.6 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.2.tar.gz (1.6 MB)
  Preparing metadata (setup.py) ... done
  Using cached uvloop-0.4.1.tar.gz (2.9 MB)
  Preparing metadata (setup.py) ... done
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.9.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.6.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
Collecting websockets
  Using cached websockets-7.0.tar.gz (49 kB)
  Preparing metadata (setup.py) ... done
Collecting uvicorn>=0.2.2
  Using cached uvicorn-0.8.5.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.4.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.3.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.2.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.8.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.3.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.2.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.7.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.6.1.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.6.0.tar.gz (24 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.2.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.1.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.5.0.tar.gz (23 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.6.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.5.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.4.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.3.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.2.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.1.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.4.0.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.32.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.31.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.30.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.29.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.28.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.27.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.26.tar.gz (22 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.25.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.24.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.23.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.22.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.21.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.20.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.19.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.18.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.17.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.16.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.15.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.14.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.13.tar.gz (20 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.12.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.11.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.10.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.9.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.8.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.7.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.6.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.5.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.4.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.3.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.2.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.1.tar.gz (18 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.3.0.tar.gz (16 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.22.tar.gz (15 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.21.tar.gz (14 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.20.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.19.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.18.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.17.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.16.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.15.tar.gz (12 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.14.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.13.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.12.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.11.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.10.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.9.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.8.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.7.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.6.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.5.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.4.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.3.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
  Using cached uvicorn-0.2.2.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Collecting websockets
  Using cached websockets-3.3-py33.py34.py35.py36-none-any.whl (38 kB)
INFO: pip is looking at multiple versions of unittest-xml-reporting to determine which version is compatible with other requirements. This could take a while.
Collecting unittest-xml-reporting
  Using cached unittest_xml_reporting-3.2.0-py2.py3-none-any.whl (20 kB)
  Using cached unittest_xml_reporting-3.1.0-py2.py3-none-any.whl (20 kB)
INFO: pip is looking at multiple versions of unittest-xml-reporting to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
INFO: pip is looking at multiple versions of tracking-url to determine which version is compatible with other requirements. This could take a while.


(snip)

@notatallshaw
Copy link
Member

notatallshaw commented Jan 31, 2022

@jtremesay-sereema You are giving pip an incredibly large search space of requirements to resolve which is why it's taking so long, you were lucky Pip was able previously was able to search these requirements so quickly.

I will take a look to see if there's something that can be optimized on Pip's side but in the mean time you should tighten your requirements.

I suggest that if no one else is using your package as a dependency you take your current requirements file and look at your current successful installation and modify it to {requirement}>={successfully_installed_version}, i.e.:

aiodns>=3.0.0
aiohttp>=3.8.1
...

If others are using your package as a dependency you will need to take a more cautious approach bout how you tighten requirements but in general it probably makes sense to see where pip is saying pip is looking at multiple versions of <requirement> and tighten that requirement to at least not consider ancient versions.

One thing I also notice as well as pip no longer being able to consider older packages than unicorn 0.2.3 (unless you add unicorn!=0.2.2 in the constraints file) is that uvicorn 0.17.0 was yanked, therefore pip 22.0 no longer considers this version, it might be a contributing factor to why it is taking longer to backtrack. This might seem like pip would be able to backtrack faster with less to consider but actually in such a giant search space sometimes you get lucky and an extra thing to consider makes it faster.

@jtremesay-sereema
Copy link
Author

I suggest that if no one else is using your package as a dependency you take your current requirements file and look at your current successful installation and modify it to {requirement}>={successfully_installed_version},

I do not love the solution, but it resolve my problem, so I will go with it.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 3, 2022
@pradyunsg pradyunsg changed the title "Encountered error while generating package metadata" - cannot install our dependencies with pip 22 FileNotFoundError: [Errno 2] No such file or directory: 'README.md' with uvicorn-0.2.1.tar.gz Sep 30, 2022
@pradyunsg pradyunsg removed the S: needs triage Issues/PRs that need to be triaged label Mar 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

5 participants