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

New resolver: pip seems to not do anything and stuck during resolution #8683

Closed
noamkush opened this issue Aug 2, 2020 · 20 comments
Closed
Assignees
Labels
type: enhancement Improvements to functionality UX User experience related

Comments

@noamkush
Copy link

noamkush commented Aug 2, 2020

Environment

  • pip 20.2 (also tried master)
  • Python 3.6

On a clean environment, running pip install --use-feature=2020-resolver -r requirements.txt

boto3>=1.14.33
elasticsearch-dsl>=7.1,<7.2
elasticsearch>=7.0,<8.0
user-agents>=1.1.0
requests_mock>=1.6
awsebcli>=3.18

The installation is stuck indefinitely, repeating the last output, see log. I kept it running for 5+ minutes but it keeps going (unreasonable for such a short list of requirements). I cut the log short since it repeats itself.

Collecting boto3>=1.14.33
  Using cached boto3-1.14.33-py2.py3-none-any.whl (129 kB)
Collecting elasticsearch-dsl<7.2,>=7.1
  Using cached elasticsearch_dsl-7.1.0-py2.py3-none-any.whl (53 kB)
Collecting botocore<1.18.0,>=1.17.33
  Using cached botocore-1.17.33-py2.py3-none-any.whl (6.5 MB)
Processing /home/noam/.cache/pip/wheels/99/f3/df/12f8953cef0e59c251c6e9cf7816d202e8e778a3a928a645a6/user_agents-2.1-cp36-none-any.whl
Collecting ua-parser>=0.9.0
  Using cached ua_parser-0.10.0-py2.py3-none-any.whl (35 kB)
Collecting requests_mock>=1.6
  Using cached requests_mock-1.8.0-py2.py3-none-any.whl (23 kB)
Processing /home/noam/.cache/pip/wheels/c2/3a/2f/3c725041250659af00a69f4fd3e211f69a1638e4ad79701fc2/awsebcli-3.18.2-py3-none-any.whl
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Processing /home/noam/.cache/pip/wheels/22/23/ff/a2333c06c7cee314937b0e24e46386d070082213ca940e71c6/awsebcli-3.18.1-cp36-none-any.whl
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Collecting awsebcli>=3.18
  Using cached awsebcli-3.18.0.tar.gz (249 kB)
Collecting requests_mock>=1.6
  Using cached requests_mock-1.7.0-py2.py3-none-any.whl (23 kB)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Collecting requests_mock>=1.6
  Using cached requests_mock-1.6.0-py2.py3-none-any.whl (22 kB)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
Requirement already satisfied: setuptools>=20.0 in /home/noam/.virtualenvs/tmp-a6fdd377fc9345b0/lib/python3.6/site-packages (from awsebcli>=3.18->-r requirements.txt (line 6)) (49.2.0)
...
@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label Aug 2, 2020
@deveshks
Copy link
Contributor

deveshks commented Aug 2, 2020

An additional observation. Just using two requirements out of the ones mentions causes a ResolutionImpossible error.

$ cat requirements.txt 
boto3>=1.14.33
awsebcli>=3.18

$ pip install --use-feature=2020-resolver -r requirements.txt 
Collecting boto3>=1.14.33
  Using cached boto3-1.14.33-py2.py3-none-any.whl (129 kB)
Collecting botocore<1.18.0,>=1.17.33
  Using cached botocore-1.17.33-py2.py3-none-any.whl (6.5 MB)
Collecting awsebcli>=3.18
  Using cached awsebcli-3.18.2.tar.gz (246 kB)
Collecting awsebcli>=3.18
  Using cached awsebcli-3.18.1.tar.gz (246 kB)
Collecting awsebcli>=3.18
  Using cached awsebcli-3.18.0.tar.gz (249 kB)
ERROR: Cannot install -r requirements.txt (line 1), -r requirements.txt (line 2), -r requirements.txt (line 1), -r requirements.txt (line 2), -r requirements.txt (line 1) and -r requirements.txt (line 2) because these package versions have conflicting dependencies.

The conflict is caused by:
    boto3 1.14.33 depends on botocore<1.18.0 and >=1.17.33
    awsebcli 3.18.2 depends on botocore<1.16 and >=1.15
    boto3 1.14.33 depends on botocore<1.18.0 and >=1.17.33
    awsebcli 3.18.1 depends on botocore<1.16 and >=1.15
    boto3 1.14.33 depends on botocore<1.18.0 and >=1.17.33
    awsebcli 3.18.0 depends on botocore<1.16 and >=1.15

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible For help visit: https://pip.pypa.io/en/stable/user_guide/#fixing-conflicting-dependencies

@uranusjr
Copy link
Member

uranusjr commented Aug 2, 2020

Yeah, I ran the full requirements set with a few print statements locally, and it seems like the resolver is just backtracking like hell. The problem is that the output pip generates is not doing a good job reporting the situation to the user, and it seems stuck doing repeated things. (They are not the same thing, but different things generating the same output.)

Edit: I’m marking this as an enhancement since pip is arguably doing the correct thing here, but needs to do it better.

Edit 2: For maintainers wondering, the repeated setuptools line is printed because the resolver is trying to build different versions of awsebcli from source.

@uranusjr uranusjr added C: new resolver type: enhancement Improvements to functionality labels Aug 2, 2020
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label Aug 2, 2020
@pradyunsg
Copy link
Member

pradyunsg commented Aug 3, 2020

Thanks for testing out the new resolver and filing an issue @noamkush! ^>^

The problem is that the output pip generates is not doing a good job reporting the situation to the user, and it seems stuck doing repeated things. (They are not the same thing, but different things generating the same output.)

Nice debugging and thanks for looking into this. Looks like this is basically as #8346 -- i.e. improving pip's output during backtracking in dependency resolution? I'm kinda in favor of closing this issue with a note on that one about there being a proper user report + test case in this one.

@uranusjr uranusjr changed the title New resolver: pip is stuck indefinitely New resolver: pip seems to not do anything and stuck during resolution Aug 5, 2020
@uranusjr
Copy link
Member

uranusjr commented Aug 5, 2020

We’ll probably need to revisit the ResolutionTooDeep conversaion. It seems like the user is willing to wait for the resolver (in absolute rounds), the patience threshold is relatively low before the user decides the resolver is “stalling”.

Both this issue and #8705 indicates that the user tends to easily feel the resolver is stuck if it’s not looking for new things (no Collecting xxx and Using cached xxx messages). Maybe that would be a good metric to detect whether the resolver is working too hard, and user intervention (providing a stricter version range) would be useful?

@uranusjr uranusjr added the UX User experience related label Aug 5, 2020
@pradyunsg
Copy link
Member

I wonder if what we need here is some output to indicate that the resolver is "doing stuff" in addition to a better metric for "too much work". :)

@uranusjr
Copy link
Member

uranusjr commented Aug 5, 2020

Yeah, it would be helpful to hook into the reporter’s backtracking and pinning_candidate (something like that, I forgot the actual hook name) and output something. That’d help maintainers triage those reports, at least. I doubt that would help user perception much, however, since the user would still see the resolver trying to pin the same package repeatedly, which also feels like stalling.

@daneah
Copy link
Contributor

daneah commented Sep 8, 2020

Hey all! Has an approach been proposed for this issue? If I understand correctly, the underlying behavior is that pip is working in the background to find compatible dependencies and not currently reporting much about the situation. I observed this backtracking manifesting in some of my CI jobs starting to sit for 4 hours or so (until I canceled them) without completing.

I'm growing anxious that fixing the reporting may help shed some light that pip is doing this work, but that I'll still be unsure how to act on this when I see it happening. Is there guidance you can provide on how one can best identify packages contributing to backtracking so that one can fix their dependency resolution issues?

In my case, pylint depends on astroid and mccabe and I'm seeing the backtracking happening there, but I'm not sure what I could do to fix it myself or report an issue to any of them.

@pradyunsg
Copy link
Member

@daneah could you share the specific requirements.txt file that's causing this issue for you?

@daneah
Copy link
Contributor

daneah commented Sep 8, 2020

@pradyunsg The issue arose in a project where we use tox with some requirements (some private) specified in setup.cfg under one of the test environments—it was difficult to get a minimal reproduction going. I provided the full dependency tree in #8705 which is reproduced below, but also happy to try to provide more specifics where helpful!

Dependency tree
root@ac97dcf7ba94:/code/shared-packages/[private package]# pipdeptree
Warning!!! Possibly conflicting dependencies found:
* astroid==2.4.2
 - wrapt [required: ~=1.11, installed: 1.10.4]
------------------------------------------------------------------------
[private package]
  - Django [required: >=1.11, installed: 3.1]
    - asgiref [required: ~=3.2.10, installed: 3.2.10]
    - pytz [required: Any, installed: 2020.1]
    - sqlparse [required: >=0.2.2, installed: 0.3.1]
  - [private package]
    - beautifulsoup4 [required: >=4.3.2,<5, installed: 4.9.1]
      - soupsieve [required: >1.2, installed: 2.0.1]
    - boto3 [required: >=1.9,<2, installed: 1.14.35]
      - botocore [required: >=1.17.35,<1.18.0, installed: 1.17.35]
        - docutils [required: >=0.10,<0.16, installed: 0.15.2]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
          - six [required: >=1.5, installed: 1.15.0]
        - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
      - s3transfer [required: >=0.3.0,<0.4.0, installed: 0.3.3]
        - botocore [required: >=1.12.36,<2.0a.0, installed: 1.17.35]
          - docutils [required: >=0.10,<0.16, installed: 0.15.2]
          - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
          - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
            - six [required: >=1.5, installed: 1.15.0]
          - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
    - botocore [required: >=1.12,<2, installed: 1.17.35]
      - docutils [required: >=0.10,<0.16, installed: 0.15.2]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
        - six [required: >=1.5, installed: 1.15.0]
      - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
    - Django [required: >=1.11, installed: 3.1]
      - asgiref [required: ~=3.2.10, installed: 3.2.10]
      - pytz [required: Any, installed: 2020.1]
      - sqlparse [required: >=0.2.2, installed: 0.3.1]
    - html5lib [required: ==0.999, installed: 0.999]
      - six [required: Any, installed: 1.15.0]
    - netaddr [required: ==0.7.15, installed: 0.7.15]
    - python3-memcached [required: ==1.51, installed: 1.51]
    - requests [required: >=2.11.1,<3, installed: 2.24.0]
      - certifi [required: >=2017.4.17, installed: 2020.6.20]
      - chardet [required: >=3.0.2,<4, installed: 3.0.4]
      - idna [required: >=2.5,<3, installed: 2.10]
      - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
    - statsd [required: >=3.1,<4, installed: 3.3.0]
    - [private package]
      - Django [required: >=1.11, installed: 3.1]
        - asgiref [required: ~=3.2.10, installed: 3.2.10]
        - pytz [required: Any, installed: 2020.1]
        - sqlparse [required: >=0.2.2, installed: 0.3.1]
      - requests [required: >=2.9.1,<3, installed: 2.24.0]
        - certifi [required: >=2017.4.17, installed: 2020.6.20]
        - chardet [required: >=3.0.2,<4, installed: 3.0.4]
        - idna [required: >=2.5,<3, installed: 2.10]
        - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
    - wrapt [required: ==1.10.4, installed: 1.10.4]
  - statsd [required: >=3.1,<4, installed: 3.3.0]
mypy==0.782
  - mypy-extensions [required: >=0.4.3,<0.5.0, installed: 0.4.3]
  - typed-ast [required: >=1.4.0,<1.5.0, installed: 1.4.1]
  - typing-extensions [required: >=3.7.4, installed: 3.7.4.2]
pipdeptree==1.0.0
  - pip [required: >=6.0.0, installed: 20.2.1]
pylint==2.5.3
  - astroid [required: >=2.4.0,<=2.5, installed: 2.4.2]
    - lazy-object-proxy [required: ==1.4.*, installed: 1.4.3]
    - six [required: ~=1.12, installed: 1.15.0]
    - typed-ast [required: >=1.4.0,<1.5, installed: 1.4.1]
    - wrapt [required: ~=1.11, installed: 1.10.4]
  - isort [required: >=4.2.5,<5, installed: 4.3.21]
  - mccabe [required: >=0.6,<0.7, installed: 0.6.1]
  - toml [required: >=0.7.1, installed: 0.10.1]
pytest-cov==2.10.0
  - coverage [required: >=4.4, installed: 5.2.1]
  - pytest [required: >=4.6, installed: 5.4.3]
    - attrs [required: >=17.4.0, installed: 19.3.0]
    - importlib-metadata [required: >=0.12, installed: 1.7.0]
      - zipp [required: >=0.5, installed: 3.1.0]
    - more-itertools [required: >=4.0.0, installed: 8.4.0]
    - packaging [required: Any, installed: 20.4]
      - pyparsing [required: >=2.0.2, installed: 2.4.7]
      - six [required: Any, installed: 1.15.0]
    - pluggy [required: >=0.12,<1.0, installed: 0.13.1]
      - importlib-metadata [required: >=0.12, installed: 1.7.0]
        - zipp [required: >=0.5, installed: 3.1.0]
    - py [required: >=1.5.0, installed: 1.9.0]
    - wcwidth [required: Any, installed: 0.2.5]
pytest-django==3.9.0
  - pytest [required: >=3.6, installed: 5.4.3]
    - attrs [required: >=17.4.0, installed: 19.3.0]
    - importlib-metadata [required: >=0.12, installed: 1.7.0]
      - zipp [required: >=0.5, installed: 3.1.0]
    - more-itertools [required: >=4.0.0, installed: 8.4.0]
    - packaging [required: Any, installed: 20.4]
      - pyparsing [required: >=2.0.2, installed: 2.4.7]
      - six [required: Any, installed: 1.15.0]
    - pluggy [required: >=0.12,<1.0, installed: 0.13.1]
      - importlib-metadata [required: >=0.12, installed: 1.7.0]
        - zipp [required: >=0.5, installed: 3.1.0]
    - py [required: >=1.5.0, installed: 1.9.0]
    - wcwidth [required: Any, installed: 0.2.5]
pytest-randomly==3.2.1
  - importlib-metadata [required: Any, installed: 1.7.0]
    - zipp [required: >=0.5, installed: 3.1.0]
  - pytest [required: Any, installed: 5.4.3]
    - attrs [required: >=17.4.0, installed: 19.3.0]
    - importlib-metadata [required: >=0.12, installed: 1.7.0]
      - zipp [required: >=0.5, installed: 3.1.0]
    - more-itertools [required: >=4.0.0, installed: 8.4.0]
    - packaging [required: Any, installed: 20.4]
      - pyparsing [required: >=2.0.2, installed: 2.4.7]
      - six [required: Any, installed: 1.15.0]
    - pluggy [required: >=0.12,<1.0, installed: 0.13.1]
      - importlib-metadata [required: >=0.12, installed: 1.7.0]
        - zipp [required: >=0.5, installed: 3.1.0]
    - py [required: >=1.5.0, installed: 1.9.0]
    - wcwidth [required: Any, installed: 0.2.5]
[private package]
  - apiron [required: >=5.1.0,<6, installed: 5.1.0]
    - requests [required: >=2.11.1,<3, installed: 2.24.0]
      - certifi [required: >=2017.4.17, installed: 2020.6.20]
      - chardet [required: >=3.0.2,<4, installed: 3.0.4]
      - idna [required: >=2.5,<3, installed: 2.10]
      - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
  - boto3 [required: >=1.9,<2, installed: 1.14.35]
    - botocore [required: >=1.17.35,<1.18.0, installed: 1.17.35]
      - docutils [required: >=0.10,<0.16, installed: 0.15.2]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
        - six [required: >=1.5, installed: 1.15.0]
      - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
    - s3transfer [required: >=0.3.0,<0.4.0, installed: 0.3.3]
      - botocore [required: >=1.12.36,<2.0a.0, installed: 1.17.35]
        - docutils [required: >=0.10,<0.16, installed: 0.15.2]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
          - six [required: >=1.5, installed: 1.15.0]
        - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
  - botocore [required: >=1.12,<2, installed: 1.17.35]
    - docutils [required: >=0.10,<0.16, installed: 0.15.2]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
    - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
      - six [required: >=1.5, installed: 1.15.0]
    - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
  - Django [required: >=1.11, installed: 3.1]
    - asgiref [required: ~=3.2.10, installed: 3.2.10]
    - pytz [required: Any, installed: 2020.1]
    - sqlparse [required: >=0.2.2, installed: 0.3.1]
  - [private package]
    - apiron [required: >=4.2.0,<6, installed: 5.1.0]
      - requests [required: >=2.11.1,<3, installed: 2.24.0]
        - certifi [required: >=2017.4.17, installed: 2020.6.20]
        - chardet [required: >=3.0.2,<4, installed: 3.0.4]
        - idna [required: >=2.5,<3, installed: 2.10]
        - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
  - [private package]
    - beautifulsoup4 [required: >=4.3.2,<5, installed: 4.9.1]
      - soupsieve [required: >1.2, installed: 2.0.1]
    - boto3 [required: >=1.9,<2, installed: 1.14.35]
      - botocore [required: >=1.17.35,<1.18.0, installed: 1.17.35]
        - docutils [required: >=0.10,<0.16, installed: 0.15.2]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
          - six [required: >=1.5, installed: 1.15.0]
        - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
      - s3transfer [required: >=0.3.0,<0.4.0, installed: 0.3.3]
        - botocore [required: >=1.12.36,<2.0a.0, installed: 1.17.35]
          - docutils [required: >=0.10,<0.16, installed: 0.15.2]
          - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
          - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
            - six [required: >=1.5, installed: 1.15.0]
          - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
    - botocore [required: >=1.12,<2, installed: 1.17.35]
      - docutils [required: >=0.10,<0.16, installed: 0.15.2]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.1]
        - six [required: >=1.5, installed: 1.15.0]
      - urllib3 [required: >=1.20,<1.26, installed: 1.25.10]
    - Django [required: >=1.11, installed: 3.1]
      - asgiref [required: ~=3.2.10, installed: 3.2.10]
      - pytz [required: Any, installed: 2020.1]
      - sqlparse [required: >=0.2.2, installed: 0.3.1]
    - html5lib [required: ==0.999, installed: 0.999]
      - six [required: Any, installed: 1.15.0]
    - netaddr [required: ==0.7.15, installed: 0.7.15]
    - python3-memcached [required: ==1.51, installed: 1.51]
    - requests [required: >=2.11.1,<3, installed: 2.24.0]
      - certifi [required: >=2017.4.17, installed: 2020.6.20]
      - chardet [required: >=3.0.2,<4, installed: 3.0.4]
      - idna [required: >=2.5,<3, installed: 2.10]
      - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
    - statsd [required: >=3.1,<4, installed: 3.3.0]
    - [private package] [required: >=1.0.0,<2, installed: 1.1.0]
      - Django [required: >=1.11, installed: 3.1]
        - asgiref [required: ~=3.2.10, installed: 3.2.10]
        - pytz [required: Any, installed: 2020.1]
        - sqlparse [required: >=0.2.2, installed: 0.3.1]
      - requests [required: >=2.9.1,<3, installed: 2.24.0]
        - certifi [required: >=2017.4.17, installed: 2020.6.20]
        - chardet [required: >=3.0.2,<4, installed: 3.0.4]
        - idna [required: >=2.5,<3, installed: 2.10]
        - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
    - wrapt [required: ==1.10.4, installed: 1.10.4]
  - pydantic [required: >=1.4, installed: 1.6.1]
  - requests [required: >=2.24.0,<3, installed: 2.24.0]
    - certifi [required: >=2017.4.17, installed: 2020.6.20]
    - chardet [required: >=3.0.2,<4, installed: 3.0.4]
    - idna [required: >=2.5,<3, installed: 2.10]
    - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
  - retrying [required: >=1.3.3,<2, installed: 1.3.3]
    - six [required: >=1.7.0, installed: 1.15.0]
  - urllib3 [required: >=1.25.7,<2, installed: 1.25.10]
  - [private package]
    - Django [required: >=1.11, installed: 3.1]
      - asgiref [required: ~=3.2.10, installed: 3.2.10]
      - pytz [required: Any, installed: 2020.1]
      - sqlparse [required: >=0.2.2, installed: 0.3.1]
    - requests [required: >=2.9.1,<3, installed: 2.24.0]
      - certifi [required: >=2017.4.17, installed: 2020.6.20]
      - chardet [required: >=3.0.2,<4, installed: 3.0.4]
      - idna [required: >=2.5,<3, installed: 2.10]
      - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.10]
setuptools==47.1.0
tox==3.18.1
  - filelock [required: >=3.0.0, installed: 3.0.12]
  - importlib-metadata [required: >=0.12,<2, installed: 1.7.0]
    - zipp [required: >=0.5, installed: 3.1.0]
  - packaging [required: >=14, installed: 20.4]
    - pyparsing [required: >=2.0.2, installed: 2.4.7]
    - six [required: Any, installed: 1.15.0]
  - pluggy [required: >=0.12.0, installed: 0.13.1]
    - importlib-metadata [required: >=0.12, installed: 1.7.0]
      - zipp [required: >=0.5, installed: 3.1.0]
  - py [required: >=1.4.17, installed: 1.9.0]
  - six [required: >=1.14.0, installed: 1.15.0]
  - toml [required: >=0.9.4, installed: 0.10.1]
  - virtualenv [required: >=16.0.0,!=20.0.7,!=20.0.6,!=20.0.5,!=20.0.4,!=20.0.3,!=20.0.2,!=20.0.1,!=20.0.0, installed: 20.0.30]
    - appdirs [required: >=1.4.3,<2, installed: 1.4.4]
    - distlib [required: >=0.3.1,<1, installed: 0.3.1]
    - filelock [required: >=3.0.0,<4, installed: 3.0.12]
    - importlib-metadata [required: >=0.12,<2, installed: 1.7.0]
      - zipp [required: >=0.5, installed: 3.1.0]
    - six [required: >=1.9.0,<2, installed: 1.15.0]

One TL;DR is that we only ever ask for pylint without pinning a specific version because it's a CI and not runtime dependency—I can only think that perhaps one of our (sub)dependencies asks for a specific and incompatible version of pylint.

@brainwane
Copy link
Contributor

If I understand correctly, the underlying behavior is that pip is working in the background to find compatible dependencies and not currently reporting much about the situation.

Yep! The team discussed this problem in last week's meeting and work is now in progress so that pip will inform the user when the resolver is doing a lot of backtracking. We'll probably be giving the user a short in-terminal error message and pointing to longer documentation, as we did with this conflict resolution documentation.

I'm growing anxious that fixing the reporting may help shed some light that pip is doing this work, but that I'll still be unsure how to act on this when I see it happening. Is there guidance you can provide on how one can best identify packages contributing to backtracking so that one can fix their dependency resolution issues?

I'll defer to other people on answering this question. Thank you!

@daneah
Copy link
Contributor

daneah commented Oct 7, 2020

Thanks for the follow up @brainwane! The conflict resolution docs do speak pretty well to my concern 😄

@indrasvat
Copy link

indrasvat commented Oct 30, 2020

Hi, all

When this new resolver becomes the default, will there still be an option/flag to disable this, and use the older resolver? Or, would the only option then be to downgrade and use an older version of pip?

@pfmoore
Copy link
Member

pfmoore commented Oct 30, 2020

@kodeninja For a (short) period, yes, you will be able to say --use-deprecated=legacy-resolver to get the old resolver. This is very much a short-term option to help people who need a little more time to handle the transition, though.

Anyone wanting the old resolver on a long-term basis will need to pin to an older version of pip. (And ideally, they will let us know why they feel they have to do that, so we can fix any issue in the new resolver that is preventing them switching).

@pradyunsg
Copy link
Member

we can fix any issue in the new resolver that is preventing them switching

I want to emphasise on this -- the new resolver is much easier to work with (as a maintainer) because it's stricter. Overall, I think it's now much easier to make progress on improvement/changes, should there be a need to do so.

@ohadbenita
Copy link

ohadbenita commented Oct 30, 2020 via email

@pfmoore
Copy link
Member

pfmoore commented Oct 30, 2020

We believe we've solved all of the issues that we've been able to reproduce (with the proviso that some backtracking is simply necessary with the new resolver because that's how we get a valid result - backtracking itself isn't an issue, it's how we avoid unnecessary backtracking, and process packages quickly that matters). If you want to, you can try installing pip from master and check whether your case is addressed - or you could wait for the 20.3 beta, which should be released in the next couple of days. If you still have an issue, and can provide a means of reproducing it, please file an issue. But hopefully, all of the major slowdowns are now gone.

@ohadbenita
Copy link

I'll wait for the next stable release as this is used in a production environment.

@indrasvat
Copy link

indrasvat commented Oct 30, 2020

@pfmoore @pradyunsg I'm running into the backtracking issue (seems like it) as well.

test-pip-2020-resolver.sh is a small script to exercise the new resolver against a simple requirements.txt.

awscli
boto3
s3fs
snowflake-connector-python

I have tried several other variations of the requirements as well (with different constraints), but couldn't get it to install.

This script simply does not finish, in multiple tests so far. At some point during the installation, the terminal output just stops updating. I've left it running for a whole day and it still doesn't finish/fail 🤷🏻‍♂️.

Sample run
Python version:

Python 3.8.5Current dir: ~/tmp/test-pip-2020-resolver-1604092332Installing virtualenv...

Requirement already satisfied: virtualenv in /usr/local/lib/python3.8/site-packages (20.0.28)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.8/site-packages (from virtualenv) (3.0.12)
Requirement already satisfied: appdirs<2,>=1.4.3 in /usr/local/lib/python3.8/site-packages (from virtualenv) (1.4.4)
Requirement already satisfied: six<2,>=1.9.0 in /usr/local/Cellar/protobuf/3.12.4/libexec/lib/python3.8/site-packages (from virtualenv) (1.15.0)
Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.8/site-packages (from virtualenv) (0.3.1)

➤  Creating virtualenv...

created virtual environment CPython3.8.5.final.0-64 in 492ms
  creator CPython3Posix(dest=~/tmp/test-pip-2020-resolver-1604092332/venv-pip-2020, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=~/Library/Application Support/virtualenv)
    added seed packages: pip==20.1.1, setuptools==49.2.0, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivatorActivating virtualenv...


➤  Upgrading pip to latest...

Collecting pip
  Using cached pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.1.1
    Uninstalling pip-20.1.1:
      Successfully uninstalled pip-20.1.1
Successfully installed pip-20.2.4Installing pipdeptree...

Collecting pipdeptree==1.0.0
  Using cached pipdeptree-1.0.0-py3-none-any.whl (12 kB)
Requirement already satisfied: pip>=6.0.0 in ./venv-pip-2020/lib/python3.8/site-packages (from pipdeptree==1.0.0) (20.2.4)
Installing collected packages: pipdeptree
Successfully installed pipdeptree-1.0.0Contents of ~/tmp/test-pip-2020-resolver-1604092332:

total 8
drwxr-xr-x  6 user  staff  192 Oct 30 14:12 venv-pip-2020
-rw-r--r--  1 user  staff   45 Oct 30 14:12 requirements.txtInstalling the following dependencies:

awscli
boto3
s3fs
snowflake-connector-pythonpython3 -m pip install --use-feature=2020-resolver -r requirements.txt

Collecting awscli
  Using cached awscli-1.18.169.tar.gz (1.3 MB)
Collecting boto3
  Downloading boto3-1.16.9-py2.py3-none-any.whl (129 kB)
     |████████████████████████████████| 129 kB 616 kB/s
Collecting s3fs
  Using cached s3fs-0.5.1-py3-none-any.whl (21 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.3.4-cp38-cp38-macosx_10_13_x86_64.whl (4.8 MB)
Collecting boto3
  Using cached boto3-1.15.18-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.17-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.16-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.15-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.14-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.13-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.12-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.11-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.10-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.9-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.8-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.7-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.6-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.5-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.4-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.3-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.2-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.1-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.15.0-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.63-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.62-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.61-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.60-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.59-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.58-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.57-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.56-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.55-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.54-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.53-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.52-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.51-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.50-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.49-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.48-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.47-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.46-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.45-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.44-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.43-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.42-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.41-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.40-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.39-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.38-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.37-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.36-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.35-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.34-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.33-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.32-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.31-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.30-py2.py3-none-any.whl (129 kB)
Collecting boto3
  Using cached boto3-1.14.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.14.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.13.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.49-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.48-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.47-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.46-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.45-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.44-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.43-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.42-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.41-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.40-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.39-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.38-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.37-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.36-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.35-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.34-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.33-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.32-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.31-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.30-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.12.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.11.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.50-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.49-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.48-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.47-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.46-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.45-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.44-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.43-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.42-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.41-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.40-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.39-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.38-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.37-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.36-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.35-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.34-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.33-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.32-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.31-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.30-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.10.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.253-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.252-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.251-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.250-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.249-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.248-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.247-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.246-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.245-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.244-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.243-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.242-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.241-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.240-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.239-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.238-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.237-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.236-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.235-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.234-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.233-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.232-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.231-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.230-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.229-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.228-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.227-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.226-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.225-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.224-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.223-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.222-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.221-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.220-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.219-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.218-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.217-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.216-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.215-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.214-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.213-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.212-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.211-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.210-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.209-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.208-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.207-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.206-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.205-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.204-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.203-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.202-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.201-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.200-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.199-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.198-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.197-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.196-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.195-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.194-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.193-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.192-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.191-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.190-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.189-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.188-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.187-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.186-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.185-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.184-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.183-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.182-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.181-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.180-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.179-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.178-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.177-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.176-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.175-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.174-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.173-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.172-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.171-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.170-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.169-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.168-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.167-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.166-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.165-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.164-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.163-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.162-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.161-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.160-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.159-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.158-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.157-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.156-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.155-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.154-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.153-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.152-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.151-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.150-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.149-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.148-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.147-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.146-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.145-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.144-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.143-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.142-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.141-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.140-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.139-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.138-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.137-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.136-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.135-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.134-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.133-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.132-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.131-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.130-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.129-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.128-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.127-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.126-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.125-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.124-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.123-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.122-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.121-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.120-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.119-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.118-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.117-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.116-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.115-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.114-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.113-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.112-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.111-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.110-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.109-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.108-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.107-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.106-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.105-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.104-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.103-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.102-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.101-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.100-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.99-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.98-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.97-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.96-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.95-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.94-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.93-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.92-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.91-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.90-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.89-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.88-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.87-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.86-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.85-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.84-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.83-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.82-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.81-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.80-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.79-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.78-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.77-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.76-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.75-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.74-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.73-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.72-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.71-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.70-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.69-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.68-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.67-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.66-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.65-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.64-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.63-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.62-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.61-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.60-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.59-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.58-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.57-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.56-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.55-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.54-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.53-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.52-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.51-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.50-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.49-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.48-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.47-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.46-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.45-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.44-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.43-py2.py3-none-any.whl (126 kB)
Collecting boto3
  Using cached boto3-1.9.42-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.41-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.40-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.39-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.38-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.37-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.36-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.35-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.34-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.33-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.32-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.31-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.30-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.9.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.8.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.84-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.83-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.82-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.81-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.80-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.79-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.78-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.77-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.76-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.75-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.74-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.73-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.72-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.71-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.70-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.69-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.68-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.67-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.66-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.65-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.64-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.63-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.62-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.61-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.60-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.59-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.58-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.57-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.56-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.55-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.54-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.53-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.52-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.51-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.50-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.49-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.48-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.47-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.46-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.45-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.44-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.43-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.42-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.41-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.40-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.39-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.38-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.37-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.36-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.35-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.34-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.33-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.32-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.31-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.30-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.7.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.6.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.36-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.35-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.34-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.33-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.32-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.31-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.30-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.29-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.28-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.27-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.26-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.25-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.24-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.23-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.22-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.21-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.20-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.19-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.18-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.17-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.16-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.15-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.14-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.13-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.12-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.11-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.10-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.9-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.4-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.3-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.2-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.1-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.5.0-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.4.8-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.4.7-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.4.6-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.4.5-py2.py3-none-any.whl (128 kB)
Collecting boto3
  Using cached boto3-1.4.4-py2.py3-none-any.whl (127 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.3.3-cp38-cp38-macosx_10_13_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.3.2-cp38-cp38-macosx_10_13_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.3.1-cp38-cp38-macosx_10_13_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.3.0-cp38-cp38-macosx_10_13_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.10-cp38-cp38-macosx_10_12_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.9-cp38-cp38-macosx_10_12_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.8-cp38-cp38-macosx_10_12_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.7-cp38-cp38-macosx_10_12_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.6-cp38-cp38-macosx_10_12_x86_64.whl (4.8 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.5-cp38-cp38-macosx_10_12_x86_64.whl (5.1 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.4-cp38-cp38-macosx_10_12_x86_64.whl (5.1 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.3-cp38-cp38-macosx_10_12_x86_64.whl (5.1 MB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-2.2.2-cp38-cp38-macosx_10_12_x86_64.whl (5.1 MB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.2.1.tar.gz (173 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.2.0.tar.gz (173 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.1.3.tar.gz (173 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.1.2.tar.gz (172 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.1.1.tar.gz (172 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.1.0.tar.gz (165 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.0.4.tar.gz (163 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.0.3.tar.gz (162 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.0.2.tar.gz (162 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.0.1.tar.gz (153 kB)
Collecting snowflake-connector-python
  Using cached snowflake-connector-python-2.0.0.tar.gz (152 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.9.1-py2.py3-none-any.whl (170 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.7-py2.py3-none-any.whl (168 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.6-py2.py3-none-any.whl (161 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.5-py2.py3-none-any.whl (159 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.4-py2.py3-none-any.whl (161 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.3-py2.py3-none-any.whl (158 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.2-py2.py3-none-any.whl (157 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.1-py2.py3-none-any.whl (157 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.8.0-py2.py3-none-any.whl (157 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.11-py2.py3-none-any.whl (153 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.10-py2.py3-none-any.whl (152 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.9-py2.py3-none-any.whl (151 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.8-py2.py3-none-any.whl (151 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.7-py2.py3-none-any.whl (150 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.6-py2.py3-none-any.whl (150 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.5-py2.py3-none-any.whl (147 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.4-py2.py3-none-any.whl (147 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.3-py2.py3-none-any.whl (141 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.2-py2.py3-none-any.whl (141 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.1-py2.py3-none-any.whl (148 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.7.0-py2.py3-none-any.whl (148 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.12-py2.py3-none-any.whl (147 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.11-py2.py3-none-any.whl (146 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.10-py2.py3-none-any.whl (146 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.9-py2.py3-none-any.whl (144 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.8-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.7-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.6-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.5-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.4-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.3-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.2-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.1-py2.py3-none-any.whl (143 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.6.0-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.8-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.7-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.6-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.5-py2.py3-none-any.whl (142 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.4-py2.py3-none-any.whl (141 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.3-py2.py3-none-any.whl (141 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.2-py2.py3-none-any.whl (128 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.1-py2.py3-none-any.whl (128 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.5.0-py2.py3-none-any.whl (127 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.17-py2.py3-none-any.whl (138 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.16-py2.py3-none-any.whl (129 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.15-py2.py3-none-any.whl (124 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.14-py2.py3-none-any.whl (123 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.13-py2.py3-none-any.whl (123 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.12-py2.py3-none-any.whl (123 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.11-py2.py3-none-any.whl (120 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.10-py2.py3-none-any.whl (120 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.9-py2.py3-none-any.whl (117 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.8-py2.py3-none-any.whl (117 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.7-py2.py3-none-any.whl (115 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.6-py2.py3-none-any.whl (113 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.5-py2.py3-none-any.whl (112 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.4-py2.py3-none-any.whl (113 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.3-py2.py3-none-any.whl (101 kB)
Collecting snowflake-connector-python
  Using cached snowflake_connector_python-1.4.2-py2.py3-none-any.whl (100 kB)
Collecting botocore==1.19.9
  Downloading botocore-1.19.9-py2.py3-none-any.whl (6.7 MB)
     |████████████████████████████████| 6.7 MB 2.4 MB/s
Collecting docutils<0.16,>=0.10
  Using cached docutils-0.15.2-py3-none-any.whl (547 kB)
Collecting s3transfer<0.4.0,>=0.3.0
  Using cached s3transfer-0.3.3-py2.py3-none-any.whl (69 kB)
Processing ~/Library/Caches/pip/wheels/13/90/db/290ab3a34f2ef0b5a0f89235dc2d40fea83e77de84ed2dc05c/PyYAML-5.3.1-cp38-cp38-macosx_10_14_x86_64.whl
Collecting colorama<0.4.4,>=0.2.5
  Using cached colorama-0.4.3-py2.py3-none-any.whl (15 kB)
Collecting rsa<=4.5.0,>=3.1.2
  Using cached rsa-4.5-py2.py3-none-any.whl (36 kB)
Collecting jmespath<1.0.0,>=0.7.1
  Using cached jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Collecting fsspec>=0.8.0
  Using cached fsspec-0.8.4-py3-none-any.whl (91 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.1.2-py3-none-any.whl (45 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.1.1-py3-none-any.whl (45 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.1.0-py3-none-any.whl (43 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.7-py3-none-any.whl (42 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.6-py3-none-any.whl (42 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.5-py3-none-any.whl (42 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.4-py3-none-any.whl (41 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.3-py3-none-any.whl (40 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.2-py3-none-any.whl (40 kB)
Collecting aiobotocore>=1.0.1
  Using cached aiobotocore-1.0.1-py3-none-any.whl (40 kB)
Collecting fsspec>=0.8.0
  Using cached fsspec-0.8.3-py3-none-any.whl (88 kB)
Collecting fsspec>=0.8.0
  Using cached fsspec-0.8.2-py3-none-any.whl (87 kB)
Collecting fsspec>=0.8.0
  Using cached fsspec-0.8.1-py3-none-any.whl (87 kB)
Collecting fsspec>=0.8.0
  Using cached fsspec-0.8.0-py3-none-any.whl (85 kB)

^CERROR: Operation cancelled by userError 1 occurred on line 60 

❗️  Please delete ~/tmp/test-pip-2020-resolver-1604092332 

@indrasvat
Copy link

Hi, all

Any guidance on the above issue?

@uranusjr
Copy link
Member

uranusjr commented Nov 7, 2020

Please see #9011 for more information. I’ll close this in favour of that issue since the discussion there is more up-to-date.

@uranusjr uranusjr closed this as completed Nov 7, 2020
New Resolver Implementation automation moved this from In progress to Done Nov 7, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: enhancement Improvements to functionality UX User experience related
Projects
None yet
Development

No branches or pull requests

9 participants