mypy-boto3-s3


Namemypy-boto3-s3 JSON
Version 1.35.76.post1 PyPI version JSON
download
home_pagehttps://github.com/youtype/mypy_boto3_builder
SummaryType annotations for boto3 S3 1.35.76 service generated with mypy-boto3-builder 8.6.3
upload_time2024-12-10 23:04:16
maintainerNone
docs_urlNone
authorVlad Emelianov
requires_python>=3.8
licenseMIT License
keywords boto3 s3 boto3-stubs type-annotations mypy typeshed autocomplete
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.44506s