types-boto3
Type annotations for boto3 1.42.59 generated with mypy-boto3-builder 8.12.0
Description
<a id="types-boto3"></a>
types-boto3

Type annotations for boto3 1.42.59 compatible with VSCode, PyCharm, Emacs, Sublime Text, mypy, pyright and other tools.
Generated with mypy-boto3-builder 8.12.0.
More information can be found in types-boto3 docs.
See how it helps you find and fix potential bugs:

- types-boto3
<a id="how-to-install"></a>
How to install
<a id="generate-locally-(recommended)"></a>
Generate locally (recommended)
You can generate type annotations for boto3 package locally with
mypy-boto3-builder. Use
uv for build
isolation.
- Run mypy-boto3-builder in your package root directory:
uvx --with 'boto3==1.42.59' mypy-boto3-builder - Select
boto3AWS SDK. - Select services you use in the current project.
- Use provided commands to install generated packages.
<a id="vscode-extension"></a>
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.
<a id="from-pypi-with-pip"></a>
From PyPI with pip
Install types-boto3 to add type checking for boto3 package.
# install type annotations only for boto3
python -m pip install types-boto3
# install boto3 type annotations
# for cloudformation, dynamodb, ec2, lambda, rds, s3, sqs
python -m pip install 'types-boto3[essential]'
# or install annotations for services you use
python -m pip install 'types-boto3[acm,apigateway]'
# or install annotations in sync with boto3 version
python -m pip install 'types-boto3[boto3]'
# or install all-in-one annotations for all services
python -m pip install 'types-boto3[full]'
# Lite version does not provide session.client/resource overloads
# it is more RAM-friendly, but requires explicit type annotations
python -m pip install 'types-boto3-lite[essential]'
<a id="how-to-uninstall"></a>
How to uninstall
# uninstall types-boto3
python -m pip uninstall -y types-boto3
<a id="usage"></a>
Usage
<a id="vscode"></a>
VSCode
- Install Python extension
- Install Pylance extension
- Set
Pylanceas your Python Language Server - Install
types-boto3[essential]in your environment:
python -m pip install 'types-boto3[essential]'
Both type checking and code completion should now work. No explicit type
annotations required, write your boto3 code as usual.
<a id="pycharm"></a>
PyCharm
⚠️ Due to slow PyCharm performance on
Literaloverloads (issue PY-40997), it is recommended to use types-boto3-lite until the issue is resolved.
⚠️ If you experience slow performance and high CPU usage, try to disable
PyCharmtype checker and use mypy or pyright instead.
⚠️ To continue using
PyCharmtype checker, you can try to replacetypes-boto3with types-boto3-lite:
pip uninstall types-boto3
pip install types-boto3-lite
Install types-boto3[essential] in your environment:
python -m pip install 'types-boto3[essential]'
Both type checking and code completion should now work.
<a id="emacs"></a>
Emacs
- Install
types-boto3with services you use in your environment:
python -m pip install 'types-boto3[essential]'
- 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
types-boto3
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
<a id="sublime-text"></a>
Sublime Text
- Install
types-boto3[essential]with services you use in your environment:
python -m pip install 'types-boto3[essential]'
- Install LSP-pyright package
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
<a id="other-ides"></a>
Other IDEs
Not tested, but as long as your IDE supports mypy or pyright, everything
should work.
<a id="mypy"></a>
mypy
- Install
mypy:python -m pip install mypy - Install
types-boto3[essential]in your environment:
python -m pip install 'types-boto3[essential]'
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
<a id="pyright"></a>
pyright
- Install
pyright:npm i -g pyright - Install
types-boto3[essential]in your environment:
python -m pip install 'types-boto3[essential]'
Optionally, you can install types-boto3 to typings directory.
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
<a id="pylint-compatibility"></a>
Pylint compatibility
It is totally safe to use TYPE_CHECKING flag in order to avoid types-boto3
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.
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from types_boto3_ec2 import EC2Client, EC2ServiceResource
from types_boto3_ec2.waiters import BundleTaskCompleteWaiter
from types_boto3_ec2.paginators import DescribeVolumesPaginator
else:
EC2Client = object
EC2ServiceResource = object
BundleTaskCompleteWaiter = object
DescribeVolumesPaginator = object
...
<a id="explicit-type-annotations"></a>
Explicit type annotations
To speed up type checking and code completion, you can set types explicitly.
import boto3
from boto3.session import Session
from types_boto3_ec2.client import EC2Client
from types_boto3_ec2.service_resource import EC2ServiceResource
from types_boto3_ec2.waiter import BundleTaskCompleteWaiter
from types_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")
<a id="how-it-works"></a>
How it works
Fully automated
mypy-boto3-builder carefully
generates type annotations for each service, patiently waiting for boto3
updates. It delivers drop-in type annotations for you and makes sure that:
- All available
boto3services are covered. - Each public class and method of every
boto3service gets valid type annotations extracted frombotocoreschemas. - Type annotations include up-to-date documentation.
- Link to documentation is provided for every method.
- Code is processed by ruff for readability.
<a id="what's-new"></a>
What's new
<a id="implemented-features"></a>
Implemented features
- Fully type annotated
boto3,botocore,aiobotocoreandaioboto3libraries mypy, `pyr