-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: ritofactory/powertools-lambda-python
base: develop
head repository: aws-powertools/powertools-lambda-python
compare: develop
- 9 commits
- 76 files changed
- 4 contributors
Commits on Aug 28, 2026
-
chore(deps): bump mkdocs-material from 9.7.6 to 9.7.7 (aws-powertools…
…#8394) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.7.6 to 9.7.7. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](squidfunk/mkdocs-material@9.7.6...9.7.7) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.7.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for bc63354 - Browse repository at this point
Copy the full SHA bc63354View commit details -
chore(deps): bump valkey-glide from 2.5.0 to 2.5.1 (aws-powertools#8396)
Bumps [valkey-glide](https://github.com/valkey-io/valkey-glide) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/valkey-io/valkey-glide/releases) - [Changelog](https://github.com/valkey-io/valkey-glide/blob/main/CHANGELOG.md) - [Commits](valkey-io/valkey-glide@v2.5.0...v2.5.1) --- updated-dependencies: - dependency-name: valkey-glide dependency-version: 2.5.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for bb51178 - Browse repository at this point
Copy the full SHA bb51178View commit details -
chore(deps-dev): bump aws-cdk from 2.1135.1 to 2.1136.0 in the aws-cd…
…k group (aws-powertools#8392) chore(deps-dev): bump aws-cdk in the aws-cdk group Bumps the aws-cdk group with 1 update: [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk). Updates `aws-cdk` from 2.1135.1 to 2.1136.0 - [Release notes](https://github.com/aws/aws-cdk-cli/releases) - [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1136.0/packages/aws-cdk) --- updated-dependencies: - dependency-name: aws-cdk dependency-version: 2.1136.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: aws-cdk ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for cdab6db - Browse repository at this point
Copy the full SHA cdab6dbView commit details -
chore(deps): bump the github-actions group across 1 directory with 3 …
…updates (aws-powertools#8401) Bumps the github-actions group with 3 updates in the / directory: [github/codeql-action/upload-sarif](https://github.com/github/codeql-action), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) and [zgosalvez/github-actions-ensure-sha-pinned-actions](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions). Updates `github/codeql-action/upload-sarif` from 4.37.6 to 4.37.8 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@5595cca...db488dd) Updates `docker/setup-buildx-action` from 4.2.0 to 4.3.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](docker/setup-buildx-action@bb05f3f...37fe631) Updates `zgosalvez/github-actions-ensure-sha-pinned-actions` from 5.0.6 to 5.0.7 - [Release notes](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/releases) - [Commits](zgosalvez/github-actions-ensure-sha-pinned-actions@46cfe80...c5fc58b) --- updated-dependencies: - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.37.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: docker/setup-buildx-action dependency-version: 4.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: zgosalvez/github-actions-ensure-sha-pinned-actions dependency-version: 5.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for f8867f0 - Browse repository at this point
Copy the full SHA f8867f0View commit details -
chore(deps-dev): bump aws-cdk-aws-lambda-python-alpha from 2.259.0a0 …
…to 2.266.0a0 (aws-powertools#8395) chore(deps-dev): bump aws-cdk-aws-lambda-python-alpha Bumps [aws-cdk-aws-lambda-python-alpha](https://github.com/aws/aws-cdk) from 2.259.0a0 to 2.266.0a0. - [Release notes](https://github.com/aws/aws-cdk/releases) - [Changelog](https://github.com/aws/aws-cdk/blob/main/CHANGELOG.v2.alpha.md) - [Commits](https://github.com/aws/aws-cdk/commits) --- updated-dependencies: - dependency-name: aws-cdk-aws-lambda-python-alpha dependency-version: 2.265.0a0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for 937f0fe - Browse repository at this point
Copy the full SHA 937f0feView commit details -
chore(deps-dev): bump the dev-dependencies group across 1 directory w…
…ith 5 updates (aws-powertools#8407) * chore(deps-dev): bump the dev-dependencies group across 1 directory with 5 updates Bumps the dev-dependencies group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [coverage](https://github.com/coveragepy/coveragepy) | `7.14.3` | `7.15.4` | | [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` | | [mypy](https://github.com/python/mypy) | `2.1.0` | `2.3.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.19` | `0.16.4` | | [pytest-socket](https://github.com/miketheman/pytest-socket) | `0.8.0` | `0.8.1` | Updates `coverage` from 7.14.3 to 7.15.4 - [Release notes](https://github.com/coveragepy/coveragepy/releases) - [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst) - [Commits](coveragepy/coveragepy@7.14.3...7.15.4) Updates `pytest-benchmark` from 5.2.3 to 5.3.0 - [Release notes](https://github.com/ionelmc/pytest-benchmark/releases) - [Changelog](https://github.com/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst) - [Commits](ionelmc/pytest-benchmark@v5.2.3...v5.3.0) Updates `mypy` from 2.1.0 to 2.3.1 - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](python/mypy@v2.1.0...v2.3.1) Updates `ruff` from 0.15.19 to 0.16.4 - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.15.19...0.16.4) Updates `pytest-socket` from 0.8.0 to 0.8.1 - [Release notes](https://github.com/miketheman/pytest-socket/releases) - [Changelog](https://github.com/miketheman/pytest-socket/blob/main/CHANGELOG.md) - [Commits](miketheman/pytest-socket@0.8.0...0.8.1) --- updated-dependencies: - dependency-name: coverage dependency-version: 7.15.4 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: mypy dependency-version: 2.3.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: pytest-benchmark dependency-version: 5.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: pytest-socket dependency-version: 0.8.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: ruff dependency-version: 0.16.4 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * chore: ignore new Ruff positional argument rule --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Leandro <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for f704837 - Browse repository at this point
Copy the full SHA f704837View commit details -
fix(idempotency): is_missing_idempotency_key iterates dict keys inste…
…ad of values (aws-powertools#8391) * fix(idempotency): is_missing_idempotency_key iterates dict keys instead of values is_missing_idempotency_key iterated `data` directly for dict input, which walks its keys, not its values. For a dict whose values are all None but whose keys are ordinary non-None strings -- exactly what a JMESPath multi-select expression like '{user: headers.user_id, order: body.order_id}' produces when the referenced event fields are absent -- this returns False ("not missing") when it should return True. With raise_on_no_idempotency_key=True, the safety check that's supposed to raise IdempotencyKeyError in this situation silently doesn't fire. With the default False, no warning is emitted and the persistence layer hashes the all-None dict into a real idempotency key, so unrelated invocations that both fail to populate those fields collapse onto the same idempotency key and get incorrectly deduplicated against each other. The existing test only covered a dict of {None: None} (None as the key), which happens to still pass under the old key-iterating behavior and so never caught this. Iterate data.values() for dict input instead, and add a test covering the realistic non-None-keys/all-None-values case. * test(idempotency): cover missing dictionary keys --------- Co-authored-by: Leandro <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for a8df37d - Browse repository at this point
Copy the full SHA a8df37dView commit details -
refactor(typing): use PEP 604 syntax for Optional annotations (UP045) (…
…aws-powertools#8399) * refactor(typing): use PEP 604 syntax for Optional annotations (UP045) Convert Optional[X] to X | None across the codebase and remove the temporary UP045 ignore from ruff.toml, so the fix and the removal of the ignore land together. 283 of the 285 violations were handled by the ruff autofix. The two remaining cases in utilities/batch/types.py are runtime assignments rather than annotations, so they were converted by hand and verified to compare equal to their previous definitions. Union is left in place, since it belongs to UP007. * fix(typing): use Any instead of the builtin any in e2e data fetcher annotations Optional[any] was tolerated because typing never validated its argument, so the lowercase any went unnoticed. Once converted to any | None the expression is evaluated at import time, and neither module has the future annotations import, so importing them raised TypeError. Also updates the matching docstring line in logs.py. These modules are never imported by the test suite, since make test runs with --ignore tests/e2e, which is why this was not caught locally. --------- Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for 78fdd32 - Browse repository at this point
Copy the full SHA 78fdd32View commit details -
fix(idempotency): Redis persistence layer reclaims live in-progress r…
…ecords as orphans, allowing concurrent double-execution (aws-powertools#8387) * fix(idempotency): Redis persistence layer reclaims live in-progress records as orphans, allowing concurrent double-execution RedisCachePersistenceLayer._put_in_progress_record() only guarded against a competing invocation when the existing record's in_progress_expiry_timestamp was set AND still in the future. When that field is None -- which is the normal case for idempotent_function, since it never calls config.register_lambda_context(), unlike the idempotent() handler decorator -- the guard was skipped entirely and a genuinely still-running invocation's record fell through to the "orphan record" branch, which unconditionally overwrites the record with no NX guard. A second concurrent invocation with the same idempotency key would then proceed to execute the underlying function too, defeating idempotency (e.g. double-charging a customer). This is exactly what persistence/base.py's own warning at that call site flags ("Couldn't determine the remaining time left. Did you call register_lambda_context on IdempotencyConfig?") -- it warns, but nothing downstream actually failed closed on it. The DynamoDB persistence layer does not have this gap: its conditional expression requires attribute_exists(#in_progress_expiry) before allowing an expired-in-progress reclaim, so a missing attribute correctly blocks the competing writer instead of granting a reclaim. Fix: when status is INPROGRESS and in_progress_expiry_timestamp is None, treat the record as still in progress (fail closed) instead of falling through to the orphan-reclaim path, mirroring the DynamoDB layer's behavior. * test(idempotency): cover concurrent cache execution --------- Co-authored-by: Leandro <lcdama@amazon.pt>
Configuration menu - View commit details
-
Copy full SHA for a39e101 - Browse repository at this point
Copy the full SHA a39e101View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff develop...develop