Skip to content

MESH-2092 py dev (deps): Bump the major group with 3 updates#252

Merged
alexhawdon merged 2 commits into
developfrom
dependabot/pip/major-4e95da5d2a
Jun 9, 2026
Merged

MESH-2092 py dev (deps): Bump the major group with 3 updates#252
alexhawdon merged 2 commits into
developfrom
dependabot/pip/major-4e95da5d2a

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 9, 2026

Copy link
Copy Markdown
Contributor

Bumps the major group with 3 updates: aws-lambda-powertools, pytest-asyncio and zipp.

Updates aws-lambda-powertools from 2.43.1 to 3.29.0

Release notes

Sourced from aws-lambda-powertools's releases.

v3.29.0

Summary

We're thrilled to announce native async resolution for the Event Handler. Write async def route handlers, call await app.resolve_async(event, context), and mix sync/async middlewares. Everything runs natively on the event loop.

We also fixed OpenAPI schema generation for Pydantic @computed_field, a deadlock when sync middlewares raised before calling next(), and ALB returning 422 when response body is None.

A huge thanks to @​hirenkumar-n-dholariya, @​amrabed, and @​catarinacps for their contributions!

Async Event Handler with resolve_async()

Docs

You can now define async route handlers and resolve them without blocking the event loop.

Even though the Lambda handler itself is sync, you can use asyncio.run(app.resolve_async(event, context)) to fan out multiple I/O calls concurrently with asyncio.gather or call async libraries directly.

import asyncio
from aws_lambda_powertools.event_handler import APIGatewayHttpResolver
from aws_lambda_powertools.utilities.typing import LambdaContext
app = APIGatewayHttpResolver()
async def get_orders(user_id: str) -> list:
...
async def get_profile(user_id: str) -> dict:
...
@​app.get("/dashboard/<user_id>")
async def get_dashboard(user_id: str):
orders, profile = await asyncio.gather(
get_orders(user_id),
get_profile(user_id),
)
return {"orders": orders, "profile": profile}
def lambda_handler(event: dict, context: LambdaContext):
return asyncio.run(app.resolve_async(event, context))

Sync and async middlewares work together seamlessly. Sync middlewares are bridged to the event loop in a background thread, so you don't need to rewrite existing middleware to adopt async handlers.

OpenAPI computed_field support

Docs

... (truncated)

Changelog

Sourced from aws-lambda-powertools's changelog.

[v3.29.0] - 2026-05-04

Bug Fixes

  • event_handler: prevent deadlock when async middleware raises before calling next() (#8196)

Maintenance

  • version bump

[v3.28.0] - 2026-04-14

Bug Fixes

  • data_class: merge querystring parameters in ALB/APIGW classes (#8154)
  • event_handler: read swagger files with UTF-8 encoding (#8131)

Code Refactoring

  • event_handler: refactoring encoder file (#8126)
  • event_handler: refactoring proxy events (#8125)
  • event_handler: refactoring params to reduce code (#8124)
  • event_handler: extract OpenAPI schema generation from Route class (#8098)
  • event_handlers: remove unnecessary init methods (#8127)

Documentation

  • adding new Lambda features (#7917)
  • add openapi docs (#7939)

Features

  • event_handler: enrich request object (#8153)
  • event_handler: adding status_code OpenAPI field (#8130)
  • event_handler: add Dependency injection with Depends() (#8128)

Maintenance

  • version bump
  • bump dependabot dependencies. (#8152)
  • deps: bump cryptography from 46.0.6 to 46.0.7 (#8132)
  • deps-dev: bump aws-cdk from 2.1117.0 to 2.1118.0 in the aws-cdk group (#8142)
  • deps-dev: bump types-python-dateutil from 2.9.0.20260305 to 2.9.0.20260402 (#8114)
  • deps-dev: bump aws-cdk from 2.1115.0 to 2.1117.0 in the aws-cdk group (#8111)
  • deps-dev: bump boto3-stubs from 1.42.74 to 1.42.84 (#8115)
  • deps-dev: bump types-protobuf from 6.32.1.20260221 to 7.34.1.20260403 (#8117)
  • deps-dev: bump testcontainers from 4.14.1 to 4.14.2 (#8116)
  • deps-dev: bump cfn-lint from 1.46.0 to 1.48.1 (#8113)

... (truncated)

Upgrade guide

Sourced from aws-lambda-powertools's upgrade guide.


title: Upgrade guide description: Guide to update between major Powertools for AWS Lambda (Python) versions

End of support v2

!!! warning "On March 25st, 2025, Powertools for AWS Lambda (Python) v2 reached end of support and will no longer receive updates or releases. If you are still using v2, we strongly recommend you to read our upgrade guide and update to the latest version."

Given our commitment to all of our customers using Powertools for AWS Lambda (Python), we will keep Pypi{target="_blank"} v2 releases and documentation 2.x versions to prevent any disruption.

Migrate to v3 from v2

!!! info "We strongly encourage you to migrate to v3. However, if you still need to upgrade from v1 to v2, you can find the upgrade guide."

We've made minimal breaking changes to make your transition to v3 as smooth as possible.

Quick summary

Area Change Code change required
Pydantic We have removed support for Pydantic v1 No
Parser We have replaced DynamoDBStreamModel AttributeValue with native Python types Yes
Parser We no longer export Pydantic objects from parser.pydantic. Yes
Lambda layer Lambda layers are now compiled according to the specific Python version and architecture No
Event Handler We have deprecated the get_header_value function. Yes
Batch Processor @batch_processor and @async_batch_processor decorators are now deprecated Yes
Event Source Data Classes We have updated default values for optional fields. Yes
Parameters The default cache TTL is now set to 5 minutes No
Parameters The config parameter is deprecated in favor of boto_config Yes
JMESPath Functions The extract_data_from_envelope function is deprecated in favor of query Yes
Types file We have removed the type imports from the shared/types.py file Yes

First Steps

Before you start, we suggest making a copy of your current working project or create a new branch with git.

  1. Upgrade Python to at least v3.10.
  2. Ensure you have the latest version via Lambda Layer or PyPi{target="_blank"}.
  3. Review the following sections to confirm if you need to make changes to your code.

Drop support for Pydantic v1

!!! note "No code changes required"

As of June 30, 2024, Pydantic v1 has reached its end-of-life, and we have discontinued support for this version. We now exclusively support Pydantic v2.

Use Pydantic v2 Migration Guide{target="_blank"} to migrate your custom Pydantic models to v2.

... (truncated)

Commits
  • 245ac2d chore: version bump
  • f4644f7 fix(event_handler): prevent deadlock when async middleware raises before call...
  • 53678cf fix(event_handler): fix ALB resolver returns when response body is None (#8194)
  • 5b8ba36 chore: update aws-encryption-sdk allowed versions (#8191)
  • f83e141 chore(deps): update requests requirement from >=2.32.0 to >=2.33.1 in /exampl...
  • 10ffef1 feat(openapi): add compute_field support (#8188)
  • 08c9921 fix(idempotency): resolve tech debt issues with falsy responses and Redis per...
  • 0834363 chore(deps): batch dependency updates (#8184)
  • 1585b66 fix(parser): type hints should reflect primitive types support (#8175)
  • 2e11129 feat(event_handler): adding resolve async public API (#8171)
  • Additional commits viewable in compare view

Updates pytest-asyncio from 0.23.8 to 1.4.0

Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio v1.4.0

1.4.0 - 2026-05-26

Deprecated

  • Overriding the event_loop_policy fixture is deprecated. Use the pytest_asyncio_loop_factories hook instead. (#1419)

Added

  • Added the pytest_asyncio_loop_factories hook to parametrize asyncio tests with custom event loop factories.

    The hook returns a mapping of factory names to loop factories, and pytest.mark.asyncio(loop_factories=[...]) selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.

    Synchronous @pytest_asyncio.fixture functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via asyncio.run() or asyncio.set_event_loop(None)). (#1164)

Changed

  • Improved the readability of the warning message that is displayed when asyncio_default_fixture_loop_scope is unset (#1298)
  • Only import asyncio.AbstractEventLoopPolicy for type checking to avoid raising a DeprecationWarning. (#1394)
  • Updated minimum supported pytest version to v8.4.0. (#1397)

Fixed

  • Fixed a ResourceWarning: unclosed event loop warning that could occur when a synchronous test called asyncio.run() or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (#724)

Notes for Downstream Packagers

  • Added dependency on sphinx-tabs >= 3.5 to organize documentation examples into tabs. (#1395)

pytest-asyncio v1.4.0a2

1.4.0a2 - 2026-05-02

Deprecated

  • Overriding the event_loop_policy fixture is deprecated. Use the pytest_asyncio_loop_factories hook instead. (#1419)

Added

  • Added the pytest_asyncio_loop_factories hook to parametrize asyncio tests with custom event loop factories.

    The hook returns a mapping of factory names to loop factories, and pytest.mark.asyncio(loop_factories=[...]) selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.

    Synchronous @pytest_asyncio.fixture functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via asyncio.run() or asyncio.set_event_loop(None)). (#1164)

Changed

  • Improved the readability of the warning message that is displayed when asyncio_default_fixture_loop_scope is unset (#1298)
  • Only import asyncio.AbstractEventLoopPolicy for type checking to avoid raising a DeprecationWarning. (#1394)

... (truncated)

Commits
  • 6e14cd2 chore: Prepare release of v1.4.0.
  • 4b900fb Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1
  • ab9f632 Build(deps): Bump zipp from 3.23.1 to 4.1.0
  • a56fc77 Build(deps): Bump hypothesis from 6.152.6 to 6.152.8
  • e8bae9b Build(deps): Bump requests from 2.34.0 to 2.34.2
  • fc43340 Build(deps): Bump idna from 3.14 to 3.15
  • 762eaf5 Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0
  • b62e222 Build(deps): Bump click from 8.3.3 to 8.4.0
  • 9190447 Build(deps): Bump pydantic from 2.13.3 to 2.13.4
  • 82a393c ci: Remove unnecessary debug output.
  • Additional commits viewable in compare view

Updates zipp from 3.23.0 to 4.1.0

Changelog

Sourced from zipp's changelog.

v4.1.0

Features

  • Path.iterdir now raises NotADirectoryError (formerly ValueError) when call on something that's not a directory. (#154)

v4.0.0

Deprecations and Removals

  • Drop workaround for stacklevel bug on older PyPy releases. (#149)

v3.23.1

Bugfixes

  • str(Path(...)) now renders ":zipfile" for the filename when a zipfile has no filename instead of failing with a TypeError. (#134)
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the major group with 3 updates: [aws-lambda-powertools](https://github.com/aws-powertools/powertools-lambda-python), [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) and [zipp](https://github.com/jaraco/zipp).


Updates `aws-lambda-powertools` from 2.43.1 to 3.29.0
- [Release notes](https://github.com/aws-powertools/powertools-lambda-python/releases)
- [Changelog](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/CHANGELOG.md)
- [Upgrade guide](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/docs/upgrade.md)
- [Commits](aws-powertools/powertools-lambda-python@v2.43.1...v3.29.0)

Updates `pytest-asyncio` from 0.23.8 to 1.4.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v0.23.8...v1.4.0)

Updates `zipp` from 3.23.0 to 4.1.0
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](jaraco/zipp@v3.23.0...v4.1.0)

---
updated-dependencies:
- dependency-name: aws-lambda-powertools
  dependency-version: 3.29.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major
- dependency-name: pytest-asyncio
  dependency-version: 1.4.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major
- dependency-name: zipp
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Jun 9, 2026
@dependabot dependabot Bot requested review from a team, matt-mercer and ranisen as code owners June 9, 2026 15:56
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Jun 9, 2026
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

☂️ Code Coverage

current status: ✅

Overall Coverage

Statements Covered Coverage Threshold Status
627 560 89% 65% 🟢

New Files

No new covered files...

Modified Files

No covered modified files...

updated for commit: f379200 by action🐍

@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

@alexhawdon alexhawdon merged commit dcb7fef into develop Jun 9, 2026
9 checks passed
@alexhawdon alexhawdon deleted the dependabot/pip/major-4e95da5d2a branch June 9, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant