Easy lazy dependency injection for boto3 clients/resources.
Project description
Documentation
📄 Detailed Documentation | 🐍 PyPi
Install
# via pip
pip install xboto
# via poetry
poetry add xboto
Quick Start
Import Boto Client/Resource
# Use imported `dynamodb` just like dynamodb boto resource
from xboto.resource import dynamodb
# Use imported `ssm` just like ssm boto client
from xboto.client import ssm
# These are for overriding/injecting settings.
from xboto import BotoResources, BotoClients, BotoSession
# Can use them like normal:
dynamodb.table(...)
ssm.get_object(...)
# Or you can override settings if you wish:
with BotoResources.DynamoDB(region_name='us-west-2'):
# Use us-west-2 when using dynamodb boto resource:
dynamodb.table(...)
with BotoClients.Ssm(region_name='us-west-2'):
# Use us-west-2 when using ssm boto client:
ssm.get_object(...)
with BotoSession(region_name='us-west-3'):
# Use us-west-3 when using any client/resource
# we are setting it at the boto-session level;
# the session is used by all boto client/resources.
ssm.get_object(...)
# Can use them like decorators as well:
@BotoClients.Ssm(region_name='us-west-2')
def some_method():
ssm.get_object(...)
Grab Any Client/Resource
# Can easily ask these for any client/resource
from xboto import boto_clients, boto_resources
# These are for overriding/injecting settings.
from xboto import BotoResources, BotoClients, BotoSession
# Can use them like normal:
boto_clients.dynamodb.table(...)
boto_resources.ssm.get_object(...)
# Or you can override settings if you wish:
with BotoResources.DynamoDB(region_name='us-west-2'):
# Use us-west-2 when using dynamodb boto resource:
boto_resources.dynamodb.table(...)
with BotoClients.Ssm(region_name='us-west-2'):
# Use us-west-2 when using ssm boto client:
boto_clients.ssm.get_object(...)
with BotoSession(region_name='us-west-3'):
# Use us-west-3 when using any client/resource
# we are setting it at the boto-session level;
# the session is used by all boto client/resources.
boto_clients.ssm.get_object(...)
# Can use them like decorators as well:
@BotoClients.Ssm(region_name='us-west-2')
def some_method():
boto_clients.ssm.get_object(...)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xboto-1.1.1.tar.gz
(16.6 kB
view details)
Built Distribution
xboto-1.1.1-py3-none-any.whl
(17.2 kB
view details)
File details
Details for the file xboto-1.1.1.tar.gz
.
File metadata
- Download URL: xboto-1.1.1.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.6 Linux/5.15.0-1040-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 203151c7e272c89e89d788ba4a955b7eb4158dbedd35e4a4a87df5be5cae3088 |
|
MD5 | 3e0452b57749da882779cfd361ab39f3 |
|
BLAKE2b-256 | e36756eb7999dc35b388bba47931b6e07b0e48cbf27beed340c9d930825c7a71 |
File details
Details for the file xboto-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: xboto-1.1.1-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.6 Linux/5.15.0-1040-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 822f2d4f9c1a60e1679d53f0ae56ec96f2d08f48044f23f1e2d9435d6b75cf7e |
|
MD5 | eaa8fd728359dd78ecce5eddaca30ab7 |
|
BLAKE2b-256 | 7ef3571e34c8c6a0cb15062bf6427c8a12cf99021d297ee1a5ffb69806698049 |