Mypy-friendly boto3 type annotations master module.
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 arguments 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
mypy-boto3-0.1.6.tar.gz
(39.6 kB
view hashes)
Built Distribution
mypy_boto3-0.1.6-py3-none-any.whl
(209.5 kB
view hashes)
Close
Hashes for mypy_boto3-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef9808bb312982951cd56c5bf85c0ce48d07ba65a0df116b6bc6a717a3311e26 |
|
MD5 | 4d81bdf713f7bfd1e28e8c4db691e09d |
|
BLAKE2b-256 | ec7d46ee9907a8771e3e050d912ccc7707178a723cfa4112b4b9f656cbdce377 |