Skip to main content

Type annotated AWS SDK for boto3, aiobotocore, and aioboto3.

Project description

boto34

PyPI - boto34 PyPI - Python Version

There are type annotations for it. No exceptions.

Type annotated AWS SDK for Python. Adds static type checking and code completions for your boto3, aiobotocore, and aioboto3 code without affecting runtime.

This package is part of mypy_boto3_builder project.

Features

  • Type safety for all 400+ AWS services
  • Auto-completion for every client, resource, request, response, waiter, and paginator
  • Support for boto3, aiobotocore and aioboto3

What is not included

  • No drop-in replacement, you need to rewrite your code a bit
  • No wrappers around clients and resources
  • No porn popup ads (?)

Quickstart

boto3 / botocore

Install boto34 for boto3: pip install 'boto34[boto3]'

Then, rewrite your code:

from boto34.boto3 import Session

# this is a wrapper for boto3.Session, arguments are the same
# all services are accessible as attributes
session = Session()

# this is botocore.BaseClient for s3 service
# no wrappers and fully type annotated
s3_client = session.s3.client(region_name="us-east-1")
put_object_response = s3_client.put_object(
  Bucket="bucket", Key="key", Body=b"message"
)
url = s3_client.generate_presigned_url(
    "get_object", {"Bucket": "bucket", "Key": "key"},
)

# same for boto3.ServiceResource
s3_resource = session.s3.resource(region_name="us-east-1")
s3_object = resource.Bucket("bucket").put_object(Key="key", Body=b"message")

Full list of supported AWS services can be found in services.md.

aiobotocore

Install boto34 for aiobotocore: pip install 'boto34[aiobotocore]'

Then, rewrite your code:

from boto34.aiobotocore import get_session

# this is a wrapper for aiobotocore.Session/get_session, arguments are the same
# all services are accessible as attributes
session = get_session()

# this is aiobotocore.AioBaseClient for s3 service
# no wrappers and fully type annotated
async with session.s3.create_client(region_name="us-east-1") as s3_client:
    put_object_response = await s3_client.put_object(
      Bucket="bucket", Key="key", Body=b"message"
    )
    url = await s3_client.generate_presigned_url(
        "get_object", {"Bucket": "bucket", "Key": "key"}
    )

Full list of supported AWS services can be found in services.md.

aioboto3

Install boto34 for aioboto3: pip install 'boto34[aioboto3]'

Then, rewrite your code:

from boto34.aioboto3 import Session

# this is a wrapper for aioboto3.Session, arguments are the same
# all services are accessible as attributes
session = Session()

# this is a aiobotocore.AioBaseClient for s3 service
# no wrappers and fully type annotated
async with session.s3.client(region_name="us-east-1") as s3_client:
    put_object_response = await s3_client.put_object(
      Bucket="bucket", Key="key", Body=b"message"
    )
    url = await s3_client.generate_presigned_url(
        "get_object", {"Bucket": "bucket", "Key": "key"}
    )

# same for aioboto3.AIOBoto3ServiceResource
async with session.s3.resource(region_name="us-east-1") as s3_resource:
    s3_bucket = await s3_resource.Bucket("bucket")
    s3_object = await s3_bucket.put_object(Key="key", Body=b"message")

Full list of supported AWS services can be found in services.md.

How it works

boto3 / botocore

boto34 provides boto34.boto3 wrapper for boto3 and botocore session to add type annotations to all classes and methods.

Type annotations are powered by:

aioboto3 / aiobotocore

boto34 provides boto34.aioboto3 wrapper for aioboto3 session to add type annotations to all classes and methods. If you use aiobotocore directly, you can use boto34.aiobotocore wrapper.

Type annotations are powered by:

Versioning

boto34 version is not related to boto3 version and follows Python Packaging version specifiers.

Latest changes

Full changelog can be found in Releases.

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

boto34-0.1.2.tar.gz (346.6 kB view details)

Uploaded Source

Built Distribution

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

boto34-0.1.2-py3-none-any.whl (795.1 kB view details)

Uploaded Python 3

File details

Details for the file boto34-0.1.2.tar.gz.

File metadata

  • Download URL: boto34-0.1.2.tar.gz
  • Upload date:
  • Size: 346.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.3

File hashes

Hashes for boto34-0.1.2.tar.gz
Algorithm Hash digest
SHA256 00194a2009f208e0de9dcce0d674415c89f1d52790d6b99c34965e9c13154861
MD5 f13da09dea437e49e5c2e69ca058cef5
BLAKE2b-256 9452a3922c356b6e6be3fa238715d4bd09a24f33c1bcf3e50cccfdfbbeb30318

See more details on using hashes here.

File details

Details for the file boto34-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: boto34-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 795.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.3

File hashes

Hashes for boto34-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b6b7d8bd55df20c4bb90b96c7617c9b439dee3a25b58f98883ff6c81942b7af0
MD5 2623bfe134089d20ae29aaf48d544411
BLAKE2b-256 eb916a742b91b94c7715bae04c363f218d719dc798d53c1d701676716d359dd2

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 Pingdom Monitoring Sentry Error logging StatusPage Status page