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 |
||
---|---|---|
.. | ||
cloudformation | ||
ec2 | ||
__init__.py | ||
README.md |
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.