Notes
This project started as a docstring parser for `boto3` services. And today docstring parser got completely removed from the project. Mainly, because it was slow, and parsing human-readable documentation is not the best option.
Now we fully rely on underlying `botocore` service schemas. The biggest advantage is faster builds and more precise type annotations. Downside -all methods injected by `boto3` or `botocore` are not covered. However, they are annotated manually. If the injected method is not covered - it will be replaced with a dummy method with no type annotations.
There are a lot of under-the-hood changes, so please report any inconsistencies you find.
Added
- `[builder]` Shape parsing support for resource initializers
- `[builder]` Shape parsing support `Client.close` method
- `[builder]` Support for request TypedDicts for injected methods
Changed
- `[builder]` Removed docstring parsing
- `[all]` Removed `typing-extensions` dependency for `py39+`
- `[all]` Replaced many `typing` imports with `collections.abc`
- `[all]` Removed `py36` compatibility leftovers
- `[docker]` Rebased to Python 3.11.2 on Alpine 3.17
Fixed
- `[ec2]` Fixed incorrect type annotations for `create_tags` and `delete_tags` injected methods
- `[rds]` Fixed incorrect type annotations for `Client.generate_db_auth_token`
- `[s3]` Some injected methods were incorrectly marked as `kwargs`-only
- `[dynamodb]` Incorrect `BuiltConditionExpression` annotation (reported by tibbe in 190)
- `[aioboto3]` Added missing types to `__init__.py`