Skip to content

Commit 0d7c4de

Browse files
Merge branch 'develop' into refactor/migrate-callable-event-handler
2 parents a010753 + acb4ee7 commit 0d7c4de

File tree

107 files changed

+374
-137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+374
-137
lines changed

CHANGELOG.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,53 @@
44
<a name="unreleased"></a>
55
# Unreleased
66

7+
## Code Refactoring
8+
9+
* **batch:** use standard collections for types ([#6475](https://github.com/aws-powertools/powertools-lambda-python/issues/6475))
10+
* **logger:** use standard collections for types ([#6471](https://github.com/aws-powertools/powertools-lambda-python/issues/6471))
11+
* **metrics:** use standard collections for types ([#6472](https://github.com/aws-powertools/powertools-lambda-python/issues/6472))
12+
* **tracer:** use standard collections for types ([#6473](https://github.com/aws-powertools/powertools-lambda-python/issues/6473))
13+
714
## Documentation
815

916
* **bedrock:** fix BedrockServiceRole in template.yaml ([#6436](https://github.com/aws-powertools/powertools-lambda-python/issues/6436))
17+
* **bedrock_agents:** remove Pydantic v1 recommendation ([#6468](https://github.com/aws-powertools/powertools-lambda-python/issues/6468))
1018

1119
## Features
1220

1321
* **data-masking:** add support for Pydantic models, dataclasses, and standard classes ([#6413](https://github.com/aws-powertools/powertools-lambda-python/issues/6413))
22+
* **event_handler:** add extras HTTP Error Code Exceptions ([#6454](https://github.com/aws-powertools/powertools-lambda-python/issues/6454))
1423
* **event_handler:** add route-level custom response validation in OpenAPI utility ([#6341](https://github.com/aws-powertools/powertools-lambda-python/issues/6341))
24+
* **logger:** add support for exception notes ([#6465](https://github.com/aws-powertools/powertools-lambda-python/issues/6465))
1525

1626
## Maintenance
1727

28+
* **ci:** new pre-release 3.10.1a4 ([#6463](https://github.com/aws-powertools/powertools-lambda-python/issues/6463))
29+
* **ci:** new pre-release 3.10.1a0 ([#6431](https://github.com/aws-powertools/powertools-lambda-python/issues/6431))
1830
* **ci:** new pre-release 3.10.1a1 ([#6437](https://github.com/aws-powertools/powertools-lambda-python/issues/6437))
1931
* **ci:** new pre-release 3.10.1a2 ([#6446](https://github.com/aws-powertools/powertools-lambda-python/issues/6446))
2032
* **ci:** new pre-release 3.10.1a3 ([#6455](https://github.com/aws-powertools/powertools-lambda-python/issues/6455))
21-
* **ci:** new pre-release 3.10.1a0 ([#6431](https://github.com/aws-powertools/powertools-lambda-python/issues/6431))
22-
* **deps:** bump typing-extensions from 4.13.1 to 4.13.2 ([#6451](https://github.com/aws-powertools/powertools-lambda-python/issues/6451))
23-
* **deps:** bump actions/setup-node from 4.3.0 to 4.4.0 ([#6457](https://github.com/aws-powertools/powertools-lambda-python/issues/6457))
33+
* **ci:** new pre-release 3.10.1a5 ([#6498](https://github.com/aws-powertools/powertools-lambda-python/issues/6498))
2434
* **deps:** bump codecov/codecov-action from 5.4.0 to 5.4.2 ([#6458](https://github.com/aws-powertools/powertools-lambda-python/issues/6458))
35+
* **deps:** bump typing-extensions from 4.13.1 to 4.13.2 ([#6451](https://github.com/aws-powertools/powertools-lambda-python/issues/6451))
2536
* **deps:** bump pydantic from 2.11.2 to 2.11.3 ([#6427](https://github.com/aws-powertools/powertools-lambda-python/issues/6427))
26-
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.188.0a0 to 2.189.0a0 ([#6444](https://github.com/aws-powertools/powertools-lambda-python/issues/6444))
27-
* **deps-dev:** bump cfn-lint from 1.33.0 to 1.33.1 ([#6442](https://github.com/aws-powertools/powertools-lambda-python/issues/6442))
37+
* **deps:** bump actions/setup-node from 4.3.0 to 4.4.0 ([#6457](https://github.com/aws-powertools/powertools-lambda-python/issues/6457))
38+
* **deps-dev:** bump boto3-stubs from 1.37.33 to 1.37.34 ([#6459](https://github.com/aws-powertools/powertools-lambda-python/issues/6459))
2839
* **deps-dev:** bump aws-cdk-lib from 2.188.0 to 2.189.0 ([#6445](https://github.com/aws-powertools/powertools-lambda-python/issues/6445))
40+
* **deps-dev:** bump cfn-lint from 1.33.0 to 1.33.1 ([#6442](https://github.com/aws-powertools/powertools-lambda-python/issues/6442))
41+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.188.0a0 to 2.189.0a0 ([#6444](https://github.com/aws-powertools/powertools-lambda-python/issues/6444))
42+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.301 to 0.1.302 ([#6460](https://github.com/aws-powertools/powertools-lambda-python/issues/6460))
2943
* **deps-dev:** bump ruff from 0.11.4 to 0.11.5 ([#6443](https://github.com/aws-powertools/powertools-lambda-python/issues/6443))
30-
* **deps-dev:** bump boto3-stubs from 1.37.31 to 1.37.33 ([#6449](https://github.com/aws-powertools/powertools-lambda-python/issues/6449))
31-
* **deps-dev:** bump cfn-lint from 1.33.1 to 1.33.2 ([#6450](https://github.com/aws-powertools/powertools-lambda-python/issues/6450))
44+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.189.0a0 to 2.189.1a0 ([#6462](https://github.com/aws-powertools/powertools-lambda-python/issues/6462))
3245
* **deps-dev:** bump boto3-stubs from 1.37.29 to 1.37.31 ([#6433](https://github.com/aws-powertools/powertools-lambda-python/issues/6433))
3346
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.187.0a0 to 2.188.0a0 ([#6434](https://github.com/aws-powertools/powertools-lambda-python/issues/6434))
3447
* **deps-dev:** bump ruff from 0.11.3 to 0.11.4 ([#6428](https://github.com/aws-powertools/powertools-lambda-python/issues/6428))
3548
* **deps-dev:** bump pytest-cov from 6.1.0 to 6.1.1 ([#6429](https://github.com/aws-powertools/powertools-lambda-python/issues/6429))
3649
* **deps-dev:** bump cfn-lint from 1.32.4 to 1.33.0 ([#6430](https://github.com/aws-powertools/powertools-lambda-python/issues/6430))
37-
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.301 to 0.1.302 ([#6460](https://github.com/aws-powertools/powertools-lambda-python/issues/6460))
38-
* **deps-dev:** bump boto3-stubs from 1.37.33 to 1.37.34 ([#6459](https://github.com/aws-powertools/powertools-lambda-python/issues/6459))
39-
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.189.0a0 to 2.189.1a0 ([#6462](https://github.com/aws-powertools/powertools-lambda-python/issues/6462))
50+
* **deps-dev:** bump cfn-lint from 1.33.1 to 1.33.2 ([#6450](https://github.com/aws-powertools/powertools-lambda-python/issues/6450))
4051
* **deps-dev:** bump aws-cdk-lib from 2.189.0 to 2.189.1 ([#6461](https://github.com/aws-powertools/powertools-lambda-python/issues/6461))
52+
* **deps-dev:** bump sentry-sdk from 2.25.1 to 2.26.1 ([#6477](https://github.com/aws-powertools/powertools-lambda-python/issues/6477))
53+
* **deps-dev:** bump boto3-stubs from 1.37.31 to 1.37.33 ([#6449](https://github.com/aws-powertools/powertools-lambda-python/issues/6449))
4154

4255

4356
<a name="v3.10.0"></a>

aws_lambda_powertools/middleware_factory/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
[`Middleware Factory`](../utilities/middleware_factory.md)
44
"""
55

6-
from .factory import lambda_handler_decorator
6+
from aws_lambda_powertools.middleware_factory.factory import lambda_handler_decorator
77

88
__all__ = ["lambda_handler_decorator"]

aws_lambda_powertools/middleware_factory/factory.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import inspect
55
import logging
66
import os
7-
from typing import Any, Callable
7+
from typing import TYPE_CHECKING, Any
88

99
from aws_lambda_powertools.middleware_factory.exceptions import MiddlewareInvalidArgumentError
1010
from aws_lambda_powertools.shared import constants
@@ -13,6 +13,9 @@
1313

1414
logger = logging.getLogger(__name__)
1515

16+
if TYPE_CHECKING:
17+
from collections.abc import Callable
18+
1619

1720
# Maintenance: we can't yet provide an accurate return type without ParamSpec etc. see #1066
1821
def lambda_handler_decorator(decorator: Callable | None = None, trace_execution: bool | None = None) -> Callable:

aws_lambda_powertools/shared/dynamodb_deserializer.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
from __future__ import annotations
22

33
from decimal import Clamped, Context, Decimal, Inexact, Overflow, Rounded, Underflow
4-
from typing import Any, Callable, Sequence
4+
from typing import TYPE_CHECKING, Any
5+
6+
if TYPE_CHECKING:
7+
from collections.abc import Callable, Sequence
58

69
# NOTE: DynamoDB supports up to 38 digits precision
710
# Therefore, this ensures our Decimal follows what's stored in the table

aws_lambda_powertools/shared/functions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
import warnings
99
from binascii import Error as BinAsciiError
1010
from pathlib import Path
11-
from typing import Any, Generator, overload
11+
from typing import TYPE_CHECKING, Any, overload
1212

1313
from aws_lambda_powertools.shared import constants
1414

15+
if TYPE_CHECKING:
16+
from collections.abc import Generator
17+
1518
logger = logging.getLogger(__name__)
1619

1720

aws_lambda_powertools/shared/types.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
from typing import Any, Callable, TypeVar
1+
from collections.abc import Callable
2+
from typing import Any, TypeVar
23

3-
AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any]) # noqa: VNE001
4+
AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any])
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Exposes version constant to avoid circular dependencies."""
22

3-
VERSION = "3.10.1a4"
3+
VERSION = "3.10.1a5"

aws_lambda_powertools/utilities/data_classes/active_mq_event.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
from __future__ import annotations
22

33
from functools import cached_property
4-
from typing import Any, Iterator
4+
from typing import TYPE_CHECKING, Any
55

66
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
77
from aws_lambda_powertools.utilities.data_classes.shared_functions import base64_decode
88

9+
if TYPE_CHECKING:
10+
from collections.abc import Iterator
11+
912

1013
class ActiveMQMessage(DictWrapper):
1114
@property

aws_lambda_powertools/utilities/data_classes/common.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99
import base64
1010
import json
1111
import warnings
12+
from collections.abc import Mapping
1213
from functools import cached_property
13-
from typing import TYPE_CHECKING, Any, Callable, Iterator, Mapping, overload
14+
from typing import TYPE_CHECKING, Any, overload
1415

1516
from typing_extensions import deprecated
1617

1718
from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning
1819

1920
if TYPE_CHECKING:
21+
from collections.abc import Callable, Iterator
22+
2023
from aws_lambda_powertools.shared.headers_serializer import BaseHeadersSerializer
2124

2225
from aws_lambda_powertools.utilities.data_classes.shared_functions import (

aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
from enum import Enum
44
from functools import cached_property
5-
from typing import Any, Iterator
5+
from typing import TYPE_CHECKING, Any
66

77
from aws_lambda_powertools.shared.dynamodb_deserializer import TypeDeserializer
88
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
99

10+
if TYPE_CHECKING:
11+
from collections.abc import Iterator
12+
1013

1114
class StreamViewType(Enum):
1215
"""The type of data from the modified DynamoDB item that was captured in this stream record"""

0 commit comments

Comments
 (0)