Type annotations for boto3 1.20.50 generated by mypy-boto3-builder 7.0.1
Project description
boto3-stubs
Type annotations for boto3 1.20.50 compatible with VSCode, PyCharm, Emacs, Sublime Text, mypy, pyright and other tools.
Generated by mypy-boto3-builder 7.0.1.
See how it helps to find and fix potential bugs:
- boto3-stubs
How to install
VSCode extension
Add
AWS Boto3
extension to your VSCode and run AWS boto3: Quick Start
command.
Click Auto-discover services
and select services you use in the current
project.
From PyPI with pip
Install boto3-stubs
to add type annotations for boto3
package.
# install type annotations only for boto3 and botocore
python -m pip install boto3-stubs
# install `boto3` type annotations
# for ec2, s3, rds, lambda, sqs, dynamo and cloudformation
# Consumes ~7 MB of space
python -m pip install 'boto3-stubs[essential]'
# or install annotations for services you use
python -m pip install 'boto3-stubs[acm,apigateway]'
# 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]'
From conda-forge
Installing boto3-stubs
from the conda-forge
channel can be achieved by
adding conda-forge
to your channels with:
conda config --add channels conda-forge
conda config --set channel_priority strict
Once the conda-forge
channel has been enabled, boto3-stubs
and
boto3-stubs-essential
can be installed with:
conda install boto3-stubs boto3-stubs-essential
It is possible to list all of the versions of boto3-stubs
available on your
platform with:
conda search boto3-stubs --channel conda-forge
How to uninstall
# uninstall boto3-stubs
python -m pip uninstall -y boto3-stubs botocore-stubs
# uninstall submodules
python -m pip freeze | grep mypy-boto3 | xargs python -m pip uninstall -y
Usage
VSCode
- Install Python extension
- Install Pylance extension
- Set
Pylance
as your Python Language Server - Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
Both type checking and auto-complete should work for installed boto3
services. No explicit type annotations required, write your boto3
code as
usual.
PyCharm
- Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
- Install
mypy_boto3_builder
:pip install mypy_boto3_builder
- Generate stubs in
<project_root>/typings
directory for services you use
python -m mypy_boto3_builder --product boto3 --installed typings -d -s s3 ec2
- Add
<project_root>/typings
folder to your Interpreter Paths
Since stubs are stored in your project root, you do not need to re-generate them after update.
Emacs
- Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
- Install use-package, lsp, company and flycheck packages
- Install lsp-pyright package
(use-package lsp-pyright
:ensure t
:hook (python-mode . (lambda ()
(require 'lsp-pyright)
(lsp))) ; or lsp-deferred
:init (when (executable-find "python3")
(setq lsp-pyright-python-executable-cmd "python3"))
)
- Make sure emacs uses the environment where you have installed
boto3-stubs
Sublime Text
- Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
- Install LSP-pyright package
- Make sure emacs uses the environment where you have installed
boto3-stubs
Other IDEs
Not tested, but as long as your IDE supports mypy
or pyright
, everything
should work.
mypy
- Install
mypy
:python -m pip install mypy
- Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
- Run
mypy
as usual
Type checking should work for installed boto3
services. No explicit type
annotations required, write your boto3
code as usual.
pyright
- Install
pyright
:yarn global add pyright
- Install
boto3-stubs
with services you use in your environment:python -m pip install 'boto3-stubs[s3,ec2]'
- Optionally, you can install
boto3-stubs
totypings
folder.
Type checking should work for installed boto3
services. No explicit type
annotations required, write your boto3
code as usual.
Explicit type annotations
To speed up type checking and auto-complete, you can set types explicitly.
import boto3
from boto3.session import Session
from mypy_boto3_ec2.client import EC2Client
from mypy_boto3_ec2.service_resource import EC2ServiceResource
from mypy_boto3_ec2.waiter import BundleTaskCompleteWaiter
from mypy_boto3_ec2.paginator import DescribeVolumesPaginator
session = Session(region_name="us-west-1")
ec2_client: EC2Client = boto3.client("ec2", region_name="us-west-1")
ec2_resource: EC2ServiceResource = session.resource("ec2")
bundle_task_complete_waiter: BundleTaskCompleteWaiter = ec2_client.get_waiter("bundle_task_complete")
describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator("describe_volumes")
Pylint compatibility
It is totally safe to use TYPE_CHECKING
flag in order to avoid boto3-stubs
dependency in production. However, there is an issue in pylint
that it
complains about undefined variables. To fix it, set all types to object
in
non-TYPE_CHECKING
mode.
import boto3
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mypy_boto3_ec2 import EC2Client, EC2ServiceResource
from mypy_boto3_ec2.waiters import BundleTaskCompleteWaiter
from mypy_boto3_ec2.paginators import DescribeVolumesPaginator
else:
EC2Client = object
EC2ServiceResource = object
BundleTaskCompleteWaiter = object
DescribeVolumesPaginator = object
...
How it works
Fully automated
mypy-boto3-builder carefully
generates type annotations for each service, patiently waiting for boto3
updates. It delivers a drop-in type annotations for you and makes sure that:
- All available
boto3
services are covered. - Each public class and method of every
boto3
service gets valid type annotations extracted from the documentation (blamebotocore
docs if types are incorrect). - Type annotations include up-to-date documentation.
- Link to documentation is provided for every method.
- Code is processed by black and isort for readability.
What's new
Implemented features
- Fully type annotated
boto3
library mypy
,pyright
,VSCode
,PyCharm
,Sublime Text
andEmacs
compatibilityClient
type annotations for each serviceServiceResource
type annotations for each serviceResource
type annotations for each serviceWaiter
type annotations for each servicePaginator
type annotations for each service- Generated
TypeDefs
for each service - Generated
Literals
for each service - Auto discovery of types for
boto3.client
andboto3.session
calls - Auto discovery of types for
session.client
andsession.session
calls - Auto discovery of types for
client.get_waiter
andclient.get_paginator
calls - Auto discovery of types for
ServiceResource
andResource
collections
Latest changes
Builder changelog can be found in Releases.
Versioning
boto3-stubs
version is the same as related boto3
version and follows
PEP 440 format.
Thank you
- Allie Fitter for boto3-type-annotations, this package is based on top of his work
- 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
Submodules
developers
boto3-stubs[all]
- Type annotations for all 4 services.boto3-stubs[auditmanager]
- Type annotations for AuditManager service.boto3-stubs[synthetics]
- Type annotations for Synthetics service.boto3-stubs[ssm-incidents]
- Type annotations for SSMIncidents service.boto3-stubs[events]
- Type annotations for EventBridge service.
Documentation
All services type annotations can be found in boto3-stubs docs
Support and contributing
This package is auto-generated. Please reports any bugs or request new features in mypy-boto3-builder repository.
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 boto3_stubs-1.20.50-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 180f7e66fa1e0b544dfc7707c08d3f05a85cdd1185a95cf34326414a6e006f17 |
|
MD5 | 23a1c34834dbba32bf748cb0ed723277 |
|
BLAKE2b-256 | 2cbc2e54d258f98afe14f6d959c000224c8263d4cce86c6fd93e65df33dfa7ae |