pradyunsg / zazo

Pure Python Dependency Resolution (see https://github.com/sarugaku/resolvelib/ instead)
MIT License
80 stars 7 forks source link

Tricky case: pyrax==1.9.8 -- pip._vendor.resolvelib.resolvers.ResolutionTooDeep: 100 #19

Open AndydeCleyre opened 4 years ago

AndydeCleyre commented 4 years ago
$ pip install --unstable-feature=resolver 'pyrax==1.9.8'
<snip (downloads many versions of dependencies)>
ERROR: Exception:
Traceback (most recent call last):
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 199, in _main
    status = self.run(options, args)
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 185, in wrapper
    return func(self, options, args)
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 332, in run
    requirement_set = resolver.resolve(
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 80, in resolve
    self._result = resolver.resolve(requirements)
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 413, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/andy/.local/share/venvs/2afbbd2099b62f67e7705a9c91295494/venv/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 323, in resolve
    raise ResolutionTooDeep(max_rounds)
pip._vendor.resolvelib.resolvers.ResolutionTooDeep: 100

poetry 1.0.5

pyproject.toml:

[tool.poetry]
name = "fake-for-pyrax"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]

[tool.poetry.dependencies]
python = "^3.8"
pyrax = "1.9.8"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
$ poetry lock
Updating dependencies
Resolving dependencies... (10.5s)

Writing lock file

poetry.lock:

[[package]]
category = "main"
description = "Python command-line parsing library"
name = "argparse"
optional = false
python-versions = "*"
version = "1.4.0"

[[package]]
category = "main"
description = "Internationalization utilities"
name = "babel"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.8.0"

[package.dependencies]
pytz = ">=2015.7"

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

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

[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 = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
marker = "sys_platform == \"linux\""
name = "cryptography"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
version = "2.9"

[package.dependencies]
cffi = ">=1.8,<1.11.3 || >1.11.3"
six = ">=1.4.1"

[package.extras]
docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0)", "sphinx-rtd-theme"]
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
idna = ["idna (>=2.1)"]
pep8test = ["flake8", "flake8-import-order", "pep8-naming"]
test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"]

[[package]]
category = "main"
description = "A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner."
name = "debtcollector"
optional = false
python-versions = "*"
version = "1.11.0"

[package.dependencies]
pbr = ">=1.8"
six = ">=1.9.0"
wrapt = ">=1.7.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.9"

[[package]]
category = "main"
description = "Adds Rackspace ip_associations support to python-novaclient"
name = "ip-associations-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.2"

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

[[package]]
category = "main"
description = "Simple module to parse ISO 8601 dates"
name = "iso8601"
optional = false
python-versions = "*"
version = "0.1.12"

[[package]]
category = "main"
description = "Low-level, pure Python DBus protocol wrapper."
marker = "sys_platform == \"linux\""
name = "jeepney"
optional = false
python-versions = ">=3.5"
version = "0.4.3"

[package.extras]
dev = ["testpath"]

[[package]]
category = "main"
description = "Store and access your passwords safely."
name = "keyring"
optional = false
python-versions = ">=3.6"
version = "21.2.0"

[package.dependencies]
SecretStorage = ">=3"
jeepney = ">=0.4.2"
pywin32-ctypes = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1"

[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]

[[package]]
category = "main"
description = "Authentication Library for OpenStack Identity"
name = "keystoneauth1"
optional = false
python-versions = "*"
version = "2.18.0"

[package.dependencies]
iso8601 = ">=0.1.11"
pbr = ">=1.8"
positional = ">=1.1.1"
requests = ">=2.10.0,<2.12.2 || >2.12.2"
six = ">=1.9.0"
stevedore = ">=1.17.1"

[package.extras]
betamax = ["betamax (>=0.7.0)", "fixtures (>=3.0.0)", "mock (>=2.0)"]
kerberos = ["requests-kerberos (>=0.6)"]
oauth1 = ["oauthlib (>=0.6)"]
saml2 = ["lxml (>=2.3,<3.7.0 || >3.7.0)"]

[[package]]
category = "main"
description = "Rolling backport of unittest.mock for all Pythons"
name = "mock"
optional = false
python-versions = ">=3.6"
version = "4.0.2"

[package.extras]
build = ["twine", "wheel", "blurb"]
docs = ["sphinx"]
test = ["pytest", "pytest-cov"]

[[package]]
category = "main"
description = "An implementation of time.monotonic() for Python 2 & < 3.3"
name = "monotonic"
optional = false
python-versions = "*"
version = "1.5"

[[package]]
category = "main"
description = "MessagePack (de)serializer."
name = "msgpack-python"
optional = false
python-versions = "*"
version = "0.5.6"

[[package]]
category = "main"
description = "A network address manipulation library for Python"
name = "netaddr"
optional = false
python-versions = "*"
version = "0.7.19"

[[package]]
category = "main"
description = "Portable network interface information."
name = "netifaces"
optional = false
python-versions = "*"
version = "0.10.9"

[[package]]
category = "main"
description = "Disk Config extension for python-novaclient"
name = "os-diskconfig-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.1.3"

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

[[package]]
category = "main"
description = "Adds rackspace networks support to python-novaclient"
name = "os-networksv2-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.26"

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

[[package]]
category = "main"
description = "Adds Virtual Interfaces support to python-novaclient"
name = "os-virtual-interfacesv2-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.20"

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

[[package]]
category = "main"
description = "Oslo Configuration API"
name = "oslo.config"
optional = false
python-versions = "*"
version = "4.12.0"

[package.dependencies]
PyYAML = ">=3.10"
debtcollector = ">=1.2.0"
netaddr = ">=0.7.13,<0.7.16 || >0.7.16"
"oslo.i18n" = ">=2.1.0,<3.15.2 || >3.15.2"
rfc3986 = ">=0.3.1"
six = ">=1.9.0"
stevedore = ">=1.20.0"

[[package]]
category = "main"
description = "Oslo i18n library"
name = "oslo.i18n"
optional = false
python-versions = "*"
version = "3.12.0"

[package.dependencies]
Babel = ">=2.3.4"
pbr = ">=1.8"
six = ">=1.9.0"

[[package]]
category = "main"
description = "Oslo Serialization library"
name = "oslo.serialization"
optional = false
python-versions = "*"
version = "2.16.1"

[package.dependencies]
msgpack-python = ">=0.4.0"
"oslo.utils" = ">=3.18.0"
pbr = ">=1.8"
pytz = ">=2013.6"
six = ">=1.9.0"

[[package]]
category = "main"
description = "Oslo Utility library"
name = "oslo.utils"
optional = false
python-versions = "*"
version = "3.22.3"

[package.dependencies]
debtcollector = ">=1.2.0"
iso8601 = ">=0.1.11"
monotonic = ">=0.6"
netaddr = ">=0.7.13,<0.7.16 || >0.7.16"
netifaces = ">=0.10.4"
"oslo.i18n" = ">=2.1.0"
pbr = ">=1.8"
pyparsing = ">=2.1.0"
pytz = ">=2013.6"
six = ">=1.9.0"

[[package]]
category = "main"
description = "Python Build Reasonableness"
name = "pbr"
optional = false
python-versions = "*"
version = "1.10.0"

[[package]]
category = "main"
description = "Library to enforce positional or key-word arguments (deprecated/unmaintained)"
name = "positional"
optional = false
python-versions = "*"
version = "1.2.1"

[package.dependencies]
pbr = ">=1.8"
wrapt = "*"

[[package]]
category = "main"
description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format."
name = "prettytable"
optional = false
python-versions = "*"
version = "0.7.2"

[[package]]
category = "main"
description = "C parser in Python"
marker = "sys_platform == \"linux\""
name = "pycparser"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.20"

[[package]]
category = "main"
description = "Python parsing module"
name = "pyparsing"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "2.4.7"

[[package]]
category = "main"
description = "Python language bindings for OpenStack Clouds."
name = "pyrax"
optional = false
python-versions = "*"
version = "1.9.8"

[package.dependencies]
keyring = "*"
mock = "*"
python-novaclient = "2.27.0"
rackspace-novaclient = "*"
requests = ">=2.2.1,<3"
six = ">=1.9.0,<2"

[[package]]
category = "main"
description = "Client Library for OpenStack Identity"
name = "python-keystoneclient"
optional = false
python-versions = "*"
version = "3.10.0"

[package.dependencies]
debtcollector = ">=1.2.0"
keystoneauth1 = ">=2.18.0"
"oslo.config" = ">=3.14.0,<3.18.0 || >3.18.0"
"oslo.i18n" = ">=2.1.0"
"oslo.serialization" = ">=1.10.0"
"oslo.utils" = ">=3.18.0"
pbr = ">=1.8"
positional = ">=1.1.1"
requests = ">=2.10.0,<2.12.2 || >2.12.2"
six = ">=1.9.0"
stevedore = ">=1.17.1"

[[package]]
category = "main"
description = "Client library for OpenStack Compute API"
name = "python-novaclient"
optional = false
python-versions = "*"
version = "2.27.0"

[package.dependencies]
Babel = ">=1.3"
PrettyTable = ">=0.7,<0.8"
argparse = "*"
iso8601 = ">=0.1.9"
"oslo.i18n" = ">=1.5.0"
"oslo.serialization" = ">=1.4.0"
"oslo.utils" = ">=2.0.0"
pbr = ">=1.6,<2.0"
python-keystoneclient = ">=1.6.0"
requests = ">=2.5.2"
simplejson = ">=2.2.0"
six = ">=1.9.0"

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

[[package]]
category = "main"
description = ""
marker = "sys_platform == \"win32\""
name = "pywin32-ctypes"
optional = false
python-versions = "*"
version = "0.2.0"

[[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.*, !=3.4.*"
version = "5.3.1"

[[package]]
category = "main"
description = "Rackspace Auth Plugin for OpenStack Clients."
name = "rackspace-auth-openstack"
optional = false
python-versions = "*"
version = "1.3"

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

[[package]]
category = "main"
description = "Metapackage to install python-novaclient and Rackspace extensions"
name = "rackspace-novaclient"
optional = false
python-versions = "*"
version = "2.1"

[package.dependencies]
ip_associations_python_novaclient_ext = "*"
os_diskconfig_python_novaclient_ext = "*"
os_networksv2_python_novaclient_ext = "*"
os_virtual_interfacesv2_python_novaclient_ext = "*"
python-novaclient = "*"
rackspace-auth-openstack = "*"
rax_default_network_flags_python_novaclient_ext = "*"
rax_scheduled_images_python_novaclient_ext = "*"

[[package]]
category = "main"
description = "Novaclient Extension for Instance Default Network Flags"
name = "rax-default-network-flags-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.4.0"

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

[[package]]
category = "main"
description = "Extends python-novaclient to use RAX-SI, the Rackspace Nova API Scheduled Images extension"
name = "rax-scheduled-images-python-novaclient-ext"
optional = false
python-versions = "*"
version = "0.3.1"

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

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

[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<4"
idna = ">=2.5,<3"
urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"

[package.extras]
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]

[[package]]
category = "main"
description = "Validating URI References per RFC 3986"
name = "rfc3986"
optional = false
python-versions = "*"
version = "1.4.0"

[package.extras]
idna2008 = ["idna"]

[[package]]
category = "main"
description = "Python bindings to FreeDesktop.org Secret Service API"
marker = "sys_platform == \"linux\""
name = "secretstorage"
optional = false
python-versions = ">=3.5"
version = "3.1.2"

[package.dependencies]
cryptography = "*"
jeepney = ">=0.4.2"

[[package]]
category = "main"
description = "Simple, fast, extensible JSON encoder/decoder for Python"
name = "simplejson"
optional = false
python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*"
version = "3.17.0"

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

[[package]]
category = "main"
description = "Manage dynamic plugins for Python applications"
name = "stevedore"
optional = false
python-versions = "*"
version = "1.20.1"

[package.dependencies]
pbr = ">=1.8"
six = ">=1.9.0"

[[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.*, !=3.4.*, <4"
version = "1.25.9"

[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]

[[package]]
category = "main"
description = "Module for decorators, wrappers and monkey patching."
name = "wrapt"
optional = false
python-versions = "*"
version = "1.12.1"

[metadata]
content-hash = "511fbbcba3231d762b9adbcd92ee995ca6a1d55aebb5f68d9897fd2265c5cc79"
python-versions = "^3.8"

[metadata.files]
argparse = [
    {file = "argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314"},
    {file = "argparse-1.4.0.tar.gz", hash = "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4"},
]
babel = [
    {file = "Babel-2.8.0-py2.py3-none-any.whl", hash = "sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"},
    {file = "Babel-2.8.0.tar.gz", hash = "sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38"},
]
certifi = [
    {file = "certifi-2020.4.5.1-py2.py3-none-any.whl", hash = "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304"},
    {file = "certifi-2020.4.5.1.tar.gz", hash = "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"},
]
cffi = [
    {file = "cffi-1.14.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1cae98a7054b5c9391eb3249b86e0e99ab1e02bb0cc0575da191aedadbdf4384"},
    {file = "cffi-1.14.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:cf16e3cf6c0a5fdd9bc10c21687e19d29ad1fe863372b5543deaec1039581a30"},
    {file = "cffi-1.14.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f2b0fa0c01d8a0c7483afd9f31d7ecf2d71760ca24499c8697aeb5ca37dc090c"},
    {file = "cffi-1.14.0-cp27-cp27m-win32.whl", hash = "sha256:99f748a7e71ff382613b4e1acc0ac83bf7ad167fb3802e35e90d9763daba4d78"},
    {file = "cffi-1.14.0-cp27-cp27m-win_amd64.whl", hash = "sha256:c420917b188a5582a56d8b93bdd8e0f6eca08c84ff623a4c16e809152cd35793"},
    {file = "cffi-1.14.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:399aed636c7d3749bbed55bc907c3288cb43c65c4389964ad5ff849b6370603e"},
    {file = "cffi-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cab50b8c2250b46fe738c77dbd25ce017d5e6fb35d3407606e7a4180656a5a6a"},
    {file = "cffi-1.14.0-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:001bf3242a1bb04d985d63e138230802c6c8d4db3668fb545fb5005ddf5bb5ff"},
    {file = "cffi-1.14.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:e56c744aa6ff427a607763346e4170629caf7e48ead6921745986db3692f987f"},
    {file = "cffi-1.14.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b8c78301cefcf5fd914aad35d3c04c2b21ce8629b5e4f4e45ae6812e461910fa"},
    {file = "cffi-1.14.0-cp35-cp35m-win32.whl", hash = "sha256:8c0ffc886aea5df6a1762d0019e9cb05f825d0eec1f520c51be9d198701daee5"},
    {file = "cffi-1.14.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8a6c688fefb4e1cd56feb6c511984a6c4f7ec7d2a1ff31a10254f3c817054ae4"},
    {file = "cffi-1.14.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:95cd16d3dee553f882540c1ffe331d085c9e629499ceadfbda4d4fde635f4b7d"},
    {file = "cffi-1.14.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66e41db66b47d0d8672d8ed2708ba91b2f2524ece3dee48b5dfb36be8c2f21dc"},
    {file = "cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:028a579fc9aed3af38f4892bdcc7390508adabc30c6af4a6e4f611b0c680e6ac"},
    {file = "cffi-1.14.0-cp36-cp36m-win32.whl", hash = "sha256:cef128cb4d5e0b3493f058f10ce32365972c554572ff821e175dbc6f8ff6924f"},
    {file = "cffi-1.14.0-cp36-cp36m-win_amd64.whl", hash = "sha256:337d448e5a725bba2d8293c48d9353fc68d0e9e4088d62a9571def317797522b"},
    {file = "cffi-1.14.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e577934fc5f8779c554639376beeaa5657d54349096ef24abe8c74c5d9c117c3"},
    {file = "cffi-1.14.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:62ae9af2d069ea2698bf536dcfe1e4eed9090211dbaafeeedf5cb6c41b352f66"},
    {file = "cffi-1.14.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:14491a910663bf9f13ddf2bc8f60562d6bc5315c1f09c704937ef17293fb85b0"},
    {file = "cffi-1.14.0-cp37-cp37m-win32.whl", hash = "sha256:c43866529f2f06fe0edc6246eb4faa34f03fe88b64a0a9a942561c8e22f4b71f"},
    {file = "cffi-1.14.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2089ed025da3919d2e75a4d963d008330c96751127dd6f73c8dc0c65041b4c26"},
    {file = "cffi-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3b911c2dbd4f423b4c4fcca138cadde747abdb20d196c4a48708b8a2d32b16dd"},
    {file = "cffi-1.14.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:7e63cbcf2429a8dbfe48dcc2322d5f2220b77b2e17b7ba023d6166d84655da55"},
    {file = "cffi-1.14.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:3d311bcc4a41408cf5854f06ef2c5cab88f9fded37a3b95936c9879c1640d4c2"},
    {file = "cffi-1.14.0-cp38-cp38-win32.whl", hash = "sha256:675686925a9fb403edba0114db74e741d8181683dcf216be697d208857e04ca8"},
    {file = "cffi-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:00789914be39dffba161cfc5be31b55775de5ba2235fe49aa28c148236c4e06b"},
    {file = "cffi-1.14.0.tar.gz", hash = "sha256:2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6"},
]
chardet = [
    {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
    {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
]
cryptography = [
    {file = "cryptography-2.9-cp27-cp27m-macosx_10_9_intel.whl", hash = "sha256:ef9a55013676907df6c9d7dd943eb1770d014f68beaa7e73250fb43c759f4585"},
    {file = "cryptography-2.9-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2a2ad24d43398d89f92209289f15265107928f22a8d10385f70def7a698d6a02"},
    {file = "cryptography-2.9-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:95e1296e0157361fe2f5f0ed307fd31f94b0ca13372e3673fa95095a627636a1"},
    {file = "cryptography-2.9-cp27-cp27m-win32.whl", hash = "sha256:192ca04a36852a994ef21df13cca4d822adbbdc9d5009c0f96f1d2929e375d4f"},
    {file = "cryptography-2.9-cp27-cp27m-win_amd64.whl", hash = "sha256:ed1d0760c7e46436ec90834d6f10477ff09475c692ed1695329d324b2c5cd547"},
    {file = "cryptography-2.9-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:19ae795137682a9778892fb4390c07811828b173741bce91e30f899424b3934d"},
    {file = "cryptography-2.9-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d1bf5a1a0d60c7f9a78e448adcb99aa101f3f9588b16708044638881be15d6bc"},
    {file = "cryptography-2.9-cp35-abi3-macosx_10_9_intel.whl", hash = "sha256:1b9b535d6b55936a79dbe4990b64bb16048f48747c76c29713fea8c50eca2acf"},
    {file = "cryptography-2.9-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:7a279f33a081d436e90e91d1a7c338553c04e464de1c9302311a5e7e4b746088"},
    {file = "cryptography-2.9-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:49870684da168b90110bbaf86140d4681032c5e6a2461adc7afdd93be5634216"},
    {file = "cryptography-2.9-cp35-cp35m-win32.whl", hash = "sha256:6b91cab3841b4c7cb70e4db1697c69f036c8bc0a253edc0baa6783154f1301e4"},
    {file = "cryptography-2.9-cp35-cp35m-win_amd64.whl", hash = "sha256:587f98ce27ac4547177a0c6fe0986b8736058daffe9160dcf5f1bd411b7fbaa1"},
    {file = "cryptography-2.9-cp36-cp36m-win32.whl", hash = "sha256:cc20316e3f5a6b582fc3b029d8dc03aabeb645acfcb7fc1d9848841a33265748"},
    {file = "cryptography-2.9-cp36-cp36m-win_amd64.whl", hash = "sha256:3be7a5722d5bfe69894d3f7bbed15547b17619f3a88a318aab2e37f457524164"},
    {file = "cryptography-2.9-cp37-cp37m-win32.whl", hash = "sha256:7598974f6879a338c785c513e7c5a4329fbc58b9f6b9a6305035fca5b1076552"},
    {file = "cryptography-2.9-cp37-cp37m-win_amd64.whl", hash = "sha256:5aca6f00b2f42546b9bdf11a69f248d1881212ce5b9e2618b04935b87f6f82a1"},
    {file = "cryptography-2.9-cp38-cp38-win32.whl", hash = "sha256:9fc9da390e98cb6975eadf251b6e5fa088820141061bf041cd5c72deba1dc526"},
    {file = "cryptography-2.9-cp38-cp38-win_amd64.whl", hash = "sha256:6b744039b55988519cc183149cceb573189b3e46e16ccf6f8c46798bb767c9dc"},
    {file = "cryptography-2.9.tar.gz", hash = "sha256:0cacd3ef5c604b8e5f59bf2582c076c98a37fe206b31430d0cd08138aff0986e"},
]
debtcollector = [
    {file = "debtcollector-1.11.0-py2.py3-none-any.whl", hash = "sha256:a339dd5c5d0516c9d42ff764d41565d5dcc408c9afcaac6f5d277a768f01d2a5"},
    {file = "debtcollector-1.11.0.tar.gz", hash = "sha256:733afa881c844a40ef4623ab73ce1862e505bc4655635da3a91d8f3482677785"},
]
idna = [
    {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
    {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
]
ip-associations-python-novaclient-ext = [
    {file = "ip_associations_python_novaclient_ext-0.2.tar.gz", hash = "sha256:e4576c3ee149bcca7e034507ad9c698cb07dd9fa10f90056756aea0fa59bae37"},
]
iso8601 = [
    {file = "iso8601-0.1.12-py2.py3-none-any.whl", hash = "sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3"},
    {file = "iso8601-0.1.12-py3-none-any.whl", hash = "sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd"},
    {file = "iso8601-0.1.12.tar.gz", hash = "sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82"},
]
jeepney = [
    {file = "jeepney-0.4.3-py3-none-any.whl", hash = "sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf"},
    {file = "jeepney-0.4.3.tar.gz", hash = "sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e"},
]
keyring = [
    {file = "keyring-21.2.0-py3-none-any.whl", hash = "sha256:8179b1cdcdcbc221456b5b74e6b7cfa06f8dd9f239eb81892166d9223d82c5ba"},
    {file = "keyring-21.2.0.tar.gz", hash = "sha256:197fd5903901030ef7b82fe247f43cfed2c157a28e7747d1cfcf4bc5e699dd03"},
]
keystoneauth1 = [
    {file = "keystoneauth1-2.18.0-py2.py3-none-any.whl", hash = "sha256:ad292a0f78fb88052fd91ab5d59297c24926994f916d0d261bf131800a925e8d"},
    {file = "keystoneauth1-2.18.0.tar.gz", hash = "sha256:075a9ca7a8877c5885fa2487699015e45260c4e6be119683effe0ad2ab1255d2"},
]
mock = [
    {file = "mock-4.0.2-py3-none-any.whl", hash = "sha256:3f9b2c0196c60d21838f307f5825a7b86b678cedc58ab9e50a8988187b4d81e0"},
    {file = "mock-4.0.2.tar.gz", hash = "sha256:dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72"},
]
monotonic = [
    {file = "monotonic-1.5-py2.py3-none-any.whl", hash = "sha256:552a91f381532e33cbd07c6a2655a21908088962bb8fa7239ecbcc6ad1140cc7"},
    {file = "monotonic-1.5.tar.gz", hash = "sha256:23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0"},
]
msgpack-python = [
    {file = "msgpack-python-0.5.6.tar.gz", hash = "sha256:378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b"},
]
netaddr = [
    {file = "netaddr-0.7.19-py2.py3-none-any.whl", hash = "sha256:56b3558bd71f3f6999e4c52e349f38660e54a7a8a9943335f73dfc96883e08ca"},
    {file = "netaddr-0.7.19.tar.gz", hash = "sha256:38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd"},
]
netifaces = [
    {file = "netifaces-0.10.9-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:b2ff3a0a4f991d2da5376efd3365064a43909877e9fabfa801df970771161d29"},
    {file = "netifaces-0.10.9-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:0c4304c6d5b33fbd9b20fdc369f3a2fef1a8bbacfb6fd05b9708db01333e9e7b"},
    {file = "netifaces-0.10.9-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:7a25a8e28281504f0e23e181d7a9ed699c72f061ca6bdfcd96c423c2a89e75fc"},
    {file = "netifaces-0.10.9-cp27-cp27m-win32.whl", hash = "sha256:6d84e50ec28e5d766c9911dce945412dc5b1ce760757c224c71e1a9759fa80c2"},
    {file = "netifaces-0.10.9-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f911b7f0083d445c8d24cfa5b42ad4996e33250400492080f5018a28c026db2b"},
    {file = "netifaces-0.10.9-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4921ed406386246b84465950d15a4f63480c1458b0979c272364054b29d73084"},
    {file = "netifaces-0.10.9-cp33-cp33m-manylinux1_i686.whl", hash = "sha256:5b3167f923f67924b356c1338eb9ba275b2ba8d64c7c2c47cf5b5db49d574994"},
    {file = "netifaces-0.10.9-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:db881478f1170c6dd524175ba1c83b99d3a6f992a35eca756de0ddc4690a1940"},
    {file = "netifaces-0.10.9-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:f0427755c68571df37dc58835e53a4307884a48dec76f3c01e33eb0d4a3a81d7"},
    {file = "netifaces-0.10.9-cp34-cp34m-win32.whl", hash = "sha256:7cc6fd1eca65be588f001005446a47981cbe0b2909f5be8feafef3bf351a4e24"},
    {file = "netifaces-0.10.9-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:b47e8f9ff6846756be3dc3fb242ca8e86752cd35a08e06d54ffc2e2a2aca70ea"},
    {file = "netifaces-0.10.9-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f8885cc48c8c7ad51f36c175e462840f163cb4687eeb6c6d7dfaf7197308e36b"},
    {file = "netifaces-0.10.9-cp35-cp35m-win32.whl", hash = "sha256:755050799b5d5aedb1396046f270abfc4befca9ccba3074f3dbbb3cb34f13aae"},
    {file = "netifaces-0.10.9-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:ad10acab2ef691eb29a1cc52c3be5ad1423700e993cc035066049fa72999d0dc"},
    {file = "netifaces-0.10.9-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:563a1a366ee0fb3d96caab79b7ac7abd2c0a0577b157cc5a40301373a0501f89"},
    {file = "netifaces-0.10.9-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:30ed89ab8aff715caf9a9d827aa69cd02ad9f6b1896fd3fb4beb998466ed9a3c"},
    {file = "netifaces-0.10.9-cp36-cp36m-win32.whl", hash = "sha256:75d3a4ec5035db7478520ac547f7c176e9fd438269e795819b67223c486e5cbe"},
    {file = "netifaces-0.10.9-cp36-cp36m-win_amd64.whl", hash = "sha256:078986caf4d6a602a4257d3686afe4544ea74362b8928e9f4389b5cd262bc215"},
    {file = "netifaces-0.10.9-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:3095218b66d359092b82f07c5422293c2f6559cf8d36b96b379cc4cdc26eeffa"},
    {file = "netifaces-0.10.9-cp37-cp37m-win32.whl", hash = "sha256:da298241d87bcf468aa0f0705ba14572ad296f24c4fda5055d6988701d6fd8e1"},
    {file = "netifaces-0.10.9-cp37-cp37m-win_amd64.whl", hash = "sha256:86b8a140e891bb23c8b9cb1804f1475eb13eea3dbbebef01fcbbf10fbafbee42"},
    {file = "netifaces-0.10.9.tar.gz", hash = "sha256:2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3"},
]
os-diskconfig-python-novaclient-ext = [
    {file = "os_diskconfig_python_novaclient_ext-0.1.3-py2-none-any.whl", hash = "sha256:f668665a5765648ec47fbd80f9a8e5f37498b6ea3fb2d0d570b7da7d96146be9"},
    {file = "os_diskconfig_python_novaclient_ext-0.1.3.tar.gz", hash = "sha256:e7d19233a7b73c70244d2527d162d8176555698e7c621b41f689be496df15e75"},
]
os-networksv2-python-novaclient-ext = [
    {file = "os_networksv2_python_novaclient_ext-0.26.tar.gz", hash = "sha256:613a75216d98d3ce6bb413f717323e622386c24fc9cc66148507539e7dc5bf19"},
]
os-virtual-interfacesv2-python-novaclient-ext = [
    {file = "os_virtual_interfacesv2_python_novaclient_ext-0.20.tar.gz", hash = "sha256:6d39ff4174496a0f795d11f20240805a16bbf452091cf8eb9bd1d5ae2fca449d"},
]
"oslo.config" = [
    {file = "oslo.config-4.12.0-py2.py3-none-any.whl", hash = "sha256:8e5c30d0982ed3adb179374405318909f088cbb66baca80879932d53db6a4691"},
    {file = "oslo.config-4.12.0.tar.gz", hash = "sha256:bd8d03c4b28f1aa115e6b094651fc51adbca686f22f45ed721d837a5a5a249dd"},
]
"oslo.i18n" = [
    {file = "oslo.i18n-3.12.0-py2.py3-none-any.whl", hash = "sha256:b01f56d99347bfef6681a0e23b3394e8fc1cf2102b5d85504b898b22273cd0af"},
    {file = "oslo.i18n-3.12.0.tar.gz", hash = "sha256:6add28cbbe8254838f7f131de0cf0f3761786d57e5fe5716a488260b725f58d3"},
]
"oslo.serialization" = [
    {file = "oslo.serialization-2.16.1-py2.py3-none-any.whl", hash = "sha256:f68d1f2c2a7af50ce2b68845400c5a7b4ea9c46eca34eaeb63513c0c49524ad0"},
    {file = "oslo.serialization-2.16.1.tar.gz", hash = "sha256:306d9982eae272fff05db7637971fd07d2b9b818306c9e3af87aea7f452b4844"},
]
"oslo.utils" = [
    {file = "oslo.utils-3.22.3-py2.py3-none-any.whl", hash = "sha256:104f0804304a226721c42c1d34fd2bc12e3a7d790fbd0eb0ce8b0ec5594b2e6e"},
    {file = "oslo.utils-3.22.3.tar.gz", hash = "sha256:70473be975412407d43ef04b0de34c4d21c567bdcab608caeb8f0fcd4138f4f2"},
]
pbr = [
    {file = "pbr-1.10.0-py2.py3-none-any.whl", hash = "sha256:f5cf7265a80636ecff66806d13494cbf9d77a3758a65fd8b4d4d4bee81b0c375"},
    {file = "pbr-1.10.0.tar.gz", hash = "sha256:186428c270309e6fdfe2d5ab0949ab21ae5f7dea831eab96701b86bd666af39c"},
]
positional = [
    {file = "positional-1.2.1.tar.gz", hash = "sha256:cf48ea169f6c39486d5efa0ce7126a97bed979a52af6261cf255a41f9a74453a"},
]
prettytable = [
    {file = "prettytable-0.7.2.tar.bz2", hash = "sha256:853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36"},
    {file = "prettytable-0.7.2.tar.gz", hash = "sha256:2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9"},
    {file = "prettytable-0.7.2.zip", hash = "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"},
]
pycparser = [
    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
]
pyparsing = [
    {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
    {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
]
pyrax = [
    {file = "pyrax-1.9.8-py2.py3-none-any.whl", hash = "sha256:23873829b286183b56fdb94b515118e3332bfcb12b7532dc0582e78bd002c0ae"},
    {file = "pyrax-1.9.8.tar.gz", hash = "sha256:e9db943447fdf2690046d7f98466fc4743497b74578efe6e400a6edbfd9728f5"},
]
python-keystoneclient = [
    {file = "python-keystoneclient-3.10.0.tar.gz", hash = "sha256:c65fa56791ec02dc942ad08e5c3634b8dca98eda76ee3c2549018b6767e67918"},
    {file = "python_keystoneclient-3.10.0-py2.py3-none-any.whl", hash = "sha256:f30dd06d03f1f85af0cfa18c270e23d2ffd9e776c11c1b534f6ea503e4f31d80"},
]
python-novaclient = [
    {file = "python-novaclient-2.27.0.tar.gz", hash = "sha256:d1279d5c2857cf8c56cb953639b36225bc1fec7fa30ee632940823506a7638ef"},
    {file = "python_novaclient-2.27.0-py2.py3-none-any.whl", hash = "sha256:6406a8ced973d6e73115fde9fa4c09e01046415701afd98aaf6f0295ba0bad86"},
]
pytz = [
    {file = "pytz-2019.3-py2.py3-none-any.whl", hash = "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d"},
    {file = "pytz-2019.3.tar.gz", hash = "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"},
]
pywin32-ctypes = [
    {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
    {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
]
pyyaml = [
    {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
    {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
    {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
    {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
    {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
    {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
    {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
    {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
    {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
    {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
    {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
]
rackspace-auth-openstack = [
    {file = "rackspace-auth-openstack-1.3.tar.gz", hash = "sha256:c4c069eeb1924ea492c50144d8a4f5f1eb0ece945e0c0d60157cabcadff651cd"},
]
rackspace-novaclient = [
    {file = "rackspace-novaclient-2.1.tar.gz", hash = "sha256:22fc44f623bae0feb32986ec4630abee904e4c96fba5849386a87e88c450eae7"},
]
rax-default-network-flags-python-novaclient-ext = [
    {file = "rax_default_network_flags_python_novaclient_ext-0.4.0.tar.gz", hash = "sha256:852bf49d90e7a1bc16aa0b25b46a45ba5654069f7321a363c8d94c5496666001"},
]
rax-scheduled-images-python-novaclient-ext = [
    {file = "rax_scheduled_images_python_novaclient_ext-0.3.1.tar.gz", hash = "sha256:f170cf97b20bdc8a1784cc0b85b70df5eb9b88c3230dab8e68e1863bf3937cdb"},
]
requests = [
    {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"},
    {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"},
]
rfc3986 = [
    {file = "rfc3986-1.4.0-py2.py3-none-any.whl", hash = "sha256:af9147e9aceda37c91a05f4deb128d4b4b49d6b199775fd2d2927768abdc8f50"},
    {file = "rfc3986-1.4.0.tar.gz", hash = "sha256:112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d"},
]
secretstorage = [
    {file = "SecretStorage-3.1.2-py3-none-any.whl", hash = "sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b"},
    {file = "SecretStorage-3.1.2.tar.gz", hash = "sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6"},
]
simplejson = [
    {file = "simplejson-3.17.0-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:87d349517b572964350cc1adc5a31b493bbcee284505e81637d0174b2758ba17"},
    {file = "simplejson-3.17.0-cp27-cp27m-win32.whl", hash = "sha256:1d1e929cdd15151f3c0b2efe953b3281b2fd5ad5f234f77aca725f28486466f6"},
    {file = "simplejson-3.17.0-cp27-cp27m-win_amd64.whl", hash = "sha256:1ea59f570b9d4916ae5540a9181f9c978e16863383738b69a70363bc5e63c4cb"},
    {file = "simplejson-3.17.0-cp33-cp33m-win32.whl", hash = "sha256:8027bd5f1e633eb61b8239994e6fc3aba0346e76294beac22a892eb8faa92ba1"},
    {file = "simplejson-3.17.0-cp33-cp33m-win_amd64.whl", hash = "sha256:22a7acb81968a7c64eba7526af2cf566e7e2ded1cb5c83f0906b17ff1540f866"},
    {file = "simplejson-3.17.0-cp34-cp34m-win32.whl", hash = "sha256:17163e643dbf125bb552de17c826b0161c68c970335d270e174363d19e7ea882"},
    {file = "simplejson-3.17.0-cp34-cp34m-win_amd64.whl", hash = "sha256:0fe3994207485efb63d8f10a833ff31236ed27e3b23dadd0bf51c9900313f8f2"},
    {file = "simplejson-3.17.0-cp35-cp35m-win32.whl", hash = "sha256:4cf91aab51b02b3327c9d51897960c554f00891f9b31abd8a2f50fd4a0071ce8"},
    {file = "simplejson-3.17.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fc9051d249dd5512e541f20330a74592f7a65b2d62e18122ca89bf71f94db748"},
    {file = "simplejson-3.17.0-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:86afc5b5cbd42d706efd33f280fec7bd7e2772ef54e3f34cf6b30777cd19a614"},
    {file = "simplejson-3.17.0-cp36-cp36m-win32.whl", hash = "sha256:926bcbef9eb60e798eabda9cd0bbcb0fca70d2779aa0aa56845749d973eb7ad5"},
    {file = "simplejson-3.17.0-cp36-cp36m-win_amd64.whl", hash = "sha256:daaf4d11db982791be74b23ff4729af2c7da79316de0bebf880fa2d60bcc8c5a"},
    {file = "simplejson-3.17.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:9a126c3a91df5b1403e965ba63b304a50b53d8efc908a8c71545ed72535374a3"},
    {file = "simplejson-3.17.0-cp37-cp37m-win32.whl", hash = "sha256:fc046afda0ed8f5295212068266c92991ab1f4a50c6a7144b69364bdee4a0159"},
    {file = "simplejson-3.17.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7cce4bac7e0d66f3a080b80212c2238e063211fe327f98d764c6acbc214497fc"},
    {file = "simplejson-3.17.0.tar.gz", hash = "sha256:2b4b2b738b3b99819a17feaf118265d0753d5536049ea570b3c43b51c4701e81"},
    {file = "simplejson-3.17.0.win-amd64-py2.7.exe", hash = "sha256:1d346c2c1d7dd79c118f0cc7ec5a1c4127e0c8ffc83e7b13fc5709ff78c9bb84"},
    {file = "simplejson-3.17.0.win-amd64-py3.3.exe", hash = "sha256:5cfd495527f8b85ce21db806567de52d98f5078a8e9427b18e251c68bd573a26"},
    {file = "simplejson-3.17.0.win-amd64-py3.4.exe", hash = "sha256:8de378d589eccbc75941e480b4d5b4db66f22e4232f87543b136b1f093fff342"},
    {file = "simplejson-3.17.0.win-amd64-py3.5.exe", hash = "sha256:f4b64a1031acf33e281fd9052336d6dad4d35eee3404c95431c8c6bc7a9c0588"},
    {file = "simplejson-3.17.0.win-amd64-py3.6.exe", hash = "sha256:ad8dd3454d0c65c0f92945ac86f7b9efb67fa2040ba1b0189540e984df904378"},
    {file = "simplejson-3.17.0.win-amd64-py3.7.exe", hash = "sha256:229edb079d5dd81bf12da952d4d825bd68d1241381b37d3acf961b384c9934de"},
    {file = "simplejson-3.17.0.win32-py2.7.exe", hash = "sha256:4fd5f79590694ebff8dc980708e1c182d41ce1fda599a12189f0ca96bf41ad70"},
    {file = "simplejson-3.17.0.win32-py3.3.exe", hash = "sha256:d140e9376e7f73c1f9e0a8e3836caf5eec57bbafd99259d56979da05a6356388"},
    {file = "simplejson-3.17.0.win32-py3.4.exe", hash = "sha256:da00675e5e483ead345429d4f1374ab8b949fba4429d60e71ee9d030ced64037"},
    {file = "simplejson-3.17.0.win32-py3.5.exe", hash = "sha256:7739940d68b200877a15a5ff5149e1599737d6dd55e302625650629350466418"},
    {file = "simplejson-3.17.0.win32-py3.6.exe", hash = "sha256:60aad424e47c5803276e332b2a861ed7a0d46560e8af53790c4c4fb3420c26c2"},
    {file = "simplejson-3.17.0.win32-py3.7.exe", hash = "sha256:1fbba86098bbfc1f85c5b69dc9a6d009055104354e0d9880bb00b692e30e0078"},
]
six = [
    {file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"},
    {file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"},
]
stevedore = [
    {file = "stevedore-1.20.1-py2.py3-none-any.whl", hash = "sha256:edc26850d33770ce0b961b10b4a20c0b366bf89e316bbc9fa200dfd7ca2b5e57"},
    {file = "stevedore-1.20.1.tar.gz", hash = "sha256:046200a915780b58bf1c84436e86701b741d664893aefa84d8aceadd15ed4734"},
]
urllib3 = [
    {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"},
    {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"},
]
wrapt = [
    {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"},
]
pradyunsg commented 4 years ago

Whee! Thanks for trying out the new resolver @AndydeCleyre and for filing this report! ^>^

pradyunsg commented 4 years ago

@AndydeCleyre Could you try out pip's current master branch (installable via pip install https://github.com/pypa/pip/archive/master.zip)? It contains https://github.com/pypa/pip/pull/8275 which should result in this error not occuring for any reasonable configuration.

AndydeCleyre commented 4 years ago

@pradyunsg

This eventually fails:

Collecting PyYAML>=3.12
  Using cached PyYAML-5.3.1.tar.gz (269 kB)
Collecting PyYAML>=3.12
ERROR: pip can't proceed with requirements 'PyYAML>=3.12 from https://files.pythonhosted.org/packages/3d/d9/ea9816aea31beeadccd03f1f8b625ecf8f645bd66744484d162d84803ce5/PyYAML-5.3.tar.gz#sha256=e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615 (from oslo.serialization>=1.4.0->python-novaclient==2.27.0->pyrax==1.9.8)' due to a pre-existing build directory (/tmp/pip-install-duyjcj9m/PyYAML). This is likely due to a previous installation that failed. pip is being responsible and not assuming it can delete this. Please delete it and try again.

It creates that dir during the process, and the result is the same with --no-cache-dir.

pradyunsg commented 4 years ago

@pfmoore @uranusjr looks like a bug to fix. :)

uranusjr commented 4 years ago

I feel I’ve seens this before… @pfmoore is this the error you managed to avoid by aggressively caching the candidates? I wonder why it’s coming back.

uranusjr commented 4 years ago

I filed pypa/pip#8282 with a minimal reproduction of the failure.

pfmoore commented 4 years ago

I got that today while testing something. I'm pretty sure it's a symptom of preparing the same ireq twice, but I'm not sure what triggers that - we'd need two candidates built from the same ireq. I'll try to take a look.

notatallshaw commented 2 years ago

I'm not familiar with this repo but FYI this particular example pyrax==1.9.8 seems to have been fixed in pip by https://github.com/pypa/pip/issues/10479

pradyunsg commented 2 years ago

Yup -- this was used to collect interesting test cases during new resolver work that was undertaken in 2020. Before that, this was where I was drafting an implementation that ended up being very similar to resolvelib. :)