Poetry: TooManyRedirects when trying to add aioauth2

Created on 11 Dec 2018  ·  29Comments  ·  Source: python-poetry/poetry

  • [x] I am on the latest Poetry version.
  • [x] I have searched the issues of this repo and believe that this is not a duplicate.
  • [x] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).
  • OS version and name: GNU/Linux 4.18.7-1-default, openSUSE Tumbleweed
  • Poetry version: 0.12.10
  • Link of a Gist with the contents of your pyproject.toml file: Irrelevant

Issue


I run poetry add and get this:

$ poetry -vvv add aioauth2

[TooManyRedirects]  
Exceeded 30 redirects.           

Exception trace:
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cleo/application.py in run() at line 94
   status_code = self.do_run(input_, output_)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/console/application.py in do_run() at line 88
   return super(Application, self).do_run(i, o)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cleo/application.py in do_run() at line 197
   status_code = command.run(input_, output_)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/console/commands/command.py in run() at line 77
   return super(BaseCommand, self).run(i, o)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cleo/commands/base_command.py in run() at line 146
   status_code = self.execute(input_, output_)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cleo/commands/command.py in execute() at line 107
   return self.handle()
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/console/commands/add.py in handle() at line 69
   packages, allow_prereleases=self.option("allow-prereleases")
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/console/commands/init.py in _determine_requirements() at line 230
   requirement["name"], allow_prereleases=allow_prereleases
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/console/commands/init.py in _find_best_version_for_package() at line 260
   name, required_version, allow_prereleases=allow_prereleases
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/version/version_selector.py in find_best_candidate() at line 29
   package_name, constraint, allow_prereleases=allow_prereleases
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pool.py in find_packages() at line 65
   name, constraint, extras=extras, allow_prereleases=allow_prereleases
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in find_packages() at line 104
   info = self.get_package_info(name)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in get_package_info() at line 228
   name, lambda: self._get_package_info(name)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cachy/repository.py in remember_forever() at line 174
   val = value(callback)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/cachy/helpers.py in value() at line 6
   return val()
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in <lambda>() at line 228
   name, lambda: self._get_package_info(name)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in _get_package_info() at line 232
   data = self._get("pypi/{}/json".format(name))
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in _get() at line 381
   json_response = self._session.get(self._url + endpoint)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/requests/sessions.py in get() at line 546
   return self.request('GET', url, **kwargs)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/requests/sessions.py in request() at line 533
   resp = self.send(prep, **send_kwargs)
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/requests/sessions.py in send() at line 668
   history = [resp for resp in gen] if allow_redirects else []
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/requests/sessions.py in <listcomp>() at line 668
   history = [resp for resp in gen] if allow_redirects else []
 /home/rominf/.pyenv/versions/3.6.7/envs/jira-oauth/lib/python3.6/site-packages/requests/sessions.py in resolve_redirects() at line 165
   raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)

add [-D|--dev] [--git GIT] [--path PATH] [-E|--extras EXTRAS] [--optional] [--python PYTHON] [--platform PLATFORM] [--allow-prereleases] [--dry-run] [--] <name> (<name>)...
Bug

Most helpful comment

@sfermigier / @rominf when it asks for the name of a cache, its referring to any additional repositories that you might've added. One name that is reserved is pypi

❯ poetry cache:clear --all pypi

Delete 169 entries? (yes/no) [no] yes

If you had added some other repository, you could clear that repository's cache the same way.

All 29 comments

I cannot reproduce.

Does it happen only with this package or with others as well?

Only with this package. It also happens if I add it manually and run update.

I honestly don't know why this happens and the debugging will be difficult since I cannot reproduce it on my end.

If you try to access https://pypi.org/pypi/aioauth2/json directly does this happen as well?

If you try to access https://pypi.org/pypi/aioauth2/json directly does this happen as well?

Everything is fine. I can install the package with pip too.

I have no idea then. Poetry does not do anything funny to access this url. It's using requests with the cachecontrol package.

The only thing "odd" here that I see is that you have Poetry installed in the same virtualenv as your project's. If you use an external poetry installation does this still happen?

I've installed poetry system-wide - the same result.

I have had a similar issue when running poetry -vvv add py-mini-racer.

I see there is a redirect loop https://pypi.org/pypi/py_mini_racer/json -> https://pypi.org/pypi/py-mini-racer/json -> https://pypi.org/pypi/py_mini_racer/json -> ...

Eventually, I "fixed" the issue by clearing the cache.

@sfermigier, how did you clear the cache?

I tried poetry cache:clear but it asks for the name of a cache, and I have no idea what this means.

So I used rm -rf ~/Library/Caches/pypoetry/ (specific to MacOS, caches locations vary from OS to OS).

OK, thank you for info, @sfermigier!

@sfermigier / @rominf when it asks for the name of a cache, its referring to any additional repositories that you might've added. One name that is reserved is pypi

❯ poetry cache:clear --all pypi

Delete 169 entries? (yes/no) [no] yes

If you had added some other repository, you could clear that repository's cache the same way.

I just ran into this issue with trying to install cherrypy -- in my case, I had 674 entries in my cache and running @metasyn's suggestion fixed the problem. 🎉

I suspected clearing the cache might help (and it did), but, like others, I didn't know how to. Would it make sense for the error message when running poetry cache:clear --all to list the available caches? That would have saved me, and perhaps others, a trip to the internet to solve this. Currently the error message is

[MissingArguments]
Not enough arguments

cache:clear [--all] [--] <cache>

I was thinking something along the lines of

[MissingArguments]
Specify which cache to clear. Available caches are: pypi.

cache:clear [--all] [--] <cache>

I suspected clearing the cache might help (and it did), but, like others, I didn't know how to. Would it make sense for the error message when running poetry cache:clear --all to list the available caches? That would have saved me, and perhaps others, a trip to the internet to solve this. Currently the error message is

[MissingArguments]
Not enough arguments

cache:clear [--all] [--] <cache>

I was thinking something along the lines of

[MissingArguments]
Specify which cache to clear. Available caches are: pypi.

cache:clear [--all] [--] <cache>

@sdispater Are the available caches listed somewhere in the documentation?

I just had the same error when performing a poetry update. One of the problems in diagnosing what's the cause, is that the error message does not mention which URL causes the redirects.

Clearing the cache with poetry cache:clear --all pypi fixed the TooManyRedirects error though.

Clearing cache didn't work for me on windows, neither did deleting ~/.cache/pip

My pyproject.toml:

[tool.poetry.dependencies]
python = "^3.6"
django = "2.1.8"
djangorestframework = "~3.9.1"
mysqlclient = "1.4.1"
sqlalchemy = "~1.3.3"
pandas = "~0.24.1"
gunicorn = "~19.9.0"
gevent = "~1.4.0"
python-dateutil = "^2.7"
requests = "^2.20"
celery = "4.3.0"
django-celery-beat = "~1.4.0"
django-celery-results = "~1.0.4"
numpy = "~1.16.1"
django-otp = "0.5.2"
qrcode = "6.1"
schema = "0.7.0"
django-import-export = "1.2.0"
elastic-apm = "^4.2"
celery_once = "2.1.0"
supervisor = "~4.0.2"

[tool.poetry.dev-dependencies]
pytest-django = "^3.4"
pytest-cov = "^2.6"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"


poetry.lock

```toml
[[package]]
category = "main"
description = "Low-level AMQP client for Python (fork of amqplib)."
name = "amqp"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "2.4.2"

[package.dependencies]
vine = ">=1.1.3"

[[package]]
category = "dev"
description = "Atomic file writes."
name = "atomicwrites"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "1.3.0"

[[package]]
category = "dev"
description = "Classes Without Boilerplate"
name = "attrs"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "19.1.0"

[[package]]
category = "main"
description = "Backport of Python 3 csv module"
name = "backports.csv"
optional = false
python-versions = "*"
version = "1.0.7"

[[package]]
category = "main"
description = "Python multiprocessing fork with improvements and bugfixes"
name = "billiard"
optional = false
python-versions = "*"
version = "3.6.0.0"

[[package]]
category = "main"
description = "Distributed Task Queue."
name = "celery"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "4.3.0"

[package.dependencies]
billiard = ">=3.6.0,<4.0"
kombu = ">=4.4.0,<5.0"
pytz = ">0.0-dev"
vine = ">=1.3.0"

[[package]]
category = "main"
description = "Allows you to prevent multiple execution and queuing of celery tasks."
name = "celery-once"
optional = false
python-versions = "*"
version = "2.1.0"

[package.dependencies]
celery = "*"
redis = ">=2.10.2"

[[package]]
category = "main"
description = "Python package for providing Mozilla's CA Bundle."
name = "certifi"
optional = false
python-versions = "*"
version = "2019.3.9"

[[package]]
category = "main"
description = "Foreign Function Interface for Python calling C code."
marker = "sys_platform == \"win32\" and platform_python_implementation == \"CPython\""
name = "cffi"
optional = false
python-versions = "*"
version = "1.12.2"

[package.dependencies]
pycparser = "*"

[[package]]
category = "main"
description = "Universal encoding detector for Python 2 and 3"
name = "chardet"
optional = false
python-versions = "*"
version = "3.0.4"

[[package]]
category = "main"
description = "Cross-platform colored terminal text."
marker = "platform_system == \"Windows\" or sys_platform == \"win32\""
name = "colorama"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "0.4.1"

[[package]]
category = "main"
description = "Backports and enhancements for the contextlib module"
name = "contextlib2"
optional = false
python-versions = "*"
version = "0.5.5"

[[package]]
category = "dev"
description = "Code coverage measurement for Python"
name = "coverage"
optional = false
python-versions = ">=2.6, !=3.0., !=3.1., !=3.2.*, <4"
version = "4.5.3"

[[package]]
category = "main"
description = "XML bomb protection for Python stdlib modules"
name = "defusedxml"
optional = false
python-versions = "*"
version = "0.5.0"

[[package]]
category = "main"
description = "Repackaging of Google's Diff Match and Patch libraries. Offers robust algorithms to perform the operations required for synchronizing plain text."
name = "diff-match-patch"
optional = false
python-versions = "*"
version = "20181111"

[[package]]
category = "main"
description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design."
name = "django"
optional = false
python-versions = ">=3.5"
version = "2.1.8"

[package.dependencies]
pytz = "*"

[[package]]
category = "main"
description = "Database-backed Periodic Tasks."
name = "django-celery-beat"
optional = false
python-versions = "*"
version = "1.4.0"

[package.dependencies]
celery = ">=4.0,<5.0"
django-timezone-field = ">=2.0"
python-crontab = ">=2.3.4"

[[package]]
category = "main"
description = "Celery result backends for Django."
name = "django-celery-results"
optional = false
python-versions = "*"
version = "1.0.4"

[package.dependencies]
celery = ">=4.0,<5.0"

[[package]]
category = "main"
description = "Django application and library for importing and exportingdata with included admin integration."
name = "django-import-export"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2.*"
version = "1.2.0"

[package.dependencies]
diff-match-patch = ""
django = ">=1.8"
tablib = "
"

[[package]]
category = "main"
description = "A pluggable framework for adding two-factor authentication to Django using one-time passwords."
name = "django-otp"
optional = false
python-versions = "*"
version = "0.5.2"

[package.dependencies]
django = ">=1.11"

[[package]]
category = "main"
description = "A Django app providing database and form fields for pytz timezone objects."
name = "django-timezone-field"
optional = false
python-versions = "*"
version = "3.0"

[package.dependencies]
django = ">=1.8"
pytz = "*"

[[package]]
category = "main"
description = "Web APIs for Django, made easy."
name = "djangorestframework"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "3.9.2"

[[package]]
category = "main"
description = "The official Python module for Elastic APM"
name = "elastic-apm"
optional = false
python-versions = "*"
version = "4.2.2"

[package.dependencies]
certifi = ""
urllib3 = "
"

[[package]]
category = "main"
description = "An implementation of lxml.xmlfile for the standard library"
name = "et-xmlfile"
optional = false
python-versions = "*"
version = "1.0.1"

[[package]]
category = "main"
description = "Coroutine-based network library"
name = "gevent"
optional = false
python-versions = ">=2.7,!=3.0.,!=3.1.,!=3.2.,!=3.3."
version = "1.4.0"

[package.dependencies]
cffi = ">=1.11.5"
greenlet = ">=0.4.14"

[[package]]
category = "main"
description = "Lightweight in-process concurrent programming"
marker = "platform_python_implementation == \"CPython\""
name = "greenlet"
optional = false
python-versions = "*"
version = "0.4.15"

[[package]]
category = "main"
description = "WSGI HTTP Server for UNIX"
name = "gunicorn"
optional = false
python-versions = ">=2.6, !=3.0., !=3.1."
version = "19.9.0"

[[package]]
category = "main"
description = "Internationalized Domain Names in Applications (IDNA)"
name = "idna"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "2.8"

[[package]]
category = "main"
description = "Julian dates from proleptic Gregorian and Julian calendars."
name = "jdcal"
optional = false
python-versions = "*"
version = "1.4"

[[package]]
category = "main"
description = "Messaging library for Python."
name = "kombu"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "4.5.0"

[package.dependencies]
amqp = ">=2.4.0,<3.0"

[[package]]
category = "main"
description = "meld3 is an HTML/XML templating engine."
name = "meld3"
optional = false
python-versions = "*"
version = "1.0.2"

[[package]]
category = "dev"
description = "More routines for operating on iterables, beyond itertools"
marker = "python_version > \"2.7\""
name = "more-itertools"
optional = false
python-versions = ">=3.4"
version = "7.0.0"

[[package]]
category = "main"
description = "Python interface to MySQL"
name = "mysqlclient"
optional = false
python-versions = "*"
version = "1.4.1"

[[package]]
category = "main"
description = "NumPy is the fundamental package for array computing with Python."
name = "numpy"
optional = false
python-versions = ">=2.7,!=3.0.,!=3.1.,!=3.2.,!=3.3."
version = "1.16.2"

[[package]]
category = "main"
description = "Python API and tools to manipulate OpenDocument files"
name = "odfpy"
optional = false
python-versions = "*"
version = "1.4.0"

[package.dependencies]
defusedxml = "*"

[[package]]
category = "main"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
name = "openpyxl"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*"
version = "2.6.2"

[package.dependencies]
et_xmlfile = ""
jdcal = "
"

[[package]]
category = "main"
description = "Powerful data structures for data analysis, time series, and statistics"
name = "pandas"
optional = false
python-versions = ">=2.7,!=3.0.,!=3.1.,!=3.2.,!=3.3.,!=3.4.*"
version = "0.24.2"

[package.dependencies]
numpy = ">=1.12.0"
python-dateutil = ">=2.5.0"
pytz = ">=2011k"

[[package]]
category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "0.9.0"

[[package]]
category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "1.8.0"

[[package]]
category = "main"
description = "C parser in Python"
marker = "sys_platform == \"win32\" and platform_python_implementation == \"CPython\""
name = "pycparser"
optional = false
python-versions = "*"
version = "2.19"

[[package]]
category = "dev"
description = "pytest: simple powerful testing with Python"
name = "pytest"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "4.4.1"

[package.dependencies]
atomicwrites = ">=1.0"
attrs = ">=17.4.0"
colorama = ""
pluggy = ">=0.9"
py = ">=1.5.0"
setuptools = "
"
six = ">=1.10.0"

[package.dependencies.more-itertools]
python = ">=2.8"
version = ">=4.0.0"

[[package]]
category = "dev"
description = "Pytest plugin for measuring coverage."
name = "pytest-cov"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "2.6.1"

[package.dependencies]
coverage = ">=4.4"
pytest = ">=3.6"

[[package]]
category = "dev"
description = "A Django plugin for pytest."
name = "pytest-django"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "3.4.8"

[package.dependencies]
pytest = ">=3.6"

[[package]]
category = "main"
description = "Python Crontab API"
name = "python-crontab"
optional = false
python-versions = "*"
version = "2.3.6"

[package.dependencies]
python-dateutil = "*"

[[package]]
category = "main"
description = "Extensions to the standard Python datetime module"
name = "python-dateutil"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2.*"
version = "2.8.0"

[package.dependencies]
six = ">=1.5"

[[package]]
category = "main"
description = "World timezone definitions, modern and historical"
name = "pytz"
optional = false
python-versions = "*"
version = "2019.1"

[[package]]
category = "main"
description = "YAML parser and emitter for Python"
name = "pyyaml"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "5.1"

[[package]]
category = "main"
description = "QR Code image generator"
name = "qrcode"
optional = false
python-versions = "*"
version = "6.1"

[package.dependencies]
colorama = ""
six = "
"

[[package]]
category = "main"
description = "Python client for Redis key-value store"
name = "redis"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "3.2.1"

[[package]]
category = "main"
description = "Python HTTP for Humans."
name = "requests"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "2.21.0"

[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<3.1.0"
idna = ">=2.5,<2.9"
urllib3 = ">=1.21.1,<1.25"

[[package]]
category = "main"
description = "Simple data validation library"
name = "schema"
optional = false
python-versions = "*"
version = "0.7.0"

[package.dependencies]
contextlib2 = "0.5.5"

[[package]]
category = "main"
description = "Python 2 and 3 compatibility utilities"
name = "six"
optional = false
python-versions = ">=2.6, !=3.0., !=3.1."
version = "1.12.0"

[[package]]
category = "main"
description = "Database Abstraction Library"
name = "sqlalchemy"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "1.3.3"

[[package]]
category = "main"
description = "A system for controlling process state under UNIX"
name = "supervisor"
optional = false
python-versions = "*"
version = "4.0.2"

[package.dependencies]
meld3 = ">=1.0.0"

[[package]]
category = "main"
description = "Format agnostic tabular data library (XLS, JSON, YAML, CSV)"
name = "tablib"
optional = false
python-versions = "*"
version = "0.13.0"

[package.dependencies]
"backports.csv" = ""
odfpy = "
"
openpyxl = ">=2.4.0"
pyyaml = ""
xlrd = "
"
xlwt = "*"

[[package]]
category = "main"
description = "HTTP library with thread-safe connection pooling, file post, and more."
name = "urllib3"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., <4"
version = "1.24.1"

[[package]]
category = "main"
description = "Promises, promises, promises."
name = "vine"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "1.3.0"

[[package]]
category = "main"
description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
name = "xlrd"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."
version = "1.2.0"

[[package]]
category = "main"
description = "Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.6, 2.7, 3.3+"
name = "xlwt"
optional = false
python-versions = "*"
version = "1.3.0"

[metadata]
content-hash = "3198e35c8761b2b09c92df97d488c788ababb5247694d82aaa8e8a0a6685a4cd"
python-versions = "^3.6"

[metadata.hashes]
amqp = ["043beb485774ca69718a35602089e524f87168268f0d1ae115f28b88d27f92d7", "35a3b5006ca00b21aaeec8ceea07130f07b902dd61bfe42815039835f962f5f1"]
atomicwrites = ["03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"]
attrs = ["69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", "f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399"]
"backports.csv" = ["1277dfff73130b2e106bf3dd347adb3c5f6c4340882289d88f31240da92cbd6d", "21f6e09bab589e6c1f877edbc40277b65e626262a86e69a70137db714eaac5ce"]
billiard = ["756bf323f250db8bf88462cd042c992ba60d8f5e07fc5636c24ba7d6f4261d84"]
celery = ["4c4532aa683f170f40bd76f928b70bc06ff171a959e06e71bf35f2f9d6031ef9", "528e56767ae7e43a16cfef24ee1062491f5754368d38fcfffa861cdb9ef219be"]
celery-once = ["02e464e60e5610c7832d68108550bedc5ccf175ce8d8b087ce9849eed230cfb9"]
certifi = ["59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5", "b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"]
cffi = ["00b97afa72c233495560a0793cdc86c2571721b4271c0667addc83c417f3d90f", "0ba1b0c90f2124459f6966a10c03794082a2f3985cd699d7d63c4a8dae113e11", "0bffb69da295a4fc3349f2ec7cbe16b8ba057b0a593a92cbe8396e535244ee9d", "21469a2b1082088d11ccd79dd84157ba42d940064abbfa59cf5f024c19cf4891", "2e4812f7fa984bf1ab253a40f1f4391b604f7fc424a3e21f7de542a7f8f7aedf", "2eac2cdd07b9049dd4e68449b90d3ef1adc7c759463af5beb53a84f1db62e36c", "2f9089979d7456c74d21303c7851f158833d48fb265876923edcb2d0194104ed", "3dd13feff00bddb0bd2d650cdb7338f815c1789a91a6f68fdc00e5c5ed40329b", "4065c32b52f4b142f417af6f33a5024edc1336aa845b9d5a8d86071f6fcaac5a", "51a4ba1256e9003a3acf508e3b4f4661bebd015b8180cc31849da222426ef585", "59888faac06403767c0cf8cfb3f4a777b2939b1fbd9f729299b5384f097f05ea", "59c87886640574d8b14910840327f5cd15954e26ed0bbd4e7cef95fa5aef218f", "610fc7d6db6c56a244c2701575f6851461753c60f73f2de89c79bbf1cc807f33", "70aeadeecb281ea901bf4230c6222af0248c41044d6f57401a614ea59d96d145", "71e1296d5e66c59cd2c0f2d72dc476d42afe02aeddc833d8e05630a0551dad7a", "8fc7a49b440ea752cfdf1d51a586fd08d395ff7a5d555dc69e84b1939f7ddee3", "9b5c2afd2d6e3771d516045a6cfa11a8da9a60e3d128746a7fe9ab36dfe7221f", "9c759051ebcb244d9d55ee791259ddd158188d15adee3c152502d3b69005e6bd", "b4d1011fec5ec12aa7cc10c05a2f2f12dfa0adfe958e56ae38dc140614035804", "b4f1d6332339ecc61275bebd1f7b674098a66fea11a00c84d1c58851e618dc0d", "c030cda3dc8e62b814831faa4eb93dd9a46498af8cd1d5c178c2de856972fd92", "c2e1f2012e56d61390c0e668c20c4fb0ae667c44d6f6a2eeea5d7148dcd3df9f", "c37c77d6562074452120fc6c02ad86ec928f5710fbc435a181d69334b4de1d84", "c8149780c60f8fd02752d0429246088c6c04e234b895c4a42e1ea9b4de8d27fb", "cbeeef1dc3c4299bd746b774f019de9e4672f7cc666c777cd5b409f0b746dac7", "e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7", "e21162bf941b85c0cda08224dade5def9360f53b09f9f259adb85fc7dd0e7b35", "fb6934ef4744becbda3143d30c6604718871495a5e36c408431bf33d9c146889"]
chardet = ["84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", "fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"]
colorama = ["05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d", "f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48"]
contextlib2 = ["509f9419ee91cdd00ba34443217d5ca51f5a364a404e1dce9e8979cea969ca48", "f5260a6e679d2ff42ec91ec5252f4eeffdcf21053db9113bd0a8e4d953769c00"]
coverage = ["0c5fe441b9cfdab64719f24e9684502a59432df7570521563d7b1aff27ac755f", "2b412abc4c7d6e019ce7c27cbc229783035eef6d5401695dccba80f481be4eb3", "3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9", "39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74", "3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390", "42692db854d13c6c5e9541b6ffe0fe921fe16c9c446358d642ccae1462582d3b", "465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8", "48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe", "4ec30ade438d1711562f3786bea33a9da6107414aed60a5daa974d50a8c2c351", "5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf", "5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e", "6899797ac384b239ce1926f3cb86ffc19996f6fa3a1efbb23cb49e0c12d8c18c", "68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741", "6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09", "7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd", "7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034", "839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420", "8e679d1bde5e2de4a909efb071f14b472a678b788904440779d2c449c0355b27", "8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c", "932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab", "93f965415cc51604f571e491f280cff0f5be35895b4eb5e55b47ae90c02a497b", "988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba", "998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e", "9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609", "9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2", "a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49", "a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b", "a9abc8c480e103dc05d9b332c6cc9fb1586330356fc14f1aa9c0ca5745097d19", "aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d", "bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce", "bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9", "c22ab9f96cbaff05c6a84e20ec856383d27eae09e511d3e6ac4479489195861d", "c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4", "c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773", "c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723", "ca58eba39c68010d7e87a823f22a081b5290e3e3c64714aac3c91481d8b34d22", "df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c", "f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f", "f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1", "f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260", "fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a"]
defusedxml = ["24d7f2f94f7f3cb6061acb215685e5125fbcdc40a857eff9de22518820b0a4f4", "702a91ade2968a82beb0db1e0766a6a273f33d4616a6ce8cde475d8e09853b20"]
diff-match-patch = ["a809a996d0f09b9bbd59e9bbd0b71eed8c807922512910e05cbd3f9480712ddb"]
django = ["0fd54e4f27bc3e0b7054a11e6b3a18fa53f2373f6b2df8a22e8eadfe018970a5", "f3b28084101d516f56104856761bc247f85a2a5bbd9da39d9f6197ff461b3ee4"]
django-celery-beat = ["3c2c22647455be5503aca7450db64ea53acacee2d0aef3d7ac49aa3ef3845724", "bfc22dad2884524697e1fcdfa63c0555a65151a97902c3045cd2cf7bf63970e4"]
django-celery-results = ["80292a68c8b705c788ff0bca9cacc5a431a4de39d7ff49e2ca8277b700d3d616", "89ae9e32076efc65bcba31bc729870da9b230c63af22b673b79170c4a98039b1"]
django-import-export = ["830824f79aae39e4212bb03aabdd83dc57931420557b757981cf6add8d07e611", "99fae7d963af4ade97af9237a843f250312421fa4ee350a3b735fcc5684c3fb5"]
django-otp = ["1860e72cfcd95fe73117f3543d2e53f7847cf59e894ae0aa9399a10a50fb081f", "5756050ec09ecf8e6ce2b0f9f370ebd26249f326a1010a413b61c6a4c554f25f"]
django-timezone-field = ["7d7a37cfeacec5b1e81cd2f0aa334d46ebaa369cd516028579ed343cbc676c38", "d9fdab77c443b78c362ffaeb50fe7d7b54692c89aaae8ca1cae67848139b82ac"]
djangorestframework = ["8a435df9007c8b7d8e69a21ef06650e3c0cbe0d4b09e55dd1bd74c89a75a9fcd", "f7a266260d656e1cf4ca54d7a7349609dc8af4fe2590edd0ecd7d7643ea94a17"]
elastic-apm = ["3b5bc1646745ae81435c30822de848acf55579215d6fe3ab3b4d110d87297737", "4517116d7d11f2f0b64254b196cc7ca251e92b1ed4fe08b294a575b15953a89c", "7924f4eaa43612a59d094403d007bc701664c219ef2c579b10105780e68f9228", "a968da6b23f5adadcf7f63cdfe0002e4f0c14e249a2bbef374eacfdf55c64bfb", "af24b7b827f181e44a885e0ac8c049e8f7ed2daf22b74128b4161d64e58e397d", "c0df4ee3e5a9bb1694f658f91767ce45cf875164c15d82958d5e48183f1a963f", "c4b084ed7f6da3a6d6dc67a81c54b90afbd31bc556a02fe443fc4c861066415d", "e49f1c6c09acadcb3239964181ca9554969fc78d38a02631ec1eb5d51c8ba631", "e8a9f1a2f51f1afd5a386d28470c134097978d81e81196dee7a228341f6e1502", "ef996617c87280eb6bd15d1e47d122871e83aff4892ae06e84aa5167cb06ec48", "faed83fa367a8aca746537311be38cb6908c0a7890a62cbe95a607319f26c3d3"]
et-xmlfile = ["614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b"]
gevent = ["0774babec518a24d9a7231d4e689931f31b332c4517a771e532002614e270a64", "0e1e5b73a445fe82d40907322e1e0eec6a6745ca3cea19291c6f9f50117bb7ea", "0ff2b70e8e338cf13bedf146b8c29d475e2a544b5d1fe14045aee827c073842c", "107f4232db2172f7e8429ed7779c10f2ed16616d75ffbe77e0e0c3fcdeb51a51", "14b4d06d19d39a440e72253f77067d27209c67e7611e352f79fe69e0f618f76e", "1b7d3a285978b27b469c0ff5fb5a72bcd69f4306dbbf22d7997d83209a8ba917", "1eb7fa3b9bd9174dfe9c3b59b7a09b768ecd496debfc4976a9530a3e15c990d1", "2711e69788ddb34c059a30186e05c55a6b611cb9e34ac343e69cf3264d42fe1c", "28a0c5417b464562ab9842dd1fb0cc1524e60494641d973206ec24d6ec5f6909", "3249011d13d0c63bea72d91cec23a9cf18c25f91d1f115121e5c9113d753fa12", "44089ed06a962a3a70e96353c981d628b2d4a2f2a75ea5d90f916a62d22af2e8", "4bfa291e3c931ff3c99a349d8857605dca029de61d74c6bb82bd46373959c942", "50024a1ee2cf04645535c5ebaeaa0a60c5ef32e262da981f4be0546b26791950", "53b72385857e04e7faca13c613c07cab411480822ac658d97fd8a4ddbaf715c8", "74b7528f901f39c39cdbb50cdf08f1a2351725d9aebaef212a29abfbb06895ee", "7d0809e2991c9784eceeadef01c27ee6a33ca09ebba6154317a257353e3af922", "896b2b80931d6b13b5d9feba3d4eebc67d5e6ec54f0cf3339d08487d55d93b0e", "8d9ec51cc06580f8c21b41fd3f2b3465197ba5b23c00eb7d422b7ae0380510b0", "9f7a1e96fec45f70ad364e46de32ccacab4d80de238bd3c2edd036867ccd48ad", "ab4dc33ef0e26dc627559786a4fba0c2227f125db85d970abbf85b77506b3f51", "d1e6d1f156e999edab069d79d890859806b555ce4e4da5b6418616322f0a3df1", "d752bcf1b98174780e2317ada12013d612f05116456133a6acf3e17d43b71f05", "e5bcc4270671936349249d26140c267397b7b4b1381f5ec8b13c53c5b53ab6e1"]
greenlet = ["000546ad01e6389e98626c1367be58efa613fa82a1be98b0c6fc24b563acc6d0", "0d48200bc50cbf498716712129eef819b1729339e34c3ae71656964dac907c28", "23d12eacffa9d0f290c0fe0c4e81ba6d5f3a5b7ac3c30a5eaf0126bf4deda5c8", "37c9ba82bd82eb6a23c2e5acc03055c0e45697253b2393c9a50cef76a3985304", "51503524dd6f152ab4ad1fbd168fc6c30b5795e8c70be4410a64940b3abb55c0", "8041e2de00e745c0e05a502d6e6db310db7faa7c979b3a5877123548a4c0b214", "81fcd96a275209ef117e9ec91f75c731fa18dcfd9ffaa1c0adbdaa3616a86043", "853da4f9563d982e4121fed8c92eea1a4594a2299037b3034c3c898cb8e933d6", "8b4572c334593d449113f9dc8d19b93b7b271bdbe90ba7509eb178923327b625", "9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc", "9854f612e1b59ec66804931df5add3b2d5ef0067748ea29dc60f0efdcda9a638", "99a26afdb82ea83a265137a398f570402aa1f2b5dfb4ac3300c026931817b163", "a19bf883b3384957e4a4a13e6bd1ae3d85ae87f4beb5957e35b0be287f12f4e4", "a9f145660588187ff835c55a7d2ddf6abfc570c2651c276d3d4be8a2766db490", "ac57fcdcfb0b73bb3203b58a14501abb7e5ff9ea5e2edfa06bb03035f0cff248", "bcb530089ff24f6458a81ac3fa699e8c00194208a724b644ecc68422e1111939", "beeabe25c3b704f7d56b573f7d2ff88fc99f0138e43480cecdfcaa3b87fe4f87", "d634a7ea1fc3380ff96f9e44d8d22f38418c1c381d5fac680b272d7d90883720", "d97b0661e1aead761f0ded3b769044bb00ed5d33e1ec865e891a8b128bf7c656"]
gunicorn = ["aa8e0b40b4157b36a5df5e599f45c9c76d6af43845ba3b3b0efe2c70473c2471", "fa2662097c66f920f53f70621c6c58ca4a3c4d3434205e608e121b5b3b71f4f3"]
idna = ["c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", "ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"]
jdcal = ["948fb8d079e63b4be7a69dd5f0cd618a0a57e80753de8248fd786a8a20658a07", "ea0a5067c5f0f50ad4c7bdc80abad3d976604f6fb026b0b3a17a9d84bb9046c9"]
kombu = ["389ba09e03b15b55b1a7371a441c894fd8121d174f5583bbbca032b9ea8c9edd", "7b92303af381ef02fad6899fd5f5a9a96031d781356cd8e505fa54ae5ddee181"]
meld3 = ["b28a9bfac342aadb4557aa144bea9f8e6208bfb0596190570d10a892d35ff7dc", "f7b754a0fde7a4429b2ebe49409db240b5699385a572501bb0d5627d299f9558"]
more-itertools = ["2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7", "c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a"]
mysqlclient = ["6883a4dd98903bad375c859ead1a480e1245ea3a8d9b038ea2c091c1865ba673", "a62220410e26ce2d2ff94dd0138c3ecfb91db634464a9afb4c8e6b50f0a67e00", "e1b9f3a8928ddb4985ca3e3c9f2aa81b19e831bbf6fabf5681ee356738dbbbb2"]
numpy = ["1980f8d84548d74921685f68096911585fee393975f53797614b34d4f409b6da", "22752cd809272671b273bb86df0f505f505a12368a3a5fc0aa811c7ece4dfd5c", "23cc40313036cffd5d1873ef3ce2e949bdee0646c5d6f375bf7ee4f368db2511", "2b0b118ff547fecabc247a2668f48f48b3b1f7d63676ebc5be7352a5fd9e85a5", "3a0bd1edf64f6a911427b608a894111f9fcdb25284f724016f34a84c9a3a6ea9", "3f25f6c7b0d000017e5ac55977a3999b0b1a74491eacb3c1aa716f0e01f6dcd1", "4061c79ac2230594a7419151028e808239450e676c39e58302ad296232e3c2e8", "560ceaa24f971ab37dede7ba030fc5d8fa173305d94365f814d9523ffd5d5916", "62be044cd58da2a947b7e7b2252a10b42920df9520fc3d39f5c4c70d5460b8ba", "6c692e3879dde0b67a9dc78f9bfb6f61c666b4562fd8619632d7043fb5b691b0", "6f65e37b5a331df950ef6ff03bd4136b3c0bbcf44d4b8e99135d68a537711b5a", "7a78cc4ddb253a55971115f8320a7ce28fd23a065fc33166d601f51760eecfa9", "80a41edf64a3626e729a62df7dd278474fc1726836552b67a8c6396fd7e86760", "893f4d75255f25a7b8516feb5766c6b63c54780323b9bd4bc51cdd7efc943c73", "972ea92f9c1b54cc1c1a3d8508e326c0114aaf0f34996772a30f3f52b73b942f", "9f1d4865436f794accdabadc57a8395bd3faa755449b4f65b88b7df65ae05f89", "9f4cd7832b35e736b739be03b55875706c8c3e5fe334a06210f1a61e5c2c8ca5", "adab43bf657488300d3aeeb8030d7f024fcc86e3a9b8848741ea2ea903e56610", "bd2834d496ba9b1bdda3a6cf3de4dc0d4a0e7be306335940402ec95132ad063d", "d20c0360940f30003a23c0adae2fe50a0a04f3e48dc05c298493b51fd6280197", "d3b3ed87061d2314ff3659bb73896e622252da52558f2380f12c421fbdee3d89", "dc235bf29a406dfda5790d01b998a1c01d7d37f449128c0b1b7d1c89a84fae8b", "fb3c83554f39f48f3fa3123b9c24aecf681b1c289f9334f8215c1d3c8e2f6e5b"]
odfpy = ["596021f0519623ca8717331951c95e3b8d7b21e86edc7efe8cb650a0d0f59a2b", "863746b87121d9e4017c32b6c318f7229a588f189c122a9613116c55a47e276d"]
openpyxl = ["1d2af392cef8c8227bd2ac3ebe3a28b25aba74fd4fa473ce106065f0b73bfe2e"]
pandas = ["071e42b89b57baa17031af8c6b6bbd2e9a5c68c595bc6bf9adabd7a9ed125d3b", "17450e25ae69e2e6b303817bdf26b2cd57f69595d8550a77c308be0cd0fd58fa", "17916d818592c9ec891cbef2e90f98cc85e0f1e89ed0924c9b5220dc3209c846", "2538f099ab0e9f9c9d09bbcd94b47fd889bad06dc7ae96b1ed583f1dc1a7a822", "366f30710172cb45a6b4f43b66c220653b1ea50303fbbd94e50571637ffb9167", "42e5ad741a0d09232efbc7fc648226ed93306551772fc8aecc6dce9f0e676794", "4e718e7f395ba5bfe8b6f6aaf2ff1c65a09bb77a36af6394621434e7cc813204", "4f919f409c433577a501e023943e582c57355d50a724c589e78bc1d551a535a2", "4fe0d7e6438212e839fc5010c78b822664f1a824c0d263fd858f44131d9166e2", "5149a6db3e74f23dc3f5a216c2c9ae2e12920aa2d4a5b77e44e5b804a5f93248", "627594338d6dd995cfc0bacd8e654cd9e1252d2a7c959449228df6740d737eb8", "83c702615052f2a0a7fb1dd289726e29ec87a27272d775cb77affe749cca28f8", "8c872f7fdf3018b7891e1e3e86c55b190e6c5cee70cab771e8f246c855001296", "90f116086063934afd51e61a802a943826d2aac572b2f7d55caaac51c13db5b5", "a3352bacac12e1fc646213b998bce586f965c9d431773d9e91db27c7c48a1f7d", "bcdd06007cca02d51350f96debe51331dec429ac8f93930a43eb8fb5639e3eb5", "c1bd07ebc15285535f61ddd8c0c75d0d6293e80e1ee6d9a8d73f3f36954342d0", "c9a4b7c55115eb278c19aa14b34fcf5920c8fe7797a09b7b053ddd6195ea89b3", "cc8fc0c7a8d5951dc738f1c1447f71c43734244453616f32b8aa0ef6013a5dfb", "d7b460bc316064540ce0c41c1438c416a40746fd8a4fb2999668bf18f3c4acf1"]
pluggy = ["19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f", "84d306a647cc805219916e62aab89caa97a33a1dd8c342e87a37f91073cd4746"]
py = ["64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", "dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53"]
pycparser = ["a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"]
pytest = ["3773f4c235918987d51daf1db66d51c99fac654c81d6f2f709a046ab446d5e5d", "b7802283b70ca24d7119b32915efa7c409982f59913c1a6c0640aacf118b95f5"]
pytest-cov = ["0ab664b25c6aa9716cbf203b17ddb301932383046082c081b9848a0edf5add33", "230ef817450ab0699c6cc3c9c8f7a829c34674456f2ed8df1fe1d39780f7c87f"]
pytest-django = ["30d773f1768e8f214a3106f1090e00300ce6edfcac8c55fd13b675fe1cbd1c85", "4d3283e774fe1d40630ee58bf34929b83875e4751b525eeb07a7506996eb42ee"]
python-crontab = ["91ce4b245ee5e5c117aa0b21b485bc43f2d80df854a36e922b707643f50d7923"]
python-dateutil = ["7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb", "c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"]
pytz = ["303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"]
pyyaml = ["1adecc22f88d38052fb787d959f003811ca858b799590a5eaa70e63dca50308c", "436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95", "460a5a4248763f6f37ea225d19d5c205677d8d525f6a83357ca622ed541830c2", "5a22a9c84653debfbf198d02fe592c176ea548cccce47553f35f466e15cf2fd4", "7a5d3f26b89d688db27822343dfa25c599627bc92093e788956372285c6298ad", "9372b04a02080752d9e6f990179a4ab840227c6e2ce15b95e1278456664cf2ba", "a5dcbebee834eaddf3fa7366316b880ff4062e4bcc9787b78c7fbb4a26ff2dd1", "aee5bab92a176e7cd034e57f46e9df9a9862a71f8f37cad167c6fc74c65f5b4e", "c51f642898c0bacd335fc119da60baae0824f2cde95b0330b56c0553439f0673", "c68ea4d3ba1705da1e0d85da6684ac657912679a649e8868bd850d2c299cce13", "e23d0cc5299223dcc37885dae624f382297717e459ea24053709675a976a3e19"]
qrcode = ["3996ee560fc39532910603704c82980ff6d4d5d629f9c3f25f34174ce8606cf5", "505253854f607f2abf4d16092c61d4e9d511a3b4392e60bff957a68592b04369"]
redis = ["6946b5dca72e86103edc8033019cc3814c031232d339d5f4533b02ea85685175", "8ca418d2ddca1b1a850afa1680a7d2fd1f3322739271de4b704e0d4668449273"]
requests = ["502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e", "7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b"]
schema = ["44add3ef9016c85ac4b0291b45286a657d0df309b31528ca8d0a9c6d0aa68186", "5b0e0f47923164190513db2e91b9ab1941162b2dc400cc9b1803c2abab579e62"]
six = ["3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"]
sqlalchemy = ["91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319"]
supervisor = ["5604457da4fb89d850e78c128205fe4938c9277f87301885b33c94c60361e575", "cb16df95144b68f016d652a2311a47d0f8cd8935a524d77b7c490eae77c44989"]
tablib = ["0f88a9cebdaa1a2cc29ae57387082ee81015d1149ecd34e48a8c8d3b4dd21670", "5f33c079b07eb10cf9c4b4696add2ecf32c89db7729240546ecdcd5c92f67e13"]
urllib3 = ["61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39", "de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22"]
vine = ["133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87", "ea4947cc56d1fd6f2095c8d543ee25dad966f78692528e68b4fada11ba3f98af"]
xlrd = ["546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2", "e551fb498759fa3a5384a94ccd4c3c02eb7c00ea424426e212ac0c57be9dfbde"]
xlwt = ["a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e", "c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88"]
```

poetry install works for the above, I get TooManyRedirects when I try to update any package or a plain poetry update, maybe a regression in 0.12.16? EDIT Its in 1.0.0a3 too EDIT2 After running the new cache clear cmd in 1.0.0a3 its ok now

Just ran into this with p4python.

I put in some traces inside of requests and the redirects were for changing the case in the URL https://pypi.org/pypi/p4python/json between p4python and P4Python

Clearing the cache worked around the problem as well.

Just hit with factory-boy. Cache clear did the trick. I tried to debug the issue to find the root cause and came up empty - albeit I didn't spend a lot of time in it.

After digging for a while, some clues are found indicating the problem is likely caused by using cachecontrol with requests. Here's what happened:

  1. Poetry tries to fetch metadata of a package, say, jupyter-core.
  2. Requests session.get() method was called with URL https://pypi.org/pypi/jupyter-core/json.
  3. For whatever reason requests got a (cached) result of HTTP 301 redirecting to https://pypi.org/pypi/jupyter_core/json.
  4. Requests followed the redirection and got another redirection back to https://pypi.org/pypi/jupyter-core/json.
  5. Requests stuck in an infinite loop between step 3 and 4 until TooManyRedirects was raised.

Notes:

I made some debugging while going through #1019 and found out a similar issue with the redirections when a package has an "alias"

For newer versions of poetry (1.0.0a4):
poetry cache clear --all pypi

I also had this today, when installing only a few dependencies. I had poetry installed, with version 0.12.16

My pyproject.toml is

[tool.poetry]
name = "some-env-name"
version = "0.1.0"
description = ""
authors = ["Angus Hollands <[email protected]>"]
license = "MIT"

[tool.poetry.dependencies]
python = "^3.7"
jupyter = "^1.0"
jupyterlab = "^0.35.4"
bqplot = {path = "bqplot"}

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

Clearing the cache resolved the error. Given that the bqplot here is a local library, I would _expect_ that this error would have been reproduced if I had omitted it from pyproject.toml

How to do poetry cache clear --all pypi without interactions?

the -n flag probably takes the default output of no so cache doesnt get cleared

i also encountered this with a poetry update.

Also encountered with poetry update

pyproject.toml

[tool.poetry]
name = "my-project"
version = "0.9.7"
description = "some description."
authors = ["Foo Bar <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.6"
pip = "^19.2"

[tool.poetry.dev-dependencies]
coverage = "^4.5"
flake8 = "^3.7"
freezegun = "^0.3.12"
httpretty = "^0.9.6"
ipdb = "^0.12.1"
mccabe = "^0.6.1"
mock = "^3.0"
moto = "^1.3"
nose = "^1.3"
nose-timer = "^0.7.5"
nose-watch = "^0.9.2"
parameterized = "^0.7.0"
rednose = "^1.3"
sphinx = "^2.1"
sphinx-click = "^2.2"
sphinx-rtd-theme = "^0.4.3"
sure = "^1.4"
vcrpy = "^2.0"
pylint = "^2.3"
black = {version = "^18.3-alpha.0", allows-prereleases = true}

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

poetry cache clear --all pypi dint help me. the problem disappeared when I updated poetry to 1.0.0b8.

I haven't looked into it much, but there probably needs to be some logic to try skipping cachecontrol when a TooManyRedirects error is encountered.

This should be fixed in the latest 1.0.0 release. If a TooManyRedirects error is encountered the cache will now be automatically cleared.

Was this page helpful?
0 / 5 - 0 ratings