Skip to main content

Type annotations for boto3 1.20.50 generated by mypy-boto3-builder 7.0.1

Project description

boto3-stubs

PyPI - boto3-stubs PyPI - Python Version Docs PyPI - Downloads

boto3.typed

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 demo

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

Since stubs are stored in your project root, you do not need to re-generate them after update.

Emacs

(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 to typings 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 (blame botocore 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 and Emacs compatibility
  • Client type annotations for each service
  • ServiceResource type annotations for each service
  • Resource type annotations for each service
  • Waiter type annotations for each service
  • Paginator type annotations for each service
  • Generated TypeDefs for each service
  • Generated Literals for each service
  • Auto discovery of types for boto3.client and boto3.session calls
  • Auto discovery of types for session.client and session.session calls
  • Auto discovery of types for client.get_waiter and client.get_paginator calls
  • Auto discovery of types for ServiceResource and Resource 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

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

boto3-stubs-1.20.50.tar.gz (17.2 kB view hashes)

Uploaded Source

Built Distribution

boto3_stubs-1.20.50-py3-none-any.whl (19.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page