Mypy-friendly boto3 type annotations for elasticache service.
Project description
mypy_boto3
Mypy-friendly type annotations for boto3.
Installation
# install only `mypy_boto3.s3` for S3 service annotations
pip install mypy-boto3[s3]
# or install multiple services
pip install mypy-boto3[s3][ec2]
# or install S3 service with docs
pip install mypy-boto3[s3-with-docs]
# or install all services
pip install mypy-boto3[all]
# or even install all boto3 services annotations
# WARNING: this will eat ~70 MB of space
pip install mypy-boto3[all-with-docs]
Usage
-
Install mypy and optionally enable it in your IDE
-
Install boto3
-
Use
mypy-boto3
to annotate your code to discover errorsimport boto3 from mypy_boto3.s3 import Client, ServiceResource client: Client = boto3.client("s3") # IDE autocomplete suggests function name and arguemnts here client.create_bucket(Bucket="bucket") # (mypy) error: Missing positional argument "Key" in call to "get_object" of "Client" client.get_object(Bucket="bucket") # (mypy) error: Argument "Key" to "get_object" of "Client" has incompatible type "None"; expected "str" client.get_object(Bucket="bucket", Key=None) # explicitly set type to S3 ServiceResource resource: ServiceResource = boto3.Session(region_name="us-west-1").resource("s3") # IDE autocomplete suggests function name and arguments here bucket = resource.Bucket("bucket") # (mypy) error: Unexpected keyword argument "key" for "upload_file" of "Bucket" bucket.upload_file(Filename="my.txt", key="my-txt")
How it works
There is also a package mypy-boto3-builder
that builds interface files from boto3
documentation.
Differences from boto3-type-annotations
- Fully type annotated
mypy
compatibility- Generated types for return values and arguments
- Added ServiceResource sub-collections
- Support service-specific sub-modules (in progress)
- CLI interface for
builder
- Modules documentation
What's next
- Add
TypedDict
types for arguments and return types to check keys and values - Allow installation of sub-modules
- Always include docs and support them in generated documentation
Thank you
- Guys behind boto3-type-annotations, this package is based on top of their work
- black developers for awesome formatting tool
- mypy for doing all dirty work for us
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for mypy-boto3-elasticache-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c082d277660903d8e8b4dcaf99fc85cd139639cc49f9bd17e09213799dc6a2c |
|
MD5 | 0e512b528764621c7aa280be72f0750e |
|
BLAKE2b-256 | 5bdf23efaaf81d36d978c34c5fe1df8f592c5dc5fa77df7862de7c7e4d9aed23 |
Close
Hashes for mypy_boto3_elasticache-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7683519865fe53a688d0b67b535d4a77d764ac61357403b37cd687392e9e303d |
|
MD5 | 202a8d177b628e054bda57d83993e2b6 |
|
BLAKE2b-256 | 554b61461829e3054f95b22b272cbdc117a34bf9a4f2e3cabe27b393b34514fa |