Skip to main content

Getting Started

Installation

pip install capo-sts

Usage

from capo_sts import AsyncSTSClient


async def main():
    async with AsyncSTSClient() as sts:
        # Example: call the assume_role operation
        response = await sts.assume_role()
        print(response["credentials"])

Error Handling

The SDK raises exceptions for errors returned by the API. Catch them to handle failures gracefully.

from capo_sts import AsyncSTSClient
from capo_sts.error import ExpiredTokenException


async def main():
    async with AsyncSTSClient() as sts:
        try:
            await sts.assume_role()
        except ExpiredTokenException as e:
            print(f"Error: {e}")
            print(e.data)  # additional error data

Retrying

The SDK retries failed operations automatically. Retry behaviour follows the Smithy specification: errors are retried based on their is_retryable and is_throttling_error attributes. Throttling errors use a longer base delay. Network-level failures (connection errors and timeouts) are also retried. Non-retryable errors, such as client errors without the @retryable trait, are raised immediately without further attempts.

The number of attempts defaults to 3 and can be changed at the client level via retry_max_attempts, or per call via config_overrides.

from capo_sts import AsyncSTSClient


async def main():
    async with AsyncSTSClient() as sts:
        # Default: 3 attempts for every operation
        response = await sts.assume_role()

        # Override per operation
        response = await sts.assume_role(config_overrides={"retry_max_attempts": 5})

        # Disable retries for this call
        response = await sts.assume_role(config_overrides={"retry_max_attempts": 1})

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

capo_sts-0.5.0.tar.gz (101.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

capo_sts-0.5.0-py3-none-any.whl (171.3 kB view details)

Uploaded Python 3

File details

Details for the file capo_sts-0.5.0.tar.gz.

File metadata

  • Download URL: capo_sts-0.5.0.tar.gz
  • Upload date:
  • Size: 101.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for capo_sts-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e363bb7f200939064ea864748370698f9d26f5d1f8d7f35efa6cc3669f788895
MD5 a44de227540fb1411ff77622311dc4b2
BLAKE2b-256 7fb316cd11606623520ccbb798aa58d1cb581349f25629e656b2e95bb35a4b51

See more details on using hashes here.

File details

Details for the file capo_sts-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: capo_sts-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 171.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for capo_sts-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cad11341ba89343369bd3ae321ece04a4016361d7b622adb52ce736adb145f7c
MD5 6824babd600d3f4972dbf1b817867e1c
BLAKE2b-256 1ce4bdfed3052388ace4f48ba9f47f6c8283b07f7e75dd167f26367e2f80a71d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page