aio-libs / aiobotocore

asyncio support for botocore library using aiohttp
https://aiobotocore.aio-libs.org
Apache License 2.0
1.19k stars 182 forks source link

Pinned Botocore version makes it difficult to install beside other packages #752

Closed jasonamyers closed 4 years ago

jasonamyers commented 4 years ago

Describe the bug I'm having a hard time installing aiobotocore beside many of our common tools due to older botocore requirements.
Could not find a version that matches botocore<1.13.15,<1.15.0,>=1.13.14,>=1.14.9

Checklist

pip freeze results aiobotocore==0.11.1 aiohttp==3.6.2 alembic==1.3.3 async-generator==1.10 async-timeout==3.0.1 attrs==19.3.0 boto3==1.11.9 botocore==1.14.9 cffi==1.13.2 chardet==3.0.4 credstash==1.16.1 cryptography==2.8 dnspython==1.16.0 docutils==0.15.2 idna==2.8 jmespath==0.9.4 Mako==1.1.1 MarkupSafe==1.1.1 mixpanel==4.5.0 multidict==4.7.4 mysql-connector-python==8.0.19 protobuf==3.6.1 pycparser==2.19 python-dateutil==2.8.0 python-editor==1.0.4 python-json-logger==0.1.11 PyYAML==5.3 s3transfer==0.3.2 six==1.14.0 SQLAlchemy==1.3.13 urllib3==1.25.8 wrapt==1.11.2 yarl==1.4.2

Environment:

Additional context Here is a Pipenv graph. You can see that aiobotocore and credstash for example can not live together peacefully, nor can current boto3 and several other AWS libs we use that rely on a higher version of botocore.

aiobotocore==0.11.1
  - aiohttp [required: >=3.3.1, installed: 3.6.2]
    - async-timeout [required: >=3.0,<4.0, installed: 3.0.1]
    - attrs [required: >=17.3.0, installed: 19.3.0]
    - chardet [required: >=2.0,<4.0, installed: 3.0.4]
    - multidict [required: >=4.5,<5.0, installed: 4.7.4]
    - yarl [required: >=1.0,<2.0, installed: 1.4.2]
      - idna [required: >=2.0, installed: 2.8]
      - multidict [required: >=4.0, installed: 4.7.4]
  - async-generator [required: >=1.10, installed: 1.10]
  - botocore [required: >=1.13.14,<1.13.15, installed: 1.14.9]
    - docutils [required: >=0.10,<0.16, installed: 0.15.2]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.4]
    - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.0]
      - six [required: >=1.5, installed: 1.14.0]
    - urllib3 [required: >=1.20,<1.26, installed: 1.25.8]
  - wrapt [required: >=1.10.10, installed: 1.11.2]
alembic==1.3.3
  - Mako [required: Any, installed: 1.1.1]
    - MarkupSafe [required: >=0.9.2, installed: 1.1.1]
  - python-dateutil [required: Any, installed: 2.8.0]
    - six [required: >=1.5, installed: 1.14.0]
  - python-editor [required: >=0.3, installed: 1.0.4]
  - SQLAlchemy [required: >=1.1.0, installed: 1.3.13]
credstash==1.16.1
  - boto3 [required: >=1.1.1, installed: 1.11.9]
    - botocore [required: >=1.14.9,<1.15.0, installed: 1.14.9]
      - docutils [required: >=0.10,<0.16, installed: 0.15.2]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.4]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.0]
        - six [required: >=1.5, installed: 1.14.0]
      - urllib3 [required: >=1.20,<1.26, installed: 1.25.8]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.4]
    - s3transfer [required: >=0.3.0,<0.4.0, installed: 0.3.2]
      - botocore [required: >=1.12.36,<2.0.0, installed: 1.14.9]
        - docutils [required: >=0.10,<0.16, installed: 0.15.2]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.4]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.0]
          - six [required: >=1.5, installed: 1.14.0]
        - urllib3 [required: >=1.20,<1.26, installed: 1.25.8]
  - cryptography [required: >=2.1, installed: 2.8]
    - cffi [required: >=1.8,!=1.11.3, installed: 1.13.2]
      - pycparser [required: Any, installed: 2.19]
    - six [required: >=1.4.1, installed: 1.14.0]
mixpanel==4.5.0
  - six [required: >=1.9.0, installed: 1.14.0]
mysql-connector-python==8.0.19
  - dnspython [required: ==1.16.0, installed: 1.16.0]
  - protobuf [required: ==3.6.1, installed: 3.6.1]
    - setuptools [required: Any, installed: 45.1.0]
    - six [required: >=1.9, installed: 1.14.0]
python-json-logger==0.1.11
PyYAML==5.3
thehesiod commented 4 years ago

we have extras for boto3 + awscli, you should use those. So your req should be aiobotocore[boto3]. re-open if there's something I missed. The tight coupling is just the nature of this beast given how tightly we are coupled with botocore.