sentinel-hub/sentinelhub-py

[FEAT] Make boto3 dependency optional

adamchainz opened this issue · 2 comments

What is the problem? Please describe.

boto3 (and botocore) are only used in sentinelhub/download/aws_client.py. This is not a feature many people need. boto3 and all its dependencies are relatively large (~50MB) and annoying to manage as dependencies, since they update so frequently. It would be great if they were made into optinoal dependencies.

Here's the solution

Use setuptools extra_requires to make them an extra, so one can install sentinelhub[aws] if one needs them.

Alternatives

Just remove the dependency and tell users to install boto3 if they want that module to work.

Additional context

n/a

Thanks for raising this, it is actually something we plan to do in the near future. The idea is to reorganize the content of the package and management of its dependencies. The AWS functionalities of the package will probably become available under the sentinelhub[aws] extension, as you suggested.

Furthermore, we are thinking about having an even more lightweight version of the package so that it could be used as a dependency for SentinelHub QGIS plugin. It is not yet completely clear what would be the best solution for that.

Solved in the newly released version 3.5.0.