mypy_boto3_builder
Type annotations builder for boto3-stubs project. 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 boto3-stubs
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[all]'
# do not forget to install mypy or pyright
And you should already have auto-complete and type checking in your IDE! You can stop reading now.
THe rest of this document is about building boto3-stubs manually. For example, if you want to use the latest features for an older boto3 version.
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_builderversion and tag it
docker pull docker.pkg.github.com/vemel/mypy_boto3_builder/mypy_boto3_builder_stable:latest
docker tag docker.pkg.github.com/vemel/mypy_boto3_builder/mypy_boto3_builder_stable:latest mypy_boto3_builder
- Generate stubs in
outputdirectory
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
outputdirectory as described above
Development
- Install Python 3.10+, 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

