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
This commit is contained in:
Brian Pandola 2020-11-26 23:59:15 -08:00
commit ae85c539fd
27 changed files with 811 additions and 20 deletions

View file

@ -1,6 +1,6 @@
from __future__ import unicode_literals
import boto.rds
from boto3 import Session
from jinja2 import Template
from moto.core import BaseBackend, CloudFormationModel
@ -335,6 +335,10 @@ class RDSBackend(BaseBackend):
return rds2_backends[self.region]
rds_backends = dict(
(region.name, RDSBackend(region.name)) for region in boto.rds.regions()
)
rds_backends = {}
for region in Session().get_available_regions("rds"):
rds_backends[region] = RDSBackend(region)
for region in Session().get_available_regions("rds", partition_name="aws-us-gov"):
rds_backends[region] = RDSBackend(region)
for region in Session().get_available_regions("rds", partition_name="aws-cn"):
rds_backends[region] = RDSBackend(region)