Builder for boto3-stubs and types-aiobotocore
Project description
Boto3 type annotations generator
Type annotations builder for boto3-stubs, types-aiobotocore, and types-aioboto3 projects. Compatible with VSCode, PyCharm, Emacs, Sublime Text, mypy, pyright and other tools.
See how it helps to find and fix potential bugs:
Do you want more? Check the documentation and use boto3
like a pro!
Using built libraries
boto3
Check boto3-stubs project for installation and usage instructions.
If you use VSCode, add AWS Boto3
extension to your VSCode and run AWS boto3: Quick Start
command.
If not, just install boto3-stubs
with pip
:
python -m pip install 'boto3-stubs[essential]'
# Lite version does not provide session.client/resource overloads
# it is more RAM-friendly, but requires explicit type annotations
python -m pip install 'boto3-stubs-lite[essential]'
# do not forget to install mypy or pyright
That's it! You should already have code completion and type checking in your IDE.
aiobotocore
Check types-aiobotocore project for installation and usage instructions.
Or just install types-aiobotocore
with pip
:
python -m pip install 'types-aiobotocore[essential]'
# Lite version does not provide session.create_client overloads
# it is more RAM-friendly, but requires explicit type annotations
python -m pip install 'types-aiobotocore-lite[essential]'
# do not forget to install mypy or pyright
Ready to go! Enjoy code completion and type checking in your aiobotocore
project.
aioboto3
Check types-aioboto3 project for installation and usage instructions.
Or just install types-aioboto3
with pip
:
python -m pip install 'types-aioboto3[essential]'
# Lite version does not provide session.client/resource overloads
# it is more RAM-friendly, but requires explicit type annotations
python -m pip install 'types-aioboto3-lite[essential]'
# do not forget to install mypy or pyright
Whoa! All aioboto3
methods and attributes are now type annotated and even code completion works.
How to build type annotations
Locally
# Install preferred version of `boto3`
python -m pip install boto3==1.16.25 botocore==1.19.25
# Install `mypy-boto3-builder`
python -m pip install mypy-boto3-builder
# Build all packages in mypy_boto3_output directory
python -m mypy_boto3_builder mypy_boto3_output
# Or specify required services explicitly
python -m mypy_boto3_builder mypy_boto3_output -s ec2 s3
# Install custom `boto3-stubs` packages
cd mypy_boto3_output
python -m pip install -e ./mypy_boto3_ec2_package
python -m pip install -e ./mypy_boto3_s3_package
python -m pip install -e ./boto3_stubs_package
With Docker image
- Install Docker
- Pull latest
mypy_boto3_builder
version and tag it
docker pull docker.pkg.github.com/youtype/mypy_boto3_builder/mypy_boto3_builder_stable:latest
docker tag docker.pkg.github.com/youtype/mypy_boto3_builder/mypy_boto3_builder_stable:latest mypy_boto3_builder
- Generate stubs in
output
directory
mkdir output
# generate stubs for all services
docker run -v `pwd`/output:/output -ti mypy_boto3_builder_stable
# generate stubs for s3 service
docker run -v `pwd`/output:/output -ti mypy_boto3_builder_stable -s s3
# generate stubs for a specific boto3 version
docker run -e BOTO3_VERSION=1.16.25 BOTOCORE_VERSION=1.19.25 -v `pwd`/output:/output -ti mypy_boto3_builder_stable
- Install packages from
output
directory as described above
Development
- Install Python 3.11+, ideally with pyenv
- Install poetry:
pip install poetry
- Install dependencies:
poetry install
- Use scripts for repo to check if everything works:
./scripts/build.sh
- Run manual pre-commit:
./scripts/before_commit.sh
Versioning
mypy_boto3_builder
version is not related to boto3
version and follows
PEP 440.
Latest changes
Full changelog can be found in Releases.
Thank you
Toolset
- black developers for an awesome formatting tool
- Timothy Edmund Crosley for isort and how flexible it is
- mypy developers for doing all dirty work for us
- pyright team for the new era of typed Python
- ruff developers for the fastest swiss knife for Python
Contributors
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
Hashes for mypy_boto3_builder-7.26.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2216750513c25794f2c357977a14824e40c87e406be46269525050e8c1cf9271 |
|
MD5 | 45638f73080979343025e181e2a2c26a |
|
BLAKE2b-256 | c3ec3a38272cf7b636dcf0d1f4124e79461598ccc08e5e0c176870fe7369e9cc |
Hashes for mypy_boto3_builder-7.26.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78b3484c55c84e302541372b22eda9834a276eb30a5dde9099f6f468d18ae017 |
|
MD5 | 871633a51409f023629b4d7ffc73a7d0 |
|
BLAKE2b-256 | f3b48d7ce47e2b18e8c4b2fbc2035b0a7cb9bfe9eb20b3e0793efac41b3c0fc1 |