Builder for boto3-stubs and types-aiobotocore
Project description
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]'
# 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[all]'
# If you use aiobotocore, use asynchronous version
python -m pip install 'types-aiobotocore[all]'
python -m pip install 'types-aiobotocore-lite[all]'
# do not forget to install mypy or pyright
And you should already have code completion 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_builder
version 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
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.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
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.5.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8d811de07763cfcd5fb4b8356698f621ad45596d6a12678acca3a83ed36dcfe |
|
MD5 | ec2bca5f48bdd26352510809a7d553df |
|
BLAKE2b-256 | cc24dd6b68c3b46d1c3c865891c68f8a25c4f5dbb15fb4b914befdbf16e899e1 |