mypy-boto3-s31.40.61
Published
Type annotations for boto3 S3 1.40.61 service generated with mypy-boto3-builder 8.11.0
pip install mypy-boto3-s3
Package Downloads
Authors
Project URLs
Requires Python
>=3.8
Dependencies
mypy-boto3-s3

Type annotations for boto3 S3 1.40.61 compatible with VSCode, PyCharm, Emacs, Sublime Text, mypy, pyright and other tools.
Generated with mypy-boto3-builder 8.11.0.
More information can be found on boto3-stubs page and in mypy-boto3-s3 docs.
See how it helps you find and fix potential bugs:

- mypy-boto3-s3
 
How to install
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.40.61' mypy-boto3-builder - Select 
boto3-stubsAWS SDK. - Add 
S3service. - Use provided commands to install generated packages.
 
VSCode extension
Add
AWS Boto3
extension to your VSCode and run AWS boto3: Quick Start command.
Click Modify and select boto3 common and S3.
From PyPI with pip
Install boto3-stubs for S3 service.
# install with boto3 type annotations
python -m pip install 'boto3-stubs[s3]'
# 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[s3]'
# standalone installation
python -m pip install mypy-boto3-s3
From conda-forge
Add 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, mypy-boto3-s3 can be
installed with:
conda install mypy-boto3-s3
List all available versions of mypy-boto3-s3 available on your platform with:
conda search mypy-boto3-s3 --channel conda-forge
How to uninstall
python -m pip uninstall -y mypy-boto3-s3
Usage
VSCode
- Install Python extension
 - Install Pylance extension
 - Set 
Pylanceas your Python Language Server - Install 
boto3-stubs[s3]in your environment: 
python -m pip install 'boto3-stubs[s3]'
Both type checking and code completion should now work. No explicit type
annotations required, write your boto3 code as usual.
PyCharm
⚠️ Due to slow PyCharm performance on
Literaloverloads (issue PY-40997), it is recommended to use boto3-stubs-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 replaceboto3-stubswith boto3-stubs-lite:
pip uninstall boto3-stubs
pip install boto3-stubs-lite
Install boto3-stubs[s3] in your environment:
python -m pip install 'boto3-stubs[s3]'
Both type checking and code completion should now work.
Emacs
- Install 
boto3-stubswith services you use in your environment: 
python -m pip install 'boto3-stubs[s3]'
- 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 
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
Sublime Text
- Install 
boto3-stubs[s3]with services you use in your environment: 
python -m pip install 'boto3-stubs[s3]'
- Install LSP-pyright package
 
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
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[s3]in your environment: 
python -m pip install 'boto3-stubs[s3]'
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
pyright
- Install 
pyright:npm i -g pyright - Install 
boto3-stubs[s3]in your environment: 
python -m pip install 'boto3-stubs[s3]'
Optionally, you can install boto3-stubs to typings directory.
Type checking should now work. No explicit type annotations required, write
your boto3 code as usual.
Pylint compatibility
It is totally safe to use TYPE_CHECKING flag in order to avoid
mypy-boto3-s3 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 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
...
Explicit type annotations
Client annotations
S3Client provides annotations for boto3.client("s3").
from boto3.session import Session
from mypy_boto3_s3 import S3Client
client: S3Client = Session().client("s3")
# now client usage is checked by mypy and IDE should provide code completion
Paginators annotations
mypy_boto3_s3.paginator module contains type annotations for all paginators.
from boto3.session import Session
from mypy_boto3_s3 import S3Client
from mypy_boto3_s3.paginator import (
    ListBucketsPaginator,
    ListDirectoryBucketsPaginator,
    ListMultipartUploadsPaginator,
    ListObjectVersionsPaginator,
    ListObjectsPaginator,
    ListObjectsV2Paginator,
    ListPartsPaginator,
)
client: S3Client = Session().client("s3")
# Explicit type annotations are optional here
# Types should be correctly discovered by mypy and IDEs
list_buckets_paginator: ListBucketsPaginator = client.get_paginator("list_buckets")
list_directory_buckets_paginator: ListDirectoryBucketsPaginator = client.get_paginator(
    "list_directory_buckets"
)
list_multipart_uploads_paginator: ListMultipartUploadsPaginator = client.get_paginator(
    "list_multipart_uploads"
)
list_object_versions_paginator: ListObjectVersionsPaginator = client.get_paginator(
    "list_object_versions"
)
list_objects_paginator: ListObjectsPaginator = client.get_paginator("list_objects")
list_objects_v2_paginator: ListObjectsV2Paginator = client.get_paginator("list_objects_v2")
list_parts_paginator: ListPartsPaginator = client.get_paginator("list_parts")
Waiters annotations
mypy_boto3_s3.waiter module contains type annotations for all waiters.
from boto3.session import Session
from mypy_boto3_s3 import S3Client
from mypy_boto3_s3.waiter import (
    BucketExistsWaiter,
    BucketNotExistsWaiter,
    ObjectExistsWaiter,
    ObjectNotExistsWaiter,
)
client: S3Client = Session().client("s3")
# Explicit type annotations are optional here
# Types should be correctly discovered by mypy and IDEs
bucket_exists_waiter: BucketExistsWaiter = client.get_waiter("bucket_exists")
bucket_not_exists_waiter: BucketNotExistsWaiter = client.get_waiter("bucket_not_exists")
object_exists_waiter: ObjectExistsWaiter = client.get_waiter("object_exists")
object_not_exists_waiter: ObjectNotExistsWaiter = client.get_waiter("object_not_exists")
Service Resource annotations
S3ServiceResource provides annotations for boto3.resource("s3").
from boto3.session import Session
from mypy_boto3_s3 import S3ServiceResource
resource: S3ServiceResource = Session().resource("s3")
# now resource usage is checked by mypy and IDE should provide code completion
Other resources annotations
mypy_boto3_s3.service_resource module contains type annotations for all
resources.
from boto3.session import Session
from mypy_boto3_s3 import S3ServiceResource
from mypy_boto3_s3.service_resource import (
    Bucket,
    BucketAcl,
    BucketCors,
    BucketLifecycle,
    BucketLifecycleConfiguration,
    BucketLogging,
    BucketNotification,
    BucketPolicy,
    BucketRequestPayment,
    BucketTagging,
    BucketVersioning,
    BucketWebsite,
    MultipartUpload,
    MultipartUploadPart,
    Object,
    ObjectAcl,
    ObjectSummary,
    ObjectVersion,
)
resource: S3ServiceResource = Session().resource("s3")
# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
my_bucket: Bucket = resource.Bucket(...)
my_bucket_acl: BucketAcl = resource.BucketAcl(...)
my_bucket_cors: BucketCors = resource.BucketCors(...)
my_bucket_lifecycle: BucketLifecycle = resource.BucketLifecycle(...)
my_bucket_lifecycle_configuration: BucketLifecycleConfiguration = (
    resource.BucketLifecycleConfiguration(...)
)
my_bucket_logging: BucketLogging = resource.BucketLogging(...)
my_bucket_notification: BucketNotification = resource.BucketNotification(...)
my_bucket_policy: BucketPolicy = resource.BucketPolicy(...)
my_bucket_request_payment: BucketRequestPayment = resource.BucketRequestPayment(...)
my_bucket_tagging: BucketTagging = resource.BucketTagging(...)
my_bucket_versioning: BucketVersioning = resource.BucketVersioning(...)
my_bucket_website: BucketWebsite = resource.BucketWebsite(...)
my_multipart_upload: MultipartUpload = resource.MultipartUpload(...)
my_multipart_upload_part: MultipartUploadPart = resource.MultipartUploadPart(...)
my_object: Object = resource.Object(...)
my_object_acl: ObjectAcl = resource.ObjectAcl(...)
my_object_summary: ObjectSummary = resource.ObjectSummary(...)
my_object_version: ObjectVersion = resource.ObjectVersion(...)
Collections annotations
mypy_boto3_s3.service_resource module contains type annotations for all
S3ServiceResource collections.
from boto3.session import Session
from mypy_boto3_s3 import S3ServiceResource
from mypy_boto3_s3.service_resource import ServiceResourceBucketsCollection
resource: S3ServiceResource = Session().resource("s3")
# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
buckets: s3_resources.ServiceResourceBucketsCollection = resource.buckets
Literals
mypy_boto3_s3.literals module contains literals extracted from shapes that
can be used in user code for type checking.
Full list of S3 Literals can be found in
docs.
from mypy_boto3_s3.literals import AnalyticsS3ExportFileFormatType
def check_value(value: AnalyticsS3ExportFileFormatType) -> bool: ...
Type definitions
mypy_boto3_s3.type_defs module contains structures and shapes assembled to
typed dictionaries and unions for additional type checking.
Full list of S3 TypeDefs can be found in
docs.
# TypedDict usage example
from mypy_boto3_s3.type_defs import AbortIncompleteMultipartUploadTypeDef
def get_value() -> AbortIncompleteMultipartUploadTypeDef:
    return {
        "DaysAfterInitiation": ...,
    }
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.
 
What's new
Implemented features
- Fully type annotated 
boto3,botocore,aiobotocoreandaioboto3libraries mypy,pyright,VSCode,PyCharm,Sublime TextandEmacscompatibilityClient,ServiceResource,Resource,WaiterPaginatortype annotations for each service- Generated 
TypeDefsfor each service - Generated 
Literalsfor each service - Auto discovery of types for 
boto3.clientandboto3.resourcecalls - Auto discovery of types for 
session.clientandsession.resourcecalls - Auto discovery of types for 
client.get_waiterandclient.get_paginatorcalls - Auto discovery of types for 
ServiceResourceandResourcecollections - Auto discovery of types for 
aiobotocore.Session.create_clientcalls 
Latest changes
Builder changelog can be found in Releases.
Versioning
mypy-boto3-s3 version is the same as related boto3 version and follows
Python Packaging version specifiers.
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
 
Documentation
All services type annotations can be found in boto3 docs
Support and contributing
This package is auto-generated. Please reports any bugs or request new features in mypy-boto3-builder repository.