Python

mypy-boto3

Latest version: v1.26.22

PyUp actively tracks 471,271 Python packages for vulnerabilities to keep your Python environments secure.

Scan your dependencies

7.11.11

Notes

Whoa, a new version after 2 months of silence! There must be tons of changes, right?!

Nope. Aside from `py312` support, there is just one bug fix. This is how stable the builder is, just one fix in two months. Or you forget to file bug reports sometimes...

Enjoy!

Fixed
- `[boto3-stubs]` Fixed `setup_default_session` type annotations (reported by chuckwondo in 172)
- `[packaging]` `LICENSE` file is no longer packaged outside of metadata
- `[packaging]` Updates for compatibility with Python 3.12

7.11.10

Fixed
- `[aiobotocore]` Resource attributes marked as `Awaitable` (reported by takeda in 168)

7.11.9

Fixed
- `[s3]` `MultipartUploadPart.copy_from` method `CopySource` argument accepts `str | CopySourceTypeDef` (reported by mtvx in 169)

7.11.8

Fixed
- `[sqs]` Added all valid `AttributeName` values to `Client.get_queue_attributes` (reported by sodul in 165 and ngnpope in 158)
- `[dynamodb]` Response type `AttributeValue` for `Client` methods always returns unmarshalled values (reported by wiget in 166 )
- `[boto3]` `setup_default_session` returns `None` (reported by chuckwondo in 167)

7.11.7

Fixed
- `[dynamodb]` Client methods accept for `boto3` and `botocore`-style argument value shapes (reported by magicmark in 164)

7.11.6

Fixed
- `[ec2]` In `TagTypeDef`, field `Key` is now optional for compatibility with other services (reported by mostrows2 in 163)

7.11.5

Notes

Re-released packages due to inconsistent requirements:

- mypy-boto3-redshift-serverless 1.24.11
- boto3-stubs 1.24.11.post1
- boto3-stubs 1.24.12.post1
- boto3-stubs 1.24.13.post1
- boto3-stubs 1.24.14.post1
- boto3-stubs 1.24.15.post1
- boto3-stubs 1.24.16.post1
- boto3-stubs-lite 1.24.11.post2
- boto3-stubs-lite 1.24.12.post1
- boto3-stubs-lite 1.24.13.post1
- boto3-stubs-lite 1.24.14.post1
- boto3-stubs-lite 1.24.15.post1
- boto3-stubs-lite 1.24.16.post1

Fixed
- `[redshift-serverless]` added force-rename of old `redshiftserverless` service to a new `redshift-serverless` (reported by rakovskij-stanislav in 162)
- `[builder]` Service name and boto3 name of a package can be different to handle `botocore` service renames

7.11.4

Fixed
- `[types-aiobotocore]` Mark `boto3.dynamodb.table.BatchWriter` import as optional

7.11.3

Fixed
- `[aiobotocore-services]` Wrong indentation in `README.md` examples (reported by ytoku in 161)
- `[builder]` Python code blocks in MarkDown documents are formatted with `black`

7.11.2

Fixed
- `[boto3-stubs]` Added `boto3.s3.inject` module stubs
- `[boto3-stubs]` Allow `boto3.session.Session` usage (reported by sarisia in 160)

7.11.1

Fixed
- Allow `from boto3 import Session` (reported by kingakimbrel in 160)

7.11.0

Changed
- `[botocore-stubs]` Is no longer generated, moved to [botocore-stubs](https://github.com/youtype/botocore-stubs) repository

Fixed
- `[types-aiobotocore]` Invalid imports in `httpsession` module

7.10.2

Fixed
- `[boto3-stubs]` No longer provides a module interface
- `[botocore-stubs]` No longer provides a module interface
- `[lambda]` `InvocationResponseTypeDef` hack removed, now correctly parsed as a response structure (reported by mew1033 in 159)
- `[sqs]` `AttributeNames` argument in many methods accepted wrong values due to a bug in `botocore` (reported by ngnpope in 158)
- `[builder]` Generated `setup.py` files have proper docstrings

7.10.1

Fixed
- `[types-aiobotocore]` `boto3.dynamodb.conditions.ConditionBase` import no longer fails if `boto3` is not installed

7.10.0

Notes

We are so close to **3 million** monthly downloads! To make this challenge a bit harder, this version drops outdated `py36` support. For good. It is now gone, it is not coming back. Please upgrade. I mean it.

Thank you as always for your bug reports and feature requests!

Changed
- `[boto3-stubs]` Dropped `py36` support
- `[types-aiobotocore]` Dropped `py36` support
- `[types-aioboto3]` Dropped `py36` support
- `[builder]` Added `LICENSE` file to all packages

Fixed
- `[botocore-stubs]` Removed `ETree` imports
- `[types-aiobotocore]` Imports from `boto3` and `aioboto3` are now safe in case libraries are not installed
- `[types-aioboto3]` Use `AIOBoto3ServiceResource` as a base class instead of `ServiceResource`
- `[types-aioboto3]` Use `AIOResourceCollection` as a base class instead of `ResourceCollection`

7.9.2

Fixed
- `[boto3-stubs]` `boto3.s3.transfer.create_transfer_manager` annotation was invalid (reported by kveretennicov in 156)
- `[types-s3transfer]` `fileobj` allows `IO | str | bytes` in all methods and functions (reported by kveretennicov in 155)
- `[boto3-stubs]` Removed useless `type: ignore` statements

7.9.1

Fixed
- `[types-aioboto3]` Lite version `Session.client` annotation was incorrect
- `[types-aiobotocore]` `args.ClientArgsCreator` annotation violated LSP
- `[types-aiobotocore]` `signers.AioS3PostPresigner` annotation violated LSP
- `[types-botocore]` Various small inconsistencies in annotations
- `[docs]` `Boto3 IDE` and `conda-forge` installation instructions removed from packages that do not support it

7.9.0

Notes

The second minor version bump in a row! This means that `types-aioboto3` is finally ready for production! `aioboto3` is fully annotated and supports implicit type annotations for all services, just like `boto3`!

- New `types-aioboto3` package (`boto3-stubs` alternative)
- New `types-aioboto3-lite` package (`boto3-stubs-lite` alternative)
- Automated checks for outdated stubs for `aioboto3` and `aiobotocore`

Added
- `[aioboto3]` New product `aioboto3` to build `types-aioboto3` and `types-aioboto3-lite` packages
- `[aioboto3]` New product `aioboto3-docs` to build `types-aioboto3` documentation
- `[check-stubs]` Support for `aiobotocore` package
- `[check-stubs]` Support for `aioboto3` package

Changed
- `[types-aioboto3]` Stubs updated to the latest `aioboto3` version
- `[types-aiobotocore]` Stubs updated to the latest `aiobotocore` version
- `[types-aiobotocore]` No longer directly depends on `aiobotocore`

Fixed
- `[check-stubs]` Relative paths in snapshots are replaced to avoid conflicts
- `[botocore-stubs]` Added compatibility with `types-aiobotocore`
- `[aiobotocore-docs]` Added annotations to usage examples

7.8.0

Notes

- `s3transfer` got its own stubs package
- `boto3-stubs` is finally cross-checked against the latest `boto3` version and is fully up-to-date
- `types-aiobotocore` uses correct `aiobotocore` classes alternatives
- Final preparations for `types-aioboto3` package release

Added
- `[s3transfer]` New `types-s3transfer` package that provides type annotations

Changed
- `[services]` All imports from `boto3`/`botocore`/`aiobotocore` retain their original names, `Boto3` prefix removed
- `[boto3-stubs]` Added dependency on `types-s3transfer`
- `[builder]` Type annotations processing memory usage decreased
- `[builder]` Refactored package post-processors to make `botocore`/`aiobotocore` separation cleaner
- `[builder]` Moved all static stubs to `stubs_static`
- `[ci]` New `check-stubs` script that covers `boto3`, `botocore` and `s3transfer` stubs

Fixed
- `[aiobotocore]` All `botocore` substitutes are replaced with proper `aiobotocore` alternatives (reported by carlos-alberto in 154)
- `[services]` `botocore.client.Client` usage replaced with `botocore.client.BaseClient`
- `[services]` Updated documentation links
- `[services]` Stubs-only packages have `Typing :: Stubs Only` classifier
- `[boto3-stubs]` Updated to the latest `boto3` version
- `[builder]` External imports were hashed incorrectly, potentially clashed

7.7.3

Fixed
- `[dynamodb]` `BuiltConditionExpression.attribute_value_placeholders` is now correctly typed as a `Dict` (fixed by ErezVolk in 149)
- `[dynamodb]` `Table` methods accept `ConditionBase` in `ConditionExpression` (reported by hnlee in 150)

7.7.2

Fixed
- `[botocore-stubs]` Updated stubs to the latest `botocore` version
- `[packages]` Documentation links now point to generated docs instead of RtD

7.7.1

Fixed
- `[builder]` PyPI check for published versions failed if the package has not been published yet

7.7.0

Changed
- `[docker]` Rebase image to `Python 3.10.5` on `Alpine 3.16`

Fixed
- `[dynamodb]` `ServiceResourse` `AttributeValue` now uses high-level `dynamodb` types (reported by sirrus233 in 148)
- `[botocore-stubs]` Updated stubs for `BaseClient`, `Endpoint` and `HttpSession`

7.6.1

Fixed
- `[services]` `Client` methods with an empty `botocore` shape now return `ResponseMetadata` instead of `None` (reported by adamnovak in 147 )

7.6.0

Notes

`boto3` drops Python 3.6 support in two weeks, so does `boto3-stubs`.

Changed
- `[builder]` Added `TopologicalSorter` to sort TypedDicts based on their dependencies based on graphs.

Fixed
- `[botocore-stubs]` Updated `model.DenormalizedStructureBuilder` stubs
- `[botocore-stubs]` Added `compat.HAS_GZIP`
- `[botocore-stubs]` Added `loaders.HAS_GZIP`

7.5.14

Fixed
- `[dynamodb]` `TypeDeserializer.deserialize` accepts `TypedDict` to be compatible with `client` method responses (reported by milanboers in 146)
- `[dynamodb]` `TypeSerializer.serialize` returns `TypedDict` to be compatible with `client` method inputs (reported by milanboers in 146)

7.5.13

Fixed
- `[dynamodb]` `Table` resource `ArgumentValue` annotations were incorrect because this resource converts types internally

7.5.12

Fixed
- `[intergration]` Updated for the latest `pyright` version
- `[boto3-stubs]` Fixed incorrectly sorted imports

7.5.11

Fixed
- `[boto3-stubs]` Fix `boto3.types.dynamodb.TypeDeserializer` stubs to allow mappings (reported by milanboers in 146)

7.5.10

Fixed
- `[boto3-docs]` Fixed `cleint` typo in generated service `README` (fixed by jvansan in 143)
- `[dynamodb]` All output query items are now typed correctly with `AttributeValueTypeDef` stub (reported by vveeps in 144 and brent-moffit in 146 )
- `[s3]` Removed hardcoded `BucketLocationConstraintType` literal (https://github.com/boto/botocore/issues/2648)
- `[builder]` Unified type stubs to keep consistent list of substitute types

7.5.9

Fixed
- `[botocore-stubs]` Update to the latest version of `botocore`
- `[builder]` Cleaner path logging

7.5.8

Fixed
- `[services]` `blob` data type allows strings in input shapes ( reported by zacholade in 142 )
- `[services]` Removed unused `NotRequired` import
- `[boto3-stubs]` Cleaned up hardcoded default arguments
- `[boto3-stubs]` Replaced `type` with `Any` in argument types
- `[boto3-stubs]` Removed `TypedDict` exports from `resources.model`
- `[boto3-stubs]` Fixed subclassing of `BatchWriter`

7.5.7

Fixed
- `[docker]` Updated to `Python 3.10.4`
- `[ci]` Fixed release script

7.5.7rc1

Fixed
- `[ci]` Fixed release script

7.5.6

Fixed
- `[builder]` All links point to `YouType` organization

7.5.5

Fixed
- `[services]` Reverted new `TypedDict` rendering to support `pydantic` (reported by mskrip in 141 )
- `[boto3-stubs]` Limit upper version of sub packages to the next minor (reported by mskrip in 141 )
- `[typed-aiobotocore]` Limit upper version of sub packages to the next minor

7.5.4

Fixed
- `[builder]` Potentially incorrect `Literal` name after stubbing
- `[s3]` Added `BucketLocationConstraintType` stub (https://github.com/boto/botocore/issues/2648)
- `[cloudformation]` Removed `ResourceStatusType` stub (https://github.com/boto/botocore/issues/1807)

7.5.3

Fixed
- `[botocore-stubs]` Added `modeled_fields` to `Stubber.add_client_error` annotation

7.5.2

Fixed
- `[services]` Used new links to documentation

7.5.1

Fixed
- `[docs]` Select methods with return and request type annotations for `Examples`

7.5.0

Notes
- Added typed dictionaries for all `waiter.wait` methods to allow type checking with `**kwargs` calls
- Added typed dictionaries for all `paginator.paginate` methods to allow type checking with `**kwargs` calls
- New documentation

Added
- `[docs]` Fully revamped Material UI with search, usage examples, annotations, and navigation
- `[services]` `RegionName` with all regions that service supports (if any)
- `[docs]` New `kwargs` usage examples for all methods
- `[services]` `waiter.wait` method can now be called with `kwargs` with type checking, see examples
- `[services]` `paginator.paginate` method can now be called with `kwargs` with type checking, see examples

Fixed
- `[docs]` `Client.exceptions` is no longer listed in public methods
- `[docs]` Usage examples always use `Session`
- `[builder]` Restructured generators to keep `boto3` and `aiobotocore` in sync
- `[boto3-stubs]` `Session.region_name` returns a `Literal` with all acceptable region names (requested by takeda in 140)

7.4.1

Fixed
- `[services]` All packages require `typing-extensions>=4.1.0` (reported by 1-900-MIXALOT in 139)

7.4.0

Notes

- New Typed Dicts with Python 3.11 flavor! Bringing the power of `Required/NotRequired` flags to make things less complicated
- `typing-extensions` is now mandatory for all packages. Yes, even on Python 3.10+.
- `Glacier` client methods `accountId` argument is now optional. I had to hardcode it, not a real fix.
- Resource methods with partial data mixins are now supported (`s3`, `glacier`, `ec2` affected)

Added
- `[builder]` Default argument values can now be extracted from `action_shape` for resource methods

Changed
- `[services]` All packages now depend on `typing-extensions`
- `[services]` `TypedDict` rendering has changed for easier debugging
- `[services]` Resource method request shape name includes action name to avoid conflicts (might be breaking if you use them directly)
- `[docs]` Generated pages are compatible with [Read the Docs](https://readthedocs.org/)

Fixed
- `[s3]` `BucketVersioning.create` and `BucketVersioning.suspend` methods no longer require `VersioningConfiguration` (reported by takeda in 138)
- `[glacier]` Client methods no longer require `accountId` and default value is set to `'-'`
- `[builder]` Targets extracted from `action_shape` support nested arguments
- `[services]` All `pyright` reported issues addressed
- `[docs]` Added breadcrumbs to Examples page

7.3.0

Added
- `[services]` `literals.<Class>ServiceName` literal with service `boto3` name
- `[services]` `literals.ResourceServiceName` literal with all `boto3` service names that have `ServiceResource`

Changed
- `[builder]` All output is processed with `black` in `preview` mode

Fixed
- `[botocore-stubs]` `ClientErrorResponseTypeDef` now has `Status` and `StatusReason` keys
- `[builder]` Master packages did not respect `--partial-overload` flag

7.2.1

Fixed
- `[botocore-stubs]` Updated `Config` argument types, allow `None` values

7.2.0

Notes

Hello, fellow Pythonistas! Today is a very special day for this small project:

- `boto3-stubs` is now one of the top 1000 PyPI packages!
- Over 7 million monthly downloads for all packages created by this builder
- `types-aiobotocore` is not yet that popular, but users reported that it works as it should

What to expect and how to help:

- Better PyCharm integration is coming: https://youtrack.jetbrains.com/issue/PY-53158
- `aiobotocore` team approved `types-aiobotocore`: https://github.com/aio-libs/aiobotocore/issues/916
- Improved `botocore` typing for hardcore users, send a PR if you use `botocore` directly and find any inconsistencies

Thank you for your support! Do not forget to report any bugs and ask your questions here in Issues.

Changed
- `[botocore-stubs]` Updated stubs to the latest version of `botocore`
- `[botocore-stubs]` Improved type annotations for `awsrequest` module
- `[botocore-stubs]` Improved type annotations for `utils` module

Fixed
- `[boto3-stubs]` Removed default argument values from `setup_default_session`
- `[types-aiobotocore]` Removed `object` inheritance
- `[botocore-stubs]` `six` replaced with `http.client` for `compat.HTTPHeaders` typing, get rid of `six` completely
- `[services]` Used ellipsis instead of `None` argument defaults (fix `pyright` sanity check)

7.1.2

Fixed
- `[boto3-docs]` Service docs could not be built due to an error in `jinja2` templates
- `[boto3-docs]` Usage examples updated
- `[aiobotocore-docs]` Usage examples ported from `boto3` version

7.1.1

Notes

Same as `7.1.0` but with all listed changes included.

7.1.0

Changed
- `[boto3-stubs]` Check `botocore` changelog for service updates
- `[boto3-stubs]` Minimum required version of sub-packages now depends on `boto3` version instead of the build version
- `[types-aiobotocore]` Check `botocore` changelog for service updates
- `[types-aiobotocore]` Minimum required version of sub-packages now depends on `aiobotocore` version instead of the build version
- `[docs]` Use `code completion` in terminology everywhere
- `[docs]` `Usage` section is synchronized across all packages

Fixed
- `[docs]` double-underscore methods are now rendered properly
- `[aiobotocore-services]` `AioPaginator.paginate` returns `AsyncIterator`
- `[aiobotocore-services]` Wrong import for `Client` from `service_resource.py`
- `[services]` non-latest `boto3` version was not rendered properly sometimes

7.0.4

Fixed
- `[aiobotocore-services]` `AioPaginator.paginate` returns `AsyncIterable`

7.0.3

Fixed
- `[types-aiobotocore-docs]` `types-aiobotocore` documentation is in sync with `boto3-stubs`
- `[types-aiobotocore-docs]` Added a list of submodules
- `[service-docs]` Added info about package installation
- `[docs]` Updated `How to install` section
- `[docs]` Updated `Usage` section
- `[docs]` Updated `How it works` section

7.0.2

Fixed
- `[types-aiobotocore]` `AioPaginator` type annotations were not complete
- `[docs]` incorrect `boto3-stubs-lite` package name
- `[docs]` PyCharm instructions now include info regarding `boto3-stubs-lite`

7.0.1

Fixed
- `[builder]` Master package templates were not rendered
- `[types-aiobotocore]` Generated `README.md` files had incorrect package name

7.0.0

Highlights

- Added support for [aiobotocore](https://github.com/aio-libs/aiobotocore) package: [types-aiobotocore](https://pypi.org/project/types-aiobotocore/)
- New `boto3-stubs-lite` package that does not provide overloads to reduce RAM usage in PyCharm
- 100% stubs coverage for `boto3`, `botocore`, `aiobotocore`
- `types-aiobotocore` documentation: https://vemel.github.io/types_aiobotocore_docs/

Added
- `[cli]` `--product` argument to selected between `boto3`, `boto3-services`, `boto3-docs`, `aiobotocore`, `aiobotocore-services`, `aiobotocore-docs`
- `[cli]` `--no-smart-version` argument to disable PyPI check before package versioning
- `[builder]` `boto3-stubs-lite` package
- `[builder]` `types-aiobotocore-lite` package

Changed
- `[botocore-stubs]` version is independent from `boto3-stubs` release
argument
- `[services]` `boto3` documentation links always point to latest version
- `[services]` Added docstrings for `Paginator` and `Waiter` methods

Fixed
- `[boto3-stubs]` No longer `partial` stubs, as they cover 100%
- `[boto3-stubs]` `session.Session` typing improved
- `[botocore-stubs]` No longer `partial` stubs, as they cover 100%
- `[botocore-stubs]` `args` module parsing is now more accurate
- `[builder]` `botocore-stubs` templates were not listed in the package
- `[docs]` Links to PyPI were incorrect sometimes
- `[docs]` `pip` installation instructions did not work in `zsh`

Removed
- `[cli]` `--skip-master` argument, use `--product boto3-services` instead
- `[cli]` `--skip-services` argument, use `--product boto3` instead
- `[cli]` `--docs` argument, use `--product boto3-docs` instead
- `[boto3-stubs]` `__init__.py` file is no longer included

6.4.2

Fixed
- `[services]` Collection batch methods return `List[Response]`, even though docs say otherwise (reported by tekumara in 126)
- `[docs]` Added `conda-forge` installation info to generated READMEs
- `[ci]` Support building packages with an explicitly set version

6.4.1

Notes

`Resource.attributes` are now parsed correctly from `botocore` shapes. This change affects many services, so the changes are included in `boto3-stubs==1.20.46.post1` release with all services.

Fixed
- `[services]` `Resource.attributes` types were not retrieved from botocore shapes and relied only on documentation
- `[services]` `Resource.references` that represent a list of resources are now typed correctly as lists (reported by adamnovak)
- `[docs]` Links in AWS docs are no longer broken to wrap text and converted to MarkDown style

6.4.0

Notes
- `botocore-stubs` now cover 100% of `botocore`
- Fixed builder and generated packages classifiers, added `Python 3.11`
- Added new script `scripts/check_stubs.sh` to verify that stubs match `boto3` and `botocore`

Added
- `[botocore-stubs]` Missing stubs for `botocore.exceptions`
- `[botocore-stubs]` Missing stubs for `botocore.configprovider`
- `[botocore-stubs]` Missing stubs for `botocore.httpsession`
- `[botocore-stubs]` Missing stubs for `botocore.utils`
- `[botocore-stubs]` Full coverage of all other modules

Changed
- `[docker]` Rebased to `Python 3.10.2` on `Alpine 3.15`

Fixed
- `[botocore-stubs]` `CachedProperty` should act as a `property` while type checking
- `[docs]` Removed `**Request syntax**` from method short docstrings
- `[builder]` Removed incorrect classifiers
- `[boto3-stubs]` Added classifiers for `Python 3.11`
- `[botocore-stubs]` Added classifiers for `Python 3.11`
- `[services]` Added classifiers for `Python 3.11`

6.3.3

Fixed
- `[botocore-stubs]` Added proper `urllib3` stubs instead of `requests.packages.urllib3` (fixed by benesch)
- `[docs]` Replaced `boto-stubs` with `boto3-stubs` in many places (reported by daveisfera)
- `[boto3-stubs]` Added compatibility with `pyright>=1.1.211`
- `[ci]` Support `boto3` update with no services changed

6.3.2

Notes

Thanks to [Adam Novak](https://github.com/adamnovak) and [Dave Johansen](https://github.com/daveisfera) for their useful bug reports.
We still support all 299 AWS services, so expect 300+ services in the next major update!

Fixed
- `[boto3-stubs]` `boto3.session.Session` arguments are now `Optional`
- `[services]` `a file-like object` accepts `Union[IO[Any], StreamingBody]`

6.3.1

Fixed
- `[botocore-stubs]` `botocore.auth.*Auth` accept both `Credentials` and `ReadOnlyCredentials`
- `[docs]` Updated to the latest `handsdown` generator, branch name fixed

6.3.0

Notes

`boto3-stubs` are as stable as they could be, so no massive changes this time. Even though `boto3` team works hard on changing `botocore` to improve user experience, our type annotations still cover everything. Please report bugs and request new features, because currently, I am out of ideas, how to make your `boto3` experience even better.

Meanwhile, our [VSCode extension](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide) grows and almost reached its first stable release. Give it a shot!

Changed
- `[builder]` updated `black` to `21.12b0`
- `[builder]` added compatibility with `Python 3.10.1`
- `[docker]` updated to `Python 3.10.1` on `Alpine 3.15`

Fixed
- `[docker]` removed useless `regex` pre-build, thanks to `Alpine 3.15`
- `[docker]` Python packages are installed to user site-packages to avoid permission issues
- `[sanity]` `pyright` no longer reports empty functions as an error
- `[botocore-stubs]` updated signatures for `AWSConnection`
- `[docs]` instructions for `Docker` usage were incorrect

6.2.1

Fixed
- Updated generated `README.md` to include info about VSCode extension

6.2.0

Notes

This release introduces `Smart Versioning` that should work beautifully with new updated-only packages releases. The idea is that submodules versions are now independent, so submodules can be updated separately from each other. Also, if publishing to PyPI failed in the middle of the process, now it should be safe to upload only non-published packages.

The changes are mostly for easier release management. For example, it is possible now to release all packages instead of updated-only on urgent builder fixes.

Basically, now you can have all packages installed with `pip install 'boto3-stubs[all]'` and receive only updated stubs, while most of the submodules will stay the same.

Added
- `[cli]` new parameter `--partial-overload` to overload only selected services instead of all for `boto3.client/resource` functions
- `[cli]` new parameter `--skip-published` to skip building packages already uploaded to PyPI
- `[ci]` Included workflows for partial submodules updates (still in testing)

Changed
- `[cli]` `--build-version` parameter now uses smart versioning by default instead of `boto3` version
- `[services]` Packages versions are now independent of each other
- `[builder]` Updated formatting tools

Fixed
- `[ci]` Download error if `boto3` PyPI index was not rebuilt yet

6.1.2

Fixed
- `[dependencies]` add missing `requests` dependency

6.1.1

Fixed
- `[botocore-stubs]` `PageIterator.search` returns `Iterator[Any]` instead of `None`

6.1.0

Notes

`boto3-stubs` now requires submodules from the current minor release. E.g. `boto3-stubs 1.19.8` require `mypy-boto3-s3>=1.19.0`. Used to be 5 micro-releases down. So, starting from this release submodules are released only if they have changed compared to the previous version, or `boto3` got a new minor release.

Thank you all for your bug reports, feature requests, pull requests, and patience! We reached more than 500 thousand downloads per month, prevented hundreds of bugs in prod, and we even helped the scientific Python community a lot! Let's keep it up!

Added
- `[cli]` `--service-names` accept `updated` value to build only services updated in current `boto3` release

Changed
- `[boto3-stubs]` requires submodules from the current minor release
- `[builder]` updated dependencies for official `py310` support

Fixed
- `[services]` `ResponseMetadata.HTTPHeaders` are now correctly typed as `Dict[str, str]`
- `[builder]` selected services are no longer re-created for easier comparison
- `[builder]` wrapped type annotations no longer depend on `typing` library

6.0.2

Fixed
- `[services]` Do not mark shapes other than `blob` as `streaming`

6.0.1

Notes

Since this fix is critical, `boto3-stubs 1.19.1.post1` will be released ASAP.

Fixed
- `[services]` Some output blobs were incorrectly marked as `StreamingBody`
- `[builder]` Initialize `botocore` session with fake credentials to speed up build

6.0.0

Notes

Starting from this release, `mypy-boto3-builder` requires Python 3.10+. However, `boto3-stubs` is still compatible with `py36+`.

Changes
Changed
- `[builder]` requires `py310+`
- `[boto3-stubs]` `typing-extensions` are now required for `py38`
- `[services]` using `typing_extensions.TypedDict` instead of `typing.TypedDict` for `py38`
- `[services]` using `typing_extensions.Literal` instead of `typing.Literal` for `py38`
- `[docker]` rebased to `python:3.10.0-alpine3.14`
- `[docker]` updated `regex` to `2021.10.8`

Fixed
- `[services]` output `blob` shapes always use `StreamingBody`
- `[botocore-stubs]` `typing-extensions` no longer required for `py39+`
- `[botocore-stubs]` `botocore.compat.MutableMapping` was not typed properly for `py310`

5.5.0

Notes

*BREAKING!* New version no longer allows passing `None` as an optional method argument value. In most cases passing `None` will lead to `botocore.exceptions.ParamValidationError`, so this behavior is intended. Both `mypy` and `pyright` support new logic, so please update your code. Instead of passing `None`, just omit the argument.

Changes
Changed
- `[services]` No longer allow `None` as optional argument value
- `[botocore-stubs]` Removed obsolete `zip` module stubs
- `[docker]` Rebased to `Python 3.9.7`
- `[docker]` Rebased to `Alpine 3.14`
- `[docker]` Updated `regex` to `2021.9.24`

5.4.0

Added
- `[services]` `WaiterName` literal with all module waiter names
- `[services]` `PaginatorName` literal with all module paginator names

5.3.1

Fixed
- `[botocore-stubs]` use `AWSRequest` in type annotations for `botocore.auth.BaseSigner` and subclasses

5.3.0

Added
- `[services]` new `ServiceName` literal as `from <module>.literals import ServiceName`

Changed
- `[boto3-stubs]` always generated for all available service names
- `[builder]` updated `black` to `20.9b0`
- `[services]` `Dict` in input shapes replaced with `Mapping`
- `[services]` `List` in input shapes replaced with `Sequence`

Fixed
- `[pinpoint]` `__EndpointTypesElementType` literal renamed to `EndpointTypesElementType` to allow importing

5.2.0

Added
- `[botocore-stubs]` cross-checked and added all missing stubs

Changed
- `[docker]` Updated `regex`
- `[builder]` Added compatibility with latest `pyright`

Fixed
- `[services]` injected `boto3` methods do not require keyword arguments
- `[services]` `PageIterator`/`paginate` methods are annotated properly
- `[builder]` `check_output` shows `pyright` errors properly

5.1.0

Notes

Thank you for your contributions! More and more people start using `boto3-stubs`. Your bug reports, feature requests, and pull requests help to improve code quality in about **one million projects**!

Keep on keeping on!

Changed
- `[docker]` Rebased to Python 3.9.6
- `[services]` `resource.meta` has a custom `<name>ResourceMeta` for each service

Fixed
- `[services]` `resource.meta.client` uses correct service client class instead of `BaseClient`
- `[botocore-stubs]` Added missing annotations, cross-checked with `mypy.stubtest`
- `[botocore-stubs]` `ResourceMeta` preserves proper class on `copy`
- `[docs]` Fixed typo `buider` -> `builder`
- `[docs]` Fixed invalid imports in `boto3-stubs`
- `[docs]` Fixed cleanup for `boto3-stubs` module, it was breaking docs build

5.0.0

Notes

- Supported services are no longer hardcoded, so new boto3 services are supported as soon as they are released
- Compatibility with `conda-forge` builds
- New daily sanity check for all generated packages to ensure stability

Added
- `[builder]` Supported services are no longer hardcoded
- `[builder]` `--list-services` CLI flag to output a list of supported services
- `[ci]` `Sanity check` workflow to check generated packages daily

Changed
- `[boto3-stubs]` Doc links now point to latest `boto3` docs
- `[botocore-stubs]` Doc links now point to latest `boto3` docs
- `[ci]` `check_output` runs tests with `mypy` as well
- `[boto3-stubs]` Requires non-strict versions of subpackages, five micro releases below the current (should fix `conda-forge` builds)
- `[docker]` Uses strict `regex==2021.7.6` package version
- `[builder]` Updated `black` and `isort`

Fixed
- `[boto3-stubs]` Removed Generics from `boto3.resouces.collection`
- `[builder]` Potential infinite recursion while working with paths
- `[builder]` Removed aggressive cleanup of unused generated files

4.22.1

Notes

This is an urgent bugfix, please update `boto3-stubs` from `1.17.103` to `1.17.103.post1`

Fixed
- `[services]` Collections are loosely typed again, they were broken in `4.22.0`
- `[builder]` Added `Python 3.10` classifier to all generated packages

4.22.0

Added
- `[boto3-stubs]` Fully annotated `boto3.s3.transfer`

Changed
- `[services]` `Client` is subclassed from `botocore.client.BaseClient` for compatibility with `botocore-stubs`
- `[services]` `Client.exceptions` is typed as a property as it should be

Fixed
- `[services]` Collections bases used to be loosely typed, now they are compatible with `botocore-stubs`
- `[botocore-stubs]` `BaseClient.get_waiter` annotation was not compatible with `boto3-stubs`
- `[botocore-stubs]` `BaseClient.get_paginator` annotation was not compatible with `boto3-stubs`
- `[botocore-stubs]` Removed `BaseClient.__getattr__` annotation because it hides `hash no attribute` type checking error
- `[botocore-stubs]` `ResourceCollection.__iter__` annotation was incorrect, now returns `Iterator[Resource]`
- `[builder]` Uses stricter output packages type checking with `pyright`
- `[builder]` Incorrect URLs to README images on PyPI page

4.21.0

Notes

TypeDefs changes introduced in `4.19.0` were too dramatic. In order to keep the package as backward-compatible as possible, TypeDefs changes are reverted.

Unfortunately, there is no way to keep things as they were because older versions used to add `ResponseMetadata` to TypeDefs that do not include it. So, this version adds `ResponseMetadataTypeDef` postfix to Response TypeDef only if there is a conflict. So, it should still be way closer to pre-`4.19.0` releases.

New packages `boto3-stubs 1.17.101.post2` and `boto3-stubs 1.17.102.post1` will be released shortly after.

Changed
- `[services]` Reverted `ResponseTypeDef` postfix for all Response Shapes from `4.19.0`
- `[services]` If both Shape and Response Shape are required, Response TypeDef gets `ResponseMetadataTypeDef` postfix

4.20.0

Added
- `[docs]` Added a short docstring to all annotated public methods

Changed
- `[services]` Request `datetime` arguments can be passed as timestamp `str` as long as `botocore` allows it
- `[services]` Response `blob` arguments always have a strict `bytes` or `StreamingBody` type
- `[docker]` Rebased to Alpine 3.13 and reduced image size

Fixed
- `[builder]` Removed outdated `setuptools` packaging
- `[builder]` Fixed missing package info on PyPI page
- `[builder]` Enforced `pyright` typing check
- `[docs]` Anchor links to `boto3` waiters documentation were incorrect

4.19.0

Notes

This version has a breaking change. If you use `type_defs.py` imports to annotate your code, you might have to change response type defs imports, e.g. `CopyObjectOutputTypeDef` -> `CopyObjectOutputResponseTypeDef`

Changes
Added
- `[services]` All methods now have Request TypeDefs to validate arguments passed as a Mapping
- `[services]` Client Request TypeDefs have `RequestTypeDef` name postfix
- `[services]` Resource Request TypeDefs have `<resource_name>RequestTypeDef` name postfix
- `[docs]` Methods have a link to Request TypeDef if it exists

Changed
- `[builder]` Response TypeDefs have `ResponseTypeDef` postfix to avoid name clash

Fixed
- `[services]` Output shapes are recognized by origin instead of name
- `[sagemaker]` `ResponseMetadata` does not appear in non-output shapes
- `[cognito-identity]` Name clash for `IdentityPoolTypeDef`, splitted to `IdentityPoolTypeDef` and `IdentityPoolResponseTypeDef`
- `[builder]` Validation for package name clashes was not working as expected
- `[services]` Slow-parsed methods are now keyword-only as well
- `[services]` Resource constructor methods are not keyword-only anymore, as `boto3` allows positional arguments

4.18.4

Fixed
- `[s3]` Allow `StreamingBody` for blob-type arguments. Potentially affects other services.

4.18.3

Fixed
- `[botocore-stubs]` prevent import of Typed Dicts from `exceptions` module
- `[botocore-stubs]` narrowed down stubs for `auth` module
- `[botocore-stubs]` narrowed down stubs for `client` module
- `[botocore-stubs]` narrowed down stubs for `errorfactory` module
- `[botocore-stubs]` narrowed down stubs for `regions` module
- `[botocore-stubs]` narrowed down stubs for `parsers` module
- `[botocore-stubs]` narrowed down stubs for `history` module
- `[botocore-stubs]` narrowed down stubs for `retryhandler` module
- `[builder]` added missing docstrings
- `[services]` unnamed literals should always have a valid PEP8 class name

4.18.2

Fixed
- `[services]` All methods generated from botocore shapes are now keyword-only
- `[botocore-stubs]` incorrect annotations for `botocore.exceptions.ClientError`

4.18.1

Fixed
- `[cloudformation]` added a temporary fix for `ResourceStatusType` literal

4.18.0

Added
- `[services]` added [Proton](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/proton.html) service support

Changed
- `[docs]` Keyword-only method arguments are marked correctly in documentation

Fixed
- `[botocore-stubs]` fixed `ClientError` type annotation

4.17.0

Changed
- `[boto3-stubs]` now depend on `botocore-stubs`
- `[botocore-stubs]` all exceptions kwargs are annotated properly

4.16.1

Fixed
- `[botocore-stubs]` all files formatted with `black`/`isort`
- `[botocore-stubs]` improved `BaseClient` annotations
- `[botocore-stubs]` improved `ServiceModel` annotations
- `[botocore-stubs]` improved `WaiterModel` annotations

4.16.0

Notes

Starting from this release, the builder also generates `botocore-stubs` package.

Added
- `[docs]` new MarkDown processor with faster ToC generation
- `[botocore-stubs]` initial release

Changed
- `[builder]` removed platform-specific dependencies

Fixed
- `[services]` `Client` and `Resource` methods with one or two arguments are no longer keyword-only
- `[services]` keyword-only flag did not work for collections
- `[docs]` PyPI-compatible markdown links point to header instead of a content

4.15.0

Notes

*IMPORTANT*: Starting from this release all `Client` and `Resource` methods use only keyword arguments, so it might require code changes.

The changes are applied to `boto3-stubs 1.17.79+`.

Changed
- `[services]` all `Client` and `Resource` method arguments are keyword-only
- `[services]` MD-doc links replaced with links to HTML documentation

Fixed
- `[boto3-stubs]` allow direct `boto3.Session` usage
- `[boto3-stubs]` not working type annotations for `boto3.docs.utils` module
- `[docs]` error on missing argument type annotation
- `[docs]` anchor links to `Resource` methods were incorrect

4.14.1

Fixed
- `[boto3-stubs]` incorrect typing in `boto3.session.Session` class

4.14.0

Added
- `[services]` [ApplicationCostProfiler](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/applicationcostprofiler.html) service support
- `[services]` [AppRunner](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apprunner.html) service support

Fixed
- `[docs]` incorrect links to some `boto3` service docs
- `[docs]` removed hardcoded `boto3` version from docs

4.13.1

Fixed
- `[services]` waiters were not imported correctly in `client.py[i]`

4.13.0

Notes

This release adds `pyright` check to integration tests to make sure that there are no conflicts in generated type annotations.

*BREAKING!* All generated literals types should be more distinguishable due to `Type` postfix. If you use generated literals in your code, you have to update imports. Check docs for your service: https://vemel.github.io/boto3_stubs_docs/

Added
- `[builder]` [SSMContacts](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm-contacts.html) service support
- `[builder]` [SSMIncidents](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm-incidents.html) service support

Changed
- `[services]` all literals have `Type` postfix, the only exception is `Name` postfix for paginator and waiter names
- `[docker]` rebased to `python:3.9.5-alpine3.12`
- `[services]` `client.pyi` uses relative imports for waiters and paginators to be compatible with `pyright`

Fixed
- `[boto3-stubs]` incorrect `Session._session` annotation
- `[boto3-stubs]` improved stubs for subclassing `ResourceCollection`
- `[boto3-stubs]` removed all overrides for default argument values
- `[docs]` links on main service page have valid anchors
- `[services]` removed unused imports on recursive typed dicts usage

4.12.0

Notes

The fixes below will be applied to `boto3-stubs 1.17.70+`

Added
- `[docs]` links to inline literals

Changed
- `[services]` all imports converted to relative for better compatibility with `pyright`
- `[services]` renamed `ResponseMetadata` to `ResponseMetadataTypeDef`

Fixed
- `[builder]` reverted `TypedDict` render to non-class-based to avoid conflicts between `Literal` names and `TypedDict` keys
- `[builder]` more clear non-class-based `TypedDict` render
- `[docs]` removed all `html` links to support md-style docs

4.11.1

Notes

Starting from this release, `boto3-stubs-*` version is the same as `boto3` version and follows PEP 440. In case of hotfixes, updates will be published as post releases. For example, for `boto3 1.17.70` generated versions are `boto3-stubs 1.17.70` and `boto3-stubs 1.17.70.post1` etc.

Fixed
- `[services]` incorrect link to generated docs in `README.md`
- `[services]` generated MarkDown links did not work on PyPI
- `[master]` generated MarkDown links did not work on PyPI
- `[builder]` support for post-releases in build version

4.10.0

Added
- `[builder]` [finspace](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/finspace.html) service support
- `[builder]` [FinSpaceData](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/finspace-data.html) service support

Changed
- `[builder]` Docker image rebased to `Python 3.9.4`

4.9.0

Changed
- `[docs]` representation for methods and classes
- `[docs]` show links to related resources
- `[docs]` MarkDown files are beautified with [mdformat](https://pypi.org/project/mdformat/)
- `[services]` README is beautified with [mdformat](https://pypi.org/project/mdformat/)

Fixed
- `[services]` ToC links in generated READMEs (provided by [md-toc](https://pypi.org/project/md-toc/))
- `[docs]` incorrect links to `boto3` documentation

4.8.1

Fixed
- Package dependencies were invalid

4.8.0

Notes

Hi, fellow Pythonistas!

This package grows bigger and allows you to do more and more with every release! However, entropy grows as well, and we sometimes lack documentation to cover all the changes. As always, `boto3` documentation is not the best place to check if types are correct.

So, now we have [auto-generated docs](https://github.com/vemel/mypy_boto3_builder/service_docs/index.md) for every module. And they are generated with... Yes, `mypy_boto3_builder` can now also generate docs for all `boto3` services!

Also, it will be easier for me to announce if something has changed in `botocore` schemas because docs will be affected.

Let me know how the docs can be improved and do not forget to report bugs!

Added
- `[builder]` `--docs` CLI flag to generate MD documentation
- `[services]` MarkDown docs now have Table of Contents

Changed
- `[builder]` single-value literals inlined for readability, but class in `literals.py` is still available for import
- `[builder]` `black` updated to `21.4b2`
- `[builder]` improved logging setup for easier subclassing
- `[services]` updated auto-generated READMEs
- `[services]` added links to new documentation to all classes and methods docstrings
- `[builder]` typed dictionaries are rendered as classes if they do not have any reserved words
- `[services]` all output typed dictionaries have keys marked as required (use `pyright` to check totality properly)

Fixed
- `[services]` literal values were sorted incorrectly in rare cases
- `[apigatewayv2]` to literals were conflicting because they have no names in `botocore` spec, added generated names
- `[builder]` installation works as it should on `pip 21.x`
- `[fsx]` some literals were not extracted, partially breaking the annotations
- `[services]` circular typed dictionaries were replaced with `Dict[str, Any]` too agressively

4.7.0

Notes

Thank you for your bug reports and feature requests!

In this release, we get better support for `ec2` and `s3` resource methods. And a new `literals.py` module for each service for better reusability and type checking! Check `pypi` pages of your favorite modules to start using them.

CI scripts got updated too. You probably will not notice any changes, because were good already. But trust me, builds for new `boto3` versions are more reliable now.

Almost forgot, `NimbleStudio` service is now officially supported as well, so now we have all 263 services covered and carefully annotated!

Let me know if there are any issues or if you come up with new ideas on how to make type checking even better.

Added
- `[services]` new `literals.py/pyi` module that contains all literals specified in the service
- `[builder]` [NimbleStudio](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/nimble.html) service support
- `[builder]` check if generated names are unique
- `[builder]` check if generated names do not conflict with `builtins`, `typing`, or reserved keywords

Fixed
- `[ec2]` arguments in resources inherited from list collections were not correctly ignored (potentially affects other services as well)
- `[builder]` files were not properly formatted with `black` due to imports sorting applied afterward
- `[services]` typos in readme

4.6.0

Added
- `[services]` `--version` CLI flag to get package version, e.g. `python -m mypy_boto3_s3 --version`
- `[services]` link to `boto3` docs to running as a module info, e.g. `python -m mypy_boto3_s3`
- `[services]` added download counters to generated `README`

Fixed
- `[boto3-stubs]` running as a module failed if not all sub-packages are installed
- `[boto3-stubs]` LSP violation in `boto3.action.Action`
- `[builder]` better `py39` support

4.5.0

Added
- `[builder]` [FIS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/fis.html) services support
- `[builder]` [LookoutEquipment](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lookoutequipment.html) services support
- `[builder]` [LookoutMetrics](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lookoutmetrics.html) services support
- `[builder]` [mgn](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mgn.html) services support

4.4.0

Notes

As always, full support of `boto3 1.17.0+` along with all 258 services! Get your hands on new fully annotated Lex V2!

Added

- [builder] [LexModelsV2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lexv2-models.html) service support
- [builder] [LexRuntimeV2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lexv2-runtime.html) service support

Fixed

- `[builder/services]` `black/isort` processing of generated `README.md` files https://github.com/vemel/mypy_boto3_builder/issues/66
- `[builder/services]` Streaming responses now correctly return `StreamingBody` instead of `IO[bytes]` https://github.com/vemel/mypy_boto3_builder/issues/67

4.3.1

Same as 4.3.0, fixed auto-build.

4.3.0

Notes

As always, all 256 services of `boto3` are covered and updated.

Added

- `[builder]` [PrometheusService](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/amp.html) service support
- `[builder]` [GreengrassV2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/greengrassv2.html) service support
- `[builder]` [IoTDeviceAdvisor](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotdeviceadvisor.html) service support
- `[builder]` [IoTFleetHub](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotfleethub.html) service support
- `[builder]` [IoTWireless](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotwireless.html) service support
- `[builder]` [LocationService](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/location.html) service support
- `[builder]` [WellArchitected](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/wellarchitected.html) service support

Changed

- `[docker]` rebased to Python 3.9.1 on Alpine 3.12
- `[builder]` CLI parameter for version `-v` changed to `-V`, `--version`

Fixed

- `[boto3-stubs]` use strict declarations for dictionaries and lists

4.2.0

Added

- `[builder]` [AuditManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/auditmanager.html) service support
- `[builder]` [EMRContainers](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/emr-containers.html) service support
- `[builder]` [SagemakerEdgeManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-edge.html) service support
- `[builder]` [HealtLake](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/healthlake.html) service support

Fixed

- `[dynamodb]` Incorrect type annotations for `client.query/scan` (fixed by pyto86pri )
- `[dynamodb]` Incorrect type annotations for `Table.query/scan` (fixed by pyto86pri )

4.1.3

Fixed

- `[builder]` typing issues in docstrings builder

4.1.2

Fixed

- `[docker]` fix build issues due to poetry dependencies

4.1.1

Notes

CI fixes only, code is the same as 4.1.0.

4.1.0

Notes

As always, `boto3-stubs` provides type annotations for all `boto3` services. This release adds eight new services that were released just a couple of days ago.

Thank you for your support, pull requests and bug reports!

Added

- `[builder]` [AmplifyBackend](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/amplifybackend.html) service support
- `[builder]` [AppIntegrationsService](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appintegrations.html) service support
- `[builder]` [ConnectContactLens](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/connect-contact-lens.html) service support
- `[builder]` [CustomerProfiles](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/customer-profiles.html) service support
- `[builder]` [DevopsGuru](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/devops-guru.html) service support
- `[builder]` [ECRPublic](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecr-public.html) service support
- `[builder]` [LookoutforVision](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lookoutvision.html) service support
- `[builder]` [SagemakerFeatureStoreRuntime](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime.html) service support
- `[builder]` new logo and short demo in generated readmes

Fixed

- `[builder]` relative paths in current workdir in output are now clickable
- `[builder]` incorrect return type parsing from docstrings
- `[builder]` error on running from source
- `[ec2]` tags-related methods return types were incorrect

4.0.0

Notes

Added a workaround for PyCharm to reduce CPU usage

bash
build stubs for service you use, in this case s3 and ec2, in <project_root>/typings
python -m mypy_boto3_builder --installed --skip-services typings -s s3 ec2


Add `<project_root>/typings` to your [Interpreter paths](https://www.jetbrains.com/help/pycharm/stubs.html#reuse-stubs)

Added

- `[builder]` [MWAA](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mwaa.html) service support

Changed

- `[builder]` use `poetry` instead of `pipenv`
- `[docker]` rebase to `Python 3.9` on `Alpine 3.12`
- `[builder]` `--installed` flag no longer generates outdated `mypy_boto3` package
- `[builder]` `--installed` flag generates `boto3` module instead of `boto3-stubs`

Fixed

- `[boto3-stubs]` missing imports added
- `[builder]` incorrectly marked functions as overloads if there is only one option
- `[builder]` removed all `pylint` disable comments

3.3.0

Added

- `[builder]` [GlueDataBrew](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/databrew.html) service support
- `[builder]` [NetworkFirewall](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/network-firewall.html) service support
- `[builder]` [AppRegistry](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/servicecatalog-appregistry.html) service support

3.2.2

Fixed

- `[builder]` removed unused `import sys`
- `[builder]` improved imports sorting for `isort 5`
- `[lambda]` `InvocationResponseTypeDef.Payload` type changed to `IO[bytes]`

3.2.1

Changed

- `[builder]` remove `dataclasses` dependency

Fixed

- `[sts]` Missing `sys` import in `type_defs.pyi` (affects some other service modues)

3.2.0

Added

- `[builder]` `S3Outposts` service support
- `[builder]` `TimestreamQuery` service support
- `[builder]` `TimestreamWrite` service support
- `[all]` `ResponseMetadata` shape to all `...Output` type defs
- `[all]` Python 3.9.0 support

Fixed

- `[all]` Incorrectly sorted imports in `client.pyi`
- `[all]` Pylint errors in generated modules

3.1.0

Added

- `SSOAdmin` service support
- `RedshiftDataAPIService` service support

Fixed

- Unsupported services no longer added to `all` extra requirements
- Improved imports sorting in generated files

3.0.4

Fixed typo in deployment script

3.0.3

Fixed

- `client.exceptions` type annotations are included to each service and do not require `botocore` installed
- Failing `<package>.client` import if `boto3-stubs` package is not installed

3.0.2

Notes

Unfortunately, I completely overlooked that `pyi` files are not importable, so direct imports were broken during adding `pyright` support. The solution is hacky, but it is working - all service packages contain `py` files identical to `pyi`. `*.py` files are auto-formatted with `pyi` rules to keep line numbers the same.

Fixed

- Import error from stub libraries
- `pylint` not being happy with generated files

3.0.1

Fix release workflow

3.0.0

Highlights

- `mypy_boto3` CLI command is no longer needed, stubs are pre-generated for all services
- `pyright` is fully supported and now is main priority
- `mypy`, `VSCode (Pylance)` and `PyCharm` are still supported
- `mypy_boto3.<service_name>` imports no longer work, use `mypy_boto3_<service_name>`

Changed

- All type stubs were converted to `pyi` files (pyright support)
- `boto3.client/resource` overloads for all services are pre-generated, which renders `mypy_boto3` CLI useless
- `Session.client/resource` overloads for all services are pre-generated, which renders `mypy_boto3` CLI useless
- Updated `black+isort` for generated files

Fixed

- Imports were sorted incorrectly in generated `boto3-stubs`
- Some imports were incorrectly marked as unused by `pylint`
- `botocore.client.ClientError` is correctly handled by `pyright`

2.4.0

Added

- [Appflow](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appflow.html) service support
- [Bracket](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bracket.html) service support
- [Honeycode](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/honeycode.html) service support
- [IdentityStore](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/identitystore.html) service support
- [IVS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ivs.html) service support
- Support building annotation for services that were not added yet (class names can be different once service is added)

Fixed

- `ec2.<resource>.create_tags` method type annotations
- `ec2.Instance.delete_tags` method type annotations

2.3.1

Notes

Fix dockerized version and rebased to `python:3.8.5-alpine3.11`

2.3.0

Notes

The following changes are included to `boto3_stubs 1.14.51.1` and above.

So, we are going to switch to `pyright` eventually. The problem that `pyright` is smart enough to not follow imports in `*.pyi` files, like `mypy` does. Starting from this version, `pyright` should be able to properly recognize explicit type annotations.

Starting from the next version, I will try to use pre-generated type annotations for all boto3 services, so explicit type annotation will no longer be required for `pyright`. However, this will make `mypy` unusable, because 200+ function overloads will consume too much RAM. Anyway, we now know the difference between `mypy` and `pyright` stubs handling, so there should be a proper solution.

Added

- Stubs for `boto3.docs.utils` (partial)
- Initial `pyright` support

Fixed

- Added `Client.meta` annotation for all services
- `EC2Client.create_tags`/`EC2Client.delete_tags` allow `Tags=None`
- `ec2` resources `create_tags` annotation is now correct (`Image.create_tags` etc.)
- `DynamoDBClient` `query` and `scan` methods accept `boto3.dynamo.conditions.ConditionBase` in expressions
- Fix sorting of generated classes in all modules

2.2.0

Added

- `isort` as a direct dependency
- Automated sanity check for generated packages

Changed

- Imports in all generated packages are sorted with `isort`

Fixed

- `boto3.resource("ec2").delete_tags` annotation did not have `self` argument
- Resource type annotations use aliases on conflict with Resource method name (affects all services)
- `botocore.ResourceCollection.pages` return type annotation was `List[Resource]` instead of an `Iterator[List[Resource]]`
- `botocore.ResourceCollection.filter` overrides are type ignored because arguments are different and it is expected
- All pylint/mypy warning in all generated packages
- Circular imports in packages type defs ( affects `fsx`, `ce`, `wafv2`, maybe others)

2.1.0

Added

- `CodeArtifact` service support with a new `mypy_boto3_codeartifact` package

Changed

- Updated documentation for all services
- Updated module docstrings in generated packages

2.0.4

Changed

- Updated generated documentation for all packages
- Links from `boto3-stubs` page lead to subpackages instead of `boto3` documentation

2.0.3

Fixed

- Both streaming and non-streaming blob types are accepted in blob arguments (affects `s3`)
- Stub files for non-generated dynamic type annotations referenced undefined `overload` (affects `mypy_boto3`)

2.0.2

Notes

- Fixed integration tests before automated builds

2.0.1

Notes

- Fixed unit tests for automated `boto3-stubs` builds

2.0.0

Notes

- `mypy_boto3` run for dynamic annotations is completely optional
- Use submodule imports: `import mypy_boto3.s3 -> import mypy_boto3_s3`

Added

- References support for all resources (affects `ec2`)

Changed

- Wheels packages support

Removed

- Post-install scripts, build dynamic annotations manually if you need `boto3.client/resource` annotations

1.1.1

Notes

The following changes are included to `boto3_stubs 1.13.24.2` and above.

Fixed

- `blob` streaming shapes annotated as `IO[bytes]`, non-streaming: `bytes` (affects `s3` and some other services)

1.1.0

Notes

The following changes are included to `boto3_stubs 1.13.24.1` and above.

Added

- [Macie2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/macie2.html) service support (kudos to jbpratt78)
- `boto3-stubs[all]` extra support to install all service packages (PyCharm performance can be poor if all packages are installed)

Fixed

- Default value for `kwargs` from `argspec` (affects `s3` package and probably others)
- Definitions order in `type_defs.py` (affects `rds-data` package)

1.0.9

Fixed

- Release publish workflow
- Linting issues

1.0.8

Added

- `IoTSiteWise` service support
- `Synthetics` service support

1.0.7

Fixed

- Submodule install command in PyPI docs 17


1.0.6-release
Notes

The following changes are included in `boto3_stubs 1.12.28.1` and above.

boto3-stubs changes

- `Client.exceptions.Exception` now has type `Type[ClientError]`. `ClientError` is still `Any` as it comes from untyped `botocore`
- `Collection.pages` return type set to correct `Generator[List[Obj], None, None]`
- `RDSClient.generate_db_auth_token` return type set to correct `str`

mypy-boto3-builder changes

- If method docstring has no `:rtype:` and `:returns:` contains `url` - return type is set to `str`

1.0.5-release
Notes

This release includes a hotfix for `Collection` method return type revealed as `Any.`

The following changes are included in `boto3_stubs 1.12.17.1` and above.

boto3-stubs changes

- Fixed `Collection` methods return types revealed as `Any`

mypy-boto3-builder changes

- Removed `TypeVar` alias usage for resources and collections
- Added more clear logic for using future type annotations
- Unit tests coverage is now above 70%!
- Docker image rebased to Python 3.8.2

1.0.4-release
Notes

This release should add sub-resources to all resources, fix iteration over collections and fix return types for resource methods that return other resources (mainly for `s3` and `sqs`).

The following changes are included in `boto3_stubs 1.12.14.1` and above.

boto3-stubs changes

- Collections no longer use class methods
- Added `Collection.__iter__` method annotation
- Fixed `Collection.pages` return type
- Return type of `Paginator.paginate` uses `Iterator` instead of `Generator`
- Added SubResource create methods to all resources
- Removed fallback to `*args, **kwargs` on empty docstring for all methods
- Fixed return type of `Resource` methods that return other resources

mypy-boto3-builder changes

- Fixed incorrect resources render order on self-return type in methods
- Fixed underscore prefix usage for string type annotations
- Added `typing.Iterator` support
- Prefer `shape.resource` return type over `shape.operation.response`
- Added `shape.resource.path` support
- Fixed potential invalid syntax in `service_resource.py`

1.0.3-release
Notes

This release should fix incorrect argument and return types for client methods.

The following changes are included in `boto3_stubs 1.12.8.1` and above.

Changes

- `botocore` shapes now have higher priority than `inspect.argspec` for client methods
- `client.get_presigned_url` now should have a correct return type for all services

1.0.2pre

Notes

VSCode does not support auto-complete for string type annotations, which were introduced to add `py36` support. So this release is full of VSCode love.

As a result - auto-complete now works as it should everywhere. And lookup performance increased dramatically.

The following changes are included to `boto3_stubs 1.12.2.1` and above.

Changes

- Removed self-import usage, it was hacky and is not supported by MS Python Language Server
- Removed all possible string type annotations, only a few remain in collections because of circular dependencies
- Added sorting for resources to avoid using class type annotation before definition
- Added proper typing for collection class methods
- Added aliases to local imports to avoid name conflicts
- Fixed potential syntax errors on empty import strings

1.0.1pre

Notes

The following changes are included to `boto3_stubs 1.11.17.1` and above.

Added

- `SHAPE_TYPE_MAP` to stub `botocore` shapes overriden by `boto3`

Changed

- `DocstringParser` applies stub fixes based on `ServiceName` to avoid conflicts between services
- `ShapeParser` applies stub fixes based on `ServiceName` to avoid conflicts between services

DynamoDB

- Fixed argument and return types for get/put/update/delete/batch methods for client and resources

1.0.0pre5

Notes

This is the first stable version of `mypy_boto3_builder`, previous changelogs can be found [here](https://github.com/vemel/mypy_boto3/releases)

The following changes are included to version [boto3_stubs==1.11.7.2](https://pypi.org/project/boto3-stubs/) and above.

Changes

- New project repository, docs, coverage and more!
- Reorganized project structure.
- Generated packages now include builder version.

1.0.0pre4

1.0.0pre3

1.0.0pre2

1.0.0pre