Package: awsimple
AWSimple(pronounced A-W-Simple)Simple API for basic AWS services such as S3 (Simple Storage Service), DynamoDB (a NoSQL database), SNS (Simple Notification Service),
and SQS (Simple Queuing Service).Project featured onPythonBytes Podcast Episode #224.Full documentation available onRead the Docs.Features:Simple Object Oriented API on top of boto3One-line S3 file write, read, and deleteAutomatic S3 retriesLocally cached S3 accessesTrue file hashing (SHA512) for S3 files (S3's etag is not a true file hash)DynamoDB full table scans (with local cache option)DynamoDB secondary indexesBuilt-in pagination (e.g. for DynamoDB table scans and queries).  Always get everything you asked for.Can automatically set SQS timeouts based on runtime data (can also be user-specified)Supports moto mock and localstack. Handy for testing and CI.Usagepip install awsimpleExamplesThe example folder has several examples you can customize and run. Instructions are available inexamplesS3# print string contents of an existing S3 object
s = S3Access(profile_name="testawsimple", bucket="testawsimple").read_string("helloworld.txt")
print(s)DynamoDBdynamodb_access = DynamoDBAccess(profile_name="testawsimple", table_name="testawsimple")

# put an item into DynamoDB
dynamodb_access.put_item({"id": "batman", "city": "Gotham"})

# now get it back
item = dynamodb_access.get_item("id", "batman")
print(item["city"])  # GothamIntroductionawsimpleis a simple interface into basic AWS services such as S3 (Simple Storage Service) and
DynamoDB (a simple NoSQL database).  It has a set of higher level default settings and behavior
that should cover many basic usage models.DiscussionAWS's "serverless" resources offer many benefits.  You only pay for what you use, easily scale,
and generally have high performance and availability.While AWS has many varied services with extensive flexibility, using it for more straight-forward
applications is sometimes a daunting task. There are access modes that are probably not requried
and some default behaviors are not best for common usages.awsimpleaims to create a higher
level API to AWS services (such as S3, DynamoDB, SNS, and SQS) to improve programmer productivity.S3awsimplecalculates the local file hash (sha512) and inserts it into the S3 object metadata.  This is used
to test for file equivalency.CachingS3 objects and DynamoDB tables can be cached locally to reduce network traffic, minimize AWS costs,
and potentially offer a speedup.WhatawsimpleIs Notawsimpleis not necessarily the most memory and CPU efficientawsimpledoes not provide cost monitoring hooksawsimpledoes not provide all the options and features that the regular AWS API (e.g. boto3) doesTesting using moto mock and localstackmoto mock-ing can improve performance and reduce AWS costs.awsimplesupports both moto mock and localstack.
In general, it's recommended to develop with mock and finally test with the real AWS services.Select via environment variables:AWSIMPLE_USE_MOTO_MOCK=1  # use motoAWSIMPLE_USE_LOCALSTACK=1  # use localstackTest TimeMethodTest Time (seconds)Speedup (or slowdown)CommentAWS462.651xbaselinemock40.4611xfaster than AWSlocalstack2246.820.2xslower than AWSSystem: Intel® Core™ i7 CPU @ 3.47GHz, 32 GB RAMContributingContributions are welcome, and more information is available in thecontributing guide.