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
  • Compatible with PyCharm, no 100% CPU load this time
  • A decent type checking time (see Comparison of type checkers)

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 Supported AWS services.

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.3.tar.gz (329.2 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.3-py3-none-any.whl (589.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for boto34-0.1.3.tar.gz
Algorithm Hash digest
SHA256 99b45588fd0e0ea9ea919c45243d95899f2b14bc5e0b85f6c6f93be10c8f24b4
MD5 54b729c0d8ef3fc0bbd820902b82243f
BLAKE2b-256 c0112e5d4a2538bc134f204cc69b098899f674a612c87c0509023e4dcdc29890

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for boto34-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 475497aabb6cd6e0586894c76c61749bb172594b113b1236c0a66a199c578c07
MD5 cc53e1357c287f6c9d07a2b2fa910892
BLAKE2b-256 2025c029f95905569c403ce6f9f817c67934f7c89aa9d17c11fce0e78ea564bb

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