<a id="mypy-boto3-s3"></a>
# mypy-boto3-s3
[![PyPI - mypy-boto3-s3](https://img.shields.io/pypi/v/mypy-boto3-s3.svg?color=blue)](https://pypi.org/project/mypy-boto3-s3/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mypy-boto3-s3.svg?color=blue)](https://pypi.org/project/mypy-boto3-s3/)
[![Docs](https://img.shields.io/readthedocs/boto3-stubs.svg?color=blue)](https://youtype.github.io/boto3_stubs_docs/)
[![PyPI - Downloads](https://static.pepy.tech/badge/mypy-boto3-s3)](https://pypistats.org/packages/mypy-boto3-s3)
![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png)
Type annotations for [boto3 S3 1.35.76](https://pypi.org/project/boto3/)
compatible with [VSCode](https://code.visualstudio.com/),
[PyCharm](https://www.jetbrains.com/pycharm/),
[Emacs](https://www.gnu.org/software/emacs/),
[Sublime Text](https://www.sublimetext.com/),
[mypy](https://github.com/python/mypy),
[pyright](https://github.com/microsoft/pyright) and other tools.
Generated with
[mypy-boto3-builder 8.6.3](https://github.com/youtype/mypy_boto3_builder).
More information can be found on
[boto3-stubs](https://pypi.org/project/boto3-stubs/) page and in
[mypy-boto3-s3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/).
See how it helps you find and fix potential bugs:
![types-boto3 demo](https://github.com/youtype/mypy_boto3_builder/raw/main/demo.gif)
- [mypy-boto3-s3](#mypy-boto3-s3)
- [How to install](#how-to-install)
- [Generate locally (recommended)](<#generate-locally-(recommended)>)
- [VSCode extension](#vscode-extension)
- [From PyPI with pip](#from-pypi-with-pip)
- [From conda-forge](#from-conda-forge)
- [How to uninstall](#how-to-uninstall)
- [Usage](#usage)
- [VSCode](#vscode)
- [PyCharm](#pycharm)
- [Emacs](#emacs)
- [Sublime Text](#sublime-text)
- [Other IDEs](#other-ides)
- [mypy](#mypy)
- [pyright](#pyright)
- [Pylint compatibility](#pylint-compatibility)
- [Explicit type annotations](#explicit-type-annotations)
- [Client annotations](#client-annotations)
- [Paginators annotations](#paginators-annotations)
- [Waiters annotations](#waiters-annotations)
- [Service Resource annotations](#service-resource-annotations)
- [Other resources annotations](#other-resources-annotations)
- [Collections annotations](#collections-annotations)
- [Literals](#literals)
- [Type definitions](#type-definitions)
- [How it works](#how-it-works)
- [What's new](#what's-new)
- [Implemented features](#implemented-features)
- [Latest changes](#latest-changes)
- [Versioning](#versioning)
- [Thank you](#thank-you)
- [Documentation](#documentation)
- [Support and contributing](#support-and-contributing)
<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](https://docs.astral.sh/uv/getting-started/installation/) for build
isolation.
1. Run mypy-boto3-builder in your package root directory:
`uvx --with 'boto3==1.35.76' mypy_boto3_builder`
2. Select `boto3 (legacy boto3-stubs)` AWS SDK.
3. Add `S3` service.
4. Use provided commands to install generated packages.
<a id="vscode-extension"></a>
### VSCode extension
Add
[AWS Boto3](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide)
extension to your VSCode and run `AWS boto3: Quick Start` command.
Click `Modify` and select `boto3 common` and `S3`.
<a id="from-pypi-with-pip"></a>
### From PyPI with pip
Install `boto3-stubs` for `S3` service.
```bash
# 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
```
<a id="from-conda-forge"></a>
### From conda-forge
Add `conda-forge` to your channels with:
```bash
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:
```bash
conda install mypy-boto3-s3
```
List all available versions of `mypy-boto3-s3` available on your platform with:
```bash
conda search mypy-boto3-s3 --channel conda-forge
```
<a id="how-to-uninstall"></a>
## How to uninstall
```bash
python -m pip uninstall -y mypy-boto3-s3
```
<a id="usage"></a>
## Usage
<a id="vscode"></a>
### VSCode
- Install
[Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
- Install
[Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
- Set `Pylance` as your Python Language Server
- Install `boto3-stubs[s3]` in your environment:
```bash
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.
<a id="pycharm"></a>
### PyCharm
> ⚠️ Due to slow PyCharm performance on `Literal` overloads (issue
> [PY-40997](https://youtrack.jetbrains.com/issue/PY-40997)), it is recommended
> to use [boto3-stubs-lite](https://pypi.org/project/boto3-stubs-lite/) until
> the issue is resolved.
> ⚠️ If you experience slow performance and high CPU usage, try to disable
> `PyCharm` type checker and use [mypy](https://github.com/python/mypy) or
> [pyright](https://github.com/microsoft/pyright) instead.
> ⚠️ To continue using `PyCharm` type checker, you can try to replace
> `boto3-stubs` with
> [boto3-stubs-lite](https://pypi.org/project/boto3-stubs-lite/):
```bash
pip uninstall boto3-stubs
pip install boto3-stubs-lite
```
Install `boto3-stubs[s3]` in your environment:
```bash
python -m pip install 'boto3-stubs[s3]'
```
Both type checking and code completion should now work.
<a id="emacs"></a>
### Emacs
- Install `boto3-stubs` with services you use in your environment:
```bash
python -m pip install 'boto3-stubs[s3]'
```
- Install [use-package](https://github.com/jwiegley/use-package),
[lsp](https://github.com/emacs-lsp/lsp-mode/),
[company](https://github.com/company-mode/company-mode) and
[flycheck](https://github.com/flycheck/flycheck) packages
- Install [lsp-pyright](https://github.com/emacs-lsp/lsp-pyright) package
```elisp
(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.
<a id="sublime-text"></a>
### Sublime Text
- Install `boto3-stubs[s3]` with services you use in your environment:
```bash
python -m pip install 'boto3-stubs[s3]'
```
- Install [LSP-pyright](https://github.com/sublimelsp/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 `boto3-stubs[s3]` in your environment:
```bash
python -m pip install 'boto3-stubs[s3]'
```
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 `boto3-stubs[s3]` in your environment:
```bash
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.
<a id="pylint-compatibility"></a>
### 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.
```python
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
...
```
<a id="explicit-type-annotations"></a>
## Explicit type annotations
<a id="client-annotations"></a>
### Client annotations
`S3Client` provides annotations for `boto3.client("s3")`.
```python
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
```
<a id="paginators-annotations"></a>
### Paginators annotations
`mypy_boto3_s3.paginator` module contains type annotations for all paginators.
```python
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")
```
<a id="waiters-annotations"></a>
### Waiters annotations
`mypy_boto3_s3.waiter` module contains type annotations for all waiters.
```python
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")
```
<a id="service-resource-annotations"></a>
### Service Resource annotations
`S3ServiceResource` provides annotations for `boto3.resource("s3")`.
```python
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
```
<a id="other-resources-annotations"></a>
### Other resources annotations
`mypy_boto3_s3.service_resource` module contains type annotations for all
resources.
```python
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(...)
```
<a id="collections-annotations"></a>
### Collections annotations
`mypy_boto3_s3.service_resource` module contains type annotations for all
`S3ServiceResource` collections.
```python
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
```
<a id="literals"></a>
### 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](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/literals/).
```python
from mypy_boto3_s3.literals import AnalyticsS3ExportFileFormatType
def check_value(value: AnalyticsS3ExportFileFormatType) -> bool: ...
```
<a id="type-definitions"></a>
### 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](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/type_defs/).
```python
from mypy_boto3_s3.type_defs import AbortIncompleteMultipartUploadTypeDef
def get_value() -> AbortIncompleteMultipartUploadTypeDef:
return {...}
```
<a id="how-it-works"></a>
## How it works
Fully automated
[mypy-boto3-builder](https://github.com/youtype/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 `boto3` services are covered.
- Each public class and method of every `boto3` service gets valid type
annotations extracted from `botocore` schemas.
- Type annotations include up-to-date documentation.
- Link to documentation is provided for every method.
- Code is processed by [ruff](https://docs.astral.sh/ruff/) for readability.
<a id="what's-new"></a>
## What's new
<a id="implemented-features"></a>
### Implemented features
- Fully type annotated `boto3`, `botocore`, `aiobotocore` and `aioboto3`
libraries
- `mypy`, `pyright`, `VSCode`, `PyCharm`, `Sublime Text` and `Emacs`
compatibility
- `Client`, `ServiceResource`, `Resource`, `Waiter` `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.resource` calls
- Auto discovery of types for `session.client` and `session.resource` calls
- Auto discovery of types for `client.get_waiter` and `client.get_paginator`
calls
- Auto discovery of types for `ServiceResource` and `Resource` collections
- Auto discovery of types for `aiobotocore.Session.create_client` calls
<a id="latest-changes"></a>
### Latest changes
Builder changelog can be found in
[Releases](https://github.com/youtype/mypy_boto3_builder/releases).
<a id="versioning"></a>
## Versioning
`mypy-boto3-s3` version is the same as related `boto3` version and follows
[PEP 440](https://www.python.org/dev/peps/pep-0440/) format.
<a id="thank-you"></a>
## Thank you
- [Allie Fitter](https://github.com/alliefitter) for
[boto3-type-annotations](https://pypi.org/project/boto3-type-annotations/),
this package is based on top of his work
- [black](https://github.com/psf/black) developers for an awesome formatting
tool
- [Timothy Edmund Crosley](https://github.com/timothycrosley) for
[isort](https://github.com/PyCQA/isort) and how flexible it is
- [mypy](https://github.com/python/mypy) developers for doing all dirty work
for us
- [pyright](https://github.com/microsoft/pyright) team for the new era of typed
Python
<a id="documentation"></a>
## Documentation
All services type annotations can be found in
[boto3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/)
<a id="support-and-contributing"></a>
## Support and contributing
This package is auto-generated. Please reports any bugs or request new features
in [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder/issues/)
repository.
Raw data
{
"_id": null,
"home_page": "https://github.com/youtype/mypy_boto3_builder",
"name": "mypy-boto3-s3",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "boto3 s3 boto3-stubs type-annotations mypy typeshed autocomplete",
"author": "Vlad Emelianov",
"author_email": "vlad.emelianov.nz@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/3f/1b/8a16fd526dfc4a209c599eda26b75b931606524379773e947b25105a3e57/mypy_boto3_s3-1.35.76.post1.tar.gz",
"platform": null,
"description": "<a id=\"mypy-boto3-s3\"></a>\n\n# mypy-boto3-s3\n\n[![PyPI - mypy-boto3-s3](https://img.shields.io/pypi/v/mypy-boto3-s3.svg?color=blue)](https://pypi.org/project/mypy-boto3-s3/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mypy-boto3-s3.svg?color=blue)](https://pypi.org/project/mypy-boto3-s3/)\n[![Docs](https://img.shields.io/readthedocs/boto3-stubs.svg?color=blue)](https://youtype.github.io/boto3_stubs_docs/)\n[![PyPI - Downloads](https://static.pepy.tech/badge/mypy-boto3-s3)](https://pypistats.org/packages/mypy-boto3-s3)\n\n![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png)\n\nType annotations for [boto3 S3 1.35.76](https://pypi.org/project/boto3/)\ncompatible with [VSCode](https://code.visualstudio.com/),\n[PyCharm](https://www.jetbrains.com/pycharm/),\n[Emacs](https://www.gnu.org/software/emacs/),\n[Sublime Text](https://www.sublimetext.com/),\n[mypy](https://github.com/python/mypy),\n[pyright](https://github.com/microsoft/pyright) and other tools.\n\nGenerated with\n[mypy-boto3-builder 8.6.3](https://github.com/youtype/mypy_boto3_builder).\n\nMore information can be found on\n[boto3-stubs](https://pypi.org/project/boto3-stubs/) page and in\n[mypy-boto3-s3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/).\n\nSee how it helps you find and fix potential bugs:\n\n![types-boto3 demo](https://github.com/youtype/mypy_boto3_builder/raw/main/demo.gif)\n\n- [mypy-boto3-s3](#mypy-boto3-s3)\n - [How to install](#how-to-install)\n - [Generate locally (recommended)](<#generate-locally-(recommended)>)\n - [VSCode extension](#vscode-extension)\n - [From PyPI with pip](#from-pypi-with-pip)\n - [From conda-forge](#from-conda-forge)\n - [How to uninstall](#how-to-uninstall)\n - [Usage](#usage)\n - [VSCode](#vscode)\n - [PyCharm](#pycharm)\n - [Emacs](#emacs)\n - [Sublime Text](#sublime-text)\n - [Other IDEs](#other-ides)\n - [mypy](#mypy)\n - [pyright](#pyright)\n - [Pylint compatibility](#pylint-compatibility)\n - [Explicit type annotations](#explicit-type-annotations)\n - [Client annotations](#client-annotations)\n - [Paginators annotations](#paginators-annotations)\n - [Waiters annotations](#waiters-annotations)\n - [Service Resource annotations](#service-resource-annotations)\n - [Other resources annotations](#other-resources-annotations)\n - [Collections annotations](#collections-annotations)\n - [Literals](#literals)\n - [Type definitions](#type-definitions)\n - [How it works](#how-it-works)\n - [What's new](#what's-new)\n - [Implemented features](#implemented-features)\n - [Latest changes](#latest-changes)\n - [Versioning](#versioning)\n - [Thank you](#thank-you)\n - [Documentation](#documentation)\n - [Support and contributing](#support-and-contributing)\n\n<a id=\"how-to-install\"></a>\n\n## How to install\n\n<a id=\"generate-locally-(recommended)\"></a>\n\n### Generate locally (recommended)\n\nYou can generate type annotations for `boto3` package locally with\n`mypy_boto3_builder`. Use\n[uv](https://docs.astral.sh/uv/getting-started/installation/) for build\nisolation.\n\n1. Run mypy-boto3-builder in your package root directory:\n `uvx --with 'boto3==1.35.76' mypy_boto3_builder`\n2. Select `boto3 (legacy boto3-stubs)` AWS SDK.\n3. Add `S3` service.\n4. Use provided commands to install generated packages.\n\n<a id=\"vscode-extension\"></a>\n\n### VSCode extension\n\nAdd\n[AWS Boto3](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide)\nextension to your VSCode and run `AWS boto3: Quick Start` command.\n\nClick `Modify` and select `boto3 common` and `S3`.\n\n<a id=\"from-pypi-with-pip\"></a>\n\n### From PyPI with pip\n\nInstall `boto3-stubs` for `S3` service.\n\n```bash\n# install with boto3 type annotations\npython -m pip install 'boto3-stubs[s3]'\n\n# Lite version does not provide session.client/resource overloads\n# it is more RAM-friendly, but requires explicit type annotations\npython -m pip install 'boto3-stubs-lite[s3]'\n\n# standalone installation\npython -m pip install mypy-boto3-s3\n```\n\n<a id=\"from-conda-forge\"></a>\n\n### From conda-forge\n\nAdd `conda-forge` to your channels with:\n\n```bash\nconda config --add channels conda-forge\nconda config --set channel_priority strict\n```\n\nOnce the `conda-forge` channel has been enabled, `mypy-boto3-s3` can be\ninstalled with:\n\n```bash\nconda install mypy-boto3-s3\n```\n\nList all available versions of `mypy-boto3-s3` available on your platform with:\n\n```bash\nconda search mypy-boto3-s3 --channel conda-forge\n```\n\n<a id=\"how-to-uninstall\"></a>\n\n## How to uninstall\n\n```bash\npython -m pip uninstall -y mypy-boto3-s3\n```\n\n<a id=\"usage\"></a>\n\n## Usage\n\n<a id=\"vscode\"></a>\n\n### VSCode\n\n- Install\n [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)\n- Install\n [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)\n- Set `Pylance` as your Python Language Server\n- Install `boto3-stubs[s3]` in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\nBoth type checking and code completion should now work. No explicit type\nannotations required, write your `boto3` code as usual.\n\n<a id=\"pycharm\"></a>\n\n### PyCharm\n\n> \u26a0\ufe0f Due to slow PyCharm performance on `Literal` overloads (issue\n> [PY-40997](https://youtrack.jetbrains.com/issue/PY-40997)), it is recommended\n> to use [boto3-stubs-lite](https://pypi.org/project/boto3-stubs-lite/) until\n> the issue is resolved.\n\n> \u26a0\ufe0f If you experience slow performance and high CPU usage, try to disable\n> `PyCharm` type checker and use [mypy](https://github.com/python/mypy) or\n> [pyright](https://github.com/microsoft/pyright) instead.\n\n> \u26a0\ufe0f To continue using `PyCharm` type checker, you can try to replace\n> `boto3-stubs` with\n> [boto3-stubs-lite](https://pypi.org/project/boto3-stubs-lite/):\n\n```bash\npip uninstall boto3-stubs\npip install boto3-stubs-lite\n```\n\nInstall `boto3-stubs[s3]` in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\nBoth type checking and code completion should now work.\n\n<a id=\"emacs\"></a>\n\n### Emacs\n\n- Install `boto3-stubs` with services you use in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\n- Install [use-package](https://github.com/jwiegley/use-package),\n [lsp](https://github.com/emacs-lsp/lsp-mode/),\n [company](https://github.com/company-mode/company-mode) and\n [flycheck](https://github.com/flycheck/flycheck) packages\n- Install [lsp-pyright](https://github.com/emacs-lsp/lsp-pyright) package\n\n```elisp\n(use-package lsp-pyright\n :ensure t\n :hook (python-mode . (lambda ()\n (require 'lsp-pyright)\n (lsp))) ; or lsp-deferred\n :init (when (executable-find \"python3\")\n (setq lsp-pyright-python-executable-cmd \"python3\"))\n )\n```\n\n- Make sure emacs uses the environment where you have installed `boto3-stubs`\n\nType checking should now work. No explicit type annotations required, write\nyour `boto3` code as usual.\n\n<a id=\"sublime-text\"></a>\n\n### Sublime Text\n\n- Install `boto3-stubs[s3]` with services you use in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\n- Install [LSP-pyright](https://github.com/sublimelsp/LSP-pyright) package\n\nType checking should now work. No explicit type annotations required, write\nyour `boto3` code as usual.\n\n<a id=\"other-ides\"></a>\n\n### Other IDEs\n\nNot tested, but as long as your IDE supports `mypy` or `pyright`, everything\nshould work.\n\n<a id=\"mypy\"></a>\n\n### mypy\n\n- Install `mypy`: `python -m pip install mypy`\n- Install `boto3-stubs[s3]` in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\nType checking should now work. No explicit type annotations required, write\nyour `boto3` code as usual.\n\n<a id=\"pyright\"></a>\n\n### pyright\n\n- Install `pyright`: `npm i -g pyright`\n- Install `boto3-stubs[s3]` in your environment:\n\n```bash\npython -m pip install 'boto3-stubs[s3]'\n```\n\nOptionally, you can install `boto3-stubs` to `typings` directory.\n\nType checking should now work. No explicit type annotations required, write\nyour `boto3` code as usual.\n\n<a id=\"pylint-compatibility\"></a>\n\n### Pylint compatibility\n\nIt is totally safe to use `TYPE_CHECKING` flag in order to avoid\n`mypy-boto3-s3` dependency in production. However, there is an issue in\n`pylint` that it complains about undefined variables. To fix it, set all types\nto `object` in non-`TYPE_CHECKING` mode.\n\n```python\nfrom typing import TYPE_CHECKING\n\nif TYPE_CHECKING:\n from mypy_boto3_ec2 import EC2Client, EC2ServiceResource\n from mypy_boto3_ec2.waiters import BundleTaskCompleteWaiter\n from mypy_boto3_ec2.paginators import DescribeVolumesPaginator\nelse:\n EC2Client = object\n EC2ServiceResource = object\n BundleTaskCompleteWaiter = object\n DescribeVolumesPaginator = object\n\n...\n```\n\n<a id=\"explicit-type-annotations\"></a>\n\n## Explicit type annotations\n\n<a id=\"client-annotations\"></a>\n\n### Client annotations\n\n`S3Client` provides annotations for `boto3.client(\"s3\")`.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3Client\n\nclient: S3Client = Session().client(\"s3\")\n\n# now client usage is checked by mypy and IDE should provide code completion\n```\n\n<a id=\"paginators-annotations\"></a>\n\n### Paginators annotations\n\n`mypy_boto3_s3.paginator` module contains type annotations for all paginators.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3Client\nfrom mypy_boto3_s3.paginator import (\n ListBucketsPaginator,\n ListDirectoryBucketsPaginator,\n ListMultipartUploadsPaginator,\n ListObjectVersionsPaginator,\n ListObjectsPaginator,\n ListObjectsV2Paginator,\n ListPartsPaginator,\n)\n\nclient: S3Client = Session().client(\"s3\")\n\n# Explicit type annotations are optional here\n# Types should be correctly discovered by mypy and IDEs\nlist_buckets_paginator: ListBucketsPaginator = client.get_paginator(\"list_buckets\")\nlist_directory_buckets_paginator: ListDirectoryBucketsPaginator = client.get_paginator(\n \"list_directory_buckets\"\n)\nlist_multipart_uploads_paginator: ListMultipartUploadsPaginator = client.get_paginator(\n \"list_multipart_uploads\"\n)\nlist_object_versions_paginator: ListObjectVersionsPaginator = client.get_paginator(\n \"list_object_versions\"\n)\nlist_objects_paginator: ListObjectsPaginator = client.get_paginator(\"list_objects\")\nlist_objects_v2_paginator: ListObjectsV2Paginator = client.get_paginator(\"list_objects_v2\")\nlist_parts_paginator: ListPartsPaginator = client.get_paginator(\"list_parts\")\n```\n\n<a id=\"waiters-annotations\"></a>\n\n### Waiters annotations\n\n`mypy_boto3_s3.waiter` module contains type annotations for all waiters.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3Client\nfrom mypy_boto3_s3.waiter import (\n BucketExistsWaiter,\n BucketNotExistsWaiter,\n ObjectExistsWaiter,\n ObjectNotExistsWaiter,\n)\n\nclient: S3Client = Session().client(\"s3\")\n\n# Explicit type annotations are optional here\n# Types should be correctly discovered by mypy and IDEs\nbucket_exists_waiter: BucketExistsWaiter = client.get_waiter(\"bucket_exists\")\nbucket_not_exists_waiter: BucketNotExistsWaiter = client.get_waiter(\"bucket_not_exists\")\nobject_exists_waiter: ObjectExistsWaiter = client.get_waiter(\"object_exists\")\nobject_not_exists_waiter: ObjectNotExistsWaiter = client.get_waiter(\"object_not_exists\")\n```\n\n<a id=\"service-resource-annotations\"></a>\n\n### Service Resource annotations\n\n`S3ServiceResource` provides annotations for `boto3.resource(\"s3\")`.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3ServiceResource\n\nresource: S3ServiceResource = Session().resource(\"s3\")\n\n# now resource usage is checked by mypy and IDE should provide code completion\n```\n\n<a id=\"other-resources-annotations\"></a>\n\n### Other resources annotations\n\n`mypy_boto3_s3.service_resource` module contains type annotations for all\nresources.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3ServiceResource\nfrom mypy_boto3_s3.service_resource import (\n Bucket,\n BucketAcl,\n BucketCors,\n BucketLifecycle,\n BucketLifecycleConfiguration,\n BucketLogging,\n BucketNotification,\n BucketPolicy,\n BucketRequestPayment,\n BucketTagging,\n BucketVersioning,\n BucketWebsite,\n MultipartUpload,\n MultipartUploadPart,\n Object,\n ObjectAcl,\n ObjectSummary,\n ObjectVersion,\n)\n\nresource: S3ServiceResource = Session().resource(\"s3\")\n\n# Explicit type annotations are optional here\n# Type should be correctly discovered by mypy and IDEs\nmy_bucket: Bucket = resource.Bucket(...)\nmy_bucket_acl: BucketAcl = resource.BucketAcl(...)\nmy_bucket_cors: BucketCors = resource.BucketCors(...)\nmy_bucket_lifecycle: BucketLifecycle = resource.BucketLifecycle(...)\nmy_bucket_lifecycle_configuration: BucketLifecycleConfiguration = (\n resource.BucketLifecycleConfiguration(...)\n)\nmy_bucket_logging: BucketLogging = resource.BucketLogging(...)\nmy_bucket_notification: BucketNotification = resource.BucketNotification(...)\nmy_bucket_policy: BucketPolicy = resource.BucketPolicy(...)\nmy_bucket_request_payment: BucketRequestPayment = resource.BucketRequestPayment(...)\nmy_bucket_tagging: BucketTagging = resource.BucketTagging(...)\nmy_bucket_versioning: BucketVersioning = resource.BucketVersioning(...)\nmy_bucket_website: BucketWebsite = resource.BucketWebsite(...)\nmy_multipart_upload: MultipartUpload = resource.MultipartUpload(...)\nmy_multipart_upload_part: MultipartUploadPart = resource.MultipartUploadPart(...)\nmy_object: Object = resource.Object(...)\nmy_object_acl: ObjectAcl = resource.ObjectAcl(...)\nmy_object_summary: ObjectSummary = resource.ObjectSummary(...)\nmy_object_version: ObjectVersion = resource.ObjectVersion(...)\n```\n\n<a id=\"collections-annotations\"></a>\n\n### Collections annotations\n\n`mypy_boto3_s3.service_resource` module contains type annotations for all\n`S3ServiceResource` collections.\n\n```python\nfrom boto3.session import Session\n\nfrom mypy_boto3_s3 import S3ServiceResource\nfrom mypy_boto3_s3.service_resource import ServiceResourceBucketsCollection\n\nresource: S3ServiceResource = Session().resource(\"s3\")\n\n# Explicit type annotations are optional here\n# Type should be correctly discovered by mypy and IDEs\nbuckets: s3_resources.ServiceResourceBucketsCollection = resource.buckets\n```\n\n<a id=\"literals\"></a>\n\n### Literals\n\n`mypy_boto3_s3.literals` module contains literals extracted from shapes that\ncan be used in user code for type checking.\n\nFull list of `S3` Literals can be found in\n[docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/literals/).\n\n```python\nfrom mypy_boto3_s3.literals import AnalyticsS3ExportFileFormatType\n\n\ndef check_value(value: AnalyticsS3ExportFileFormatType) -> bool: ...\n```\n\n<a id=\"type-definitions\"></a>\n\n### Type definitions\n\n`mypy_boto3_s3.type_defs` module contains structures and shapes assembled to\ntyped dictionaries and unions for additional type checking.\n\nFull list of `S3` TypeDefs can be found in\n[docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/type_defs/).\n\n```python\nfrom mypy_boto3_s3.type_defs import AbortIncompleteMultipartUploadTypeDef\n\n\ndef get_value() -> AbortIncompleteMultipartUploadTypeDef:\n return {...}\n```\n\n<a id=\"how-it-works\"></a>\n\n## How it works\n\nFully automated\n[mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder) carefully\ngenerates type annotations for each service, patiently waiting for `boto3`\nupdates. It delivers drop-in type annotations for you and makes sure that:\n\n- All available `boto3` services are covered.\n- Each public class and method of every `boto3` service gets valid type\n annotations extracted from `botocore` schemas.\n- Type annotations include up-to-date documentation.\n- Link to documentation is provided for every method.\n- Code is processed by [ruff](https://docs.astral.sh/ruff/) for readability.\n\n<a id=\"what's-new\"></a>\n\n## What's new\n\n<a id=\"implemented-features\"></a>\n\n### Implemented features\n\n- Fully type annotated `boto3`, `botocore`, `aiobotocore` and `aioboto3`\n libraries\n- `mypy`, `pyright`, `VSCode`, `PyCharm`, `Sublime Text` and `Emacs`\n compatibility\n- `Client`, `ServiceResource`, `Resource`, `Waiter` `Paginator` type\n annotations for each service\n- Generated `TypeDefs` for each service\n- Generated `Literals` for each service\n- Auto discovery of types for `boto3.client` and `boto3.resource` calls\n- Auto discovery of types for `session.client` and `session.resource` calls\n- Auto discovery of types for `client.get_waiter` and `client.get_paginator`\n calls\n- Auto discovery of types for `ServiceResource` and `Resource` collections\n- Auto discovery of types for `aiobotocore.Session.create_client` calls\n\n<a id=\"latest-changes\"></a>\n\n### Latest changes\n\nBuilder changelog can be found in\n[Releases](https://github.com/youtype/mypy_boto3_builder/releases).\n\n<a id=\"versioning\"></a>\n\n## Versioning\n\n`mypy-boto3-s3` version is the same as related `boto3` version and follows\n[PEP 440](https://www.python.org/dev/peps/pep-0440/) format.\n\n<a id=\"thank-you\"></a>\n\n## Thank you\n\n- [Allie Fitter](https://github.com/alliefitter) for\n [boto3-type-annotations](https://pypi.org/project/boto3-type-annotations/),\n this package is based on top of his work\n- [black](https://github.com/psf/black) developers for an awesome formatting\n tool\n- [Timothy Edmund Crosley](https://github.com/timothycrosley) for\n [isort](https://github.com/PyCQA/isort) and how flexible it is\n- [mypy](https://github.com/python/mypy) developers for doing all dirty work\n for us\n- [pyright](https://github.com/microsoft/pyright) team for the new era of typed\n Python\n\n<a id=\"documentation\"></a>\n\n## Documentation\n\nAll services type annotations can be found in\n[boto3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/)\n\n<a id=\"support-and-contributing\"></a>\n\n## Support and contributing\n\nThis package is auto-generated. Please reports any bugs or request new features\nin [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder/issues/)\nrepository.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Type annotations for boto3 S3 1.35.76 service generated with mypy-boto3-builder 8.6.3",
"version": "1.35.76.post1",
"project_urls": {
"Documentation": "https://youtype.github.io/boto3_stubs_docs/mypy_boto3_s3/",
"Homepage": "https://github.com/youtype/mypy_boto3_builder",
"Source": "https://github.com/youtype/mypy_boto3_builder",
"Tracker": "https://github.com/youtype/mypy_boto3_builder/issues"
},
"split_keywords": [
"boto3",
"s3",
"boto3-stubs",
"type-annotations",
"mypy",
"typeshed",
"autocomplete"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b5c17196d459e1434916343bcf2f2ce999521e6e8a1518663b08fc2e0df445a0",
"md5": "a4e07d7e31a9785afce96da2e9408e29",
"sha256": "fd4a8734c3bb5a2da52e22258b1836a14aa3460816df25c831790e464334021f"
},
"downloads": -1,
"filename": "mypy_boto3_s3-1.35.76.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a4e07d7e31a9785afce96da2e9408e29",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 79229,
"upload_time": "2024-12-10T23:04:10",
"upload_time_iso_8601": "2024-12-10T23:04:10.970606Z",
"url": "https://files.pythonhosted.org/packages/b5/c1/7196d459e1434916343bcf2f2ce999521e6e8a1518663b08fc2e0df445a0/mypy_boto3_s3-1.35.76.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f1b8a16fd526dfc4a209c599eda26b75b931606524379773e947b25105a3e57",
"md5": "207a57e6d6c958b3c083bcc7d6a8c6ee",
"sha256": "34ac4cacf8acdafa6e71a2810116b2546376f241761f9eec6ac5a9887309372b"
},
"downloads": -1,
"filename": "mypy_boto3_s3-1.35.76.post1.tar.gz",
"has_sig": false,
"md5_digest": "207a57e6d6c958b3c083bcc7d6a8c6ee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 72730,
"upload_time": "2024-12-10T23:04:16",
"upload_time_iso_8601": "2024-12-10T23:04:16.520091Z",
"url": "https://files.pythonhosted.org/packages/3f/1b/8a16fd526dfc4a209c599eda26b75b931606524379773e947b25105a3e57/mypy_boto3_s3-1.35.76.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-10 23:04:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "youtype",
"github_project": "mypy_boto3_builder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mypy-boto3-s3"
}