Skip to main content

Easy lazy dependency injection for boto3 clients/resources.

Project description

PythonSupport PyPI version

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)

Uploaded Source

Built Distribution

xboto-1.1.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

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

Hashes for xboto-1.1.1.tar.gz
Algorithm Hash digest
SHA256 203151c7e272c89e89d788ba4a955b7eb4158dbedd35e4a4a87df5be5cae3088
MD5 3e0452b57749da882779cfd361ab39f3
BLAKE2b-256 e36756eb7999dc35b388bba47931b6e07b0e48cbf27beed340c9d930825c7a71

See more details on using hashes here.

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

Hashes for xboto-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 822f2d4f9c1a60e1679d53f0ae56ec96f2d08f48044f23f1e2d9435d6b75cf7e
MD5 eaa8fd728359dd78ecce5eddaca30ab7
BLAKE2b-256 7ef3571e34c8c6a0cb15062bf6427c8a12cf99021d297ee1a5ffb69806698049

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page