moto/moto/packages/boto
Brian Pandola ae85c539fd Remove boto package dependency
The `boto` library (long ago superseded by `boto3`) has not had an official
release in over two years or even a commit in the last 18 months.  Importing
the package (or indirectly importing it by via `moto`) generates a deprecation
warning.  Additionally, an ever-increasing number of `moto` users who have
left `boto` behind for `boto3` are still being forced to install `boto`.

This commit vendors a very small subset of the `boto` library--only the code
required by `moto` to run--into the /packages subdirectory.  A README file
is included explaining the origin of the files and a recommendation for how
they can be removed entirely in a future release.

NOTE: Users of `boto` will still be able to use `moto` after this is merged.

closes #2978
closes #3013
closes #3170
closes #3418

relates to #2950
2020-11-26 23:59:15 -08:00
..
cloudformation Remove boto package dependency 2020-11-26 23:59:15 -08:00
ec2 Remove boto package dependency 2020-11-26 23:59:15 -08:00
__init__.py Remove boto package dependency 2020-11-26 23:59:15 -08:00
README.md Remove boto package dependency 2020-11-26 23:59:15 -08:00

Removing the boto Dependency

In order to rid moto of a direct dependency on the long-deprecated boto package, a subset of the boto code has been vendored here.

This directory contains only the boto files required for moto to run, which is a very small subset of the original package's contents. Furthermore, the boto models collected here have been stripped of all superfluous methods/attributes not used by moto. (Any copyright headers on the original files have been left intact.)

Next Steps

Currently, a small number of moto models inherit from these boto classes. With some additional work, the inheritance can be dropped in favor of simply adding the required methods/properties from these boto models to their respective moto subclasses, which would allow for these files/directories to be removed entirely.