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.0.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

xboto-1.0.1-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file xboto-1.0.1.tar.gz.

File metadata

  • Download URL: xboto-1.0.1.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.15.0-1031-azure

File hashes

Hashes for xboto-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9ff8cf23d6e83ed57649eef548b5ed2d891bf94adac1dcf2e4f676e5952c36eb
MD5 8f6825a983c3322fcad7236570997e01
BLAKE2b-256 414ec23d8637b37db2666d93081cd5ef41575e70c739dc8c5fde301904c5845a

See more details on using hashes here.

File details

Details for the file xboto-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: xboto-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.15.0-1031-azure

File hashes

Hashes for xboto-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da9b9067a57eba16e202e65bdc334f5b9f325ce8f8a38ab9b6818a645a0be99d
MD5 8d3f02f839f720b1e3a84d257307e91c
BLAKE2b-256 fec25078a82f6394681683f9442fdff9e80e88ff44f9a6d95f88ec6c552c4262

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