Skip to content

Commit a6c7a34

Browse files
authored
Merge branch 'develop' into nested_event_sources
2 parents 02935e0 + 1e7b3ab commit a6c7a34

File tree

16 files changed

+207
-91
lines changed

16 files changed

+207
-91
lines changed

CHANGELOG.md

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
## Bug Fixes
88

9+
* **docs:** clarified usage of validation with fine grained responses ([#4101](https://github.com/aws-powertools/powertools-lambda-python/issues/4101))
910
* **event_source:** fix typo in physicalname attribute for AmazonMQ events ([#4053](https://github.com/aws-powertools/powertools-lambda-python/issues/4053))
11+
* **typing:** improve overloads to ensure the return type follows the default_value type ([#4114](https://github.com/aws-powertools/powertools-lambda-python/issues/4114))
1012

1113
## Documentation
1214

@@ -15,36 +17,59 @@
1517
## Features
1618

1719
* **Idempotency:** add feature for manipulating idempotent responses ([#4037](https://github.com/aws-powertools/powertools-lambda-python/issues/4037))
20+
* **logger:** add method to return currently configured keys ([#4033](https://github.com/aws-powertools/powertools-lambda-python/issues/4033))
1821

1922
## Maintenance
2023

21-
* **ci:** add monthly roadmap reminder workflow ([#4075](https://github.com/aws-powertools/powertools-lambda-python/issues/4075))
2224
* **ci:** prevent deprecated custom runner from being used ([#4061](https://github.com/aws-powertools/powertools-lambda-python/issues/4061))
25+
* **ci:** add monthly roadmap reminder workflow ([#4075](https://github.com/aws-powertools/powertools-lambda-python/issues/4075))
26+
* **deps:** bump zgosalvez/github-actions-ensure-sha-pinned-actions from 3.0.3 to 3.0.4 ([#4099](https://github.com/aws-powertools/powertools-lambda-python/issues/4099))
27+
* **deps:** bump squidfunk/mkdocs-material from `065f3af` to `6b124e1` in /docs ([#4055](https://github.com/aws-powertools/powertools-lambda-python/issues/4055))
28+
* **deps:** bump squidfunk/mkdocs-material from `3307665` to `065f3af` in /docs ([#4052](https://github.com/aws-powertools/powertools-lambda-python/issues/4052))
29+
* **deps:** bump codecov/codecov-action from 4.2.0 to 4.3.0 ([#4098](https://github.com/aws-powertools/powertools-lambda-python/issues/4098))
2330
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 1 update ([#4066](https://github.com/aws-powertools/powertools-lambda-python/issues/4066))
2431
* **deps:** bump pydantic from 1.10.14 to 1.10.15 ([#4064](https://github.com/aws-powertools/powertools-lambda-python/issues/4064))
25-
* **deps:** bump golang.org/x/sync from 0.6.0 to 0.7.0 in /layer/scripts/layer-balancer in the layer-balancer group ([#4071](https://github.com/aws-powertools/powertools-lambda-python/issues/4071))
32+
* **deps:** bump datadog-lambda from 5.91.0 to 5.92.0 ([#4038](https://github.com/aws-powertools/powertools-lambda-python/issues/4038))
33+
* **deps:** bump docker/setup-buildx-action from 3.2.0 to 3.3.0 ([#4091](https://github.com/aws-powertools/powertools-lambda-python/issues/4091))
2634
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#4042](https://github.com/aws-powertools/powertools-lambda-python/issues/4042))
35+
* **deps:** bump golang.org/x/sync from 0.6.0 to 0.7.0 in /layer/scripts/layer-balancer in the layer-balancer group ([#4071](https://github.com/aws-powertools/powertools-lambda-python/issues/4071))
36+
* **deps:** bump idna from 3.6 to 3.7 ([#4121](https://github.com/aws-powertools/powertools-lambda-python/issues/4121))
37+
* **deps:** bump typing-extensions from 4.10.0 to 4.11.0 ([#4080](https://github.com/aws-powertools/powertools-lambda-python/issues/4080))
2738
* **deps:** bump codecov/codecov-action from 4.1.1 to 4.2.0 ([#4072](https://github.com/aws-powertools/powertools-lambda-python/issues/4072))
28-
* **deps:** bump squidfunk/mkdocs-material from `3307665` to `065f3af` in /docs ([#4052](https://github.com/aws-powertools/powertools-lambda-python/issues/4052))
29-
* **deps:** bump squidfunk/mkdocs-material from `065f3af` to `6b124e1` in /docs ([#4055](https://github.com/aws-powertools/powertools-lambda-python/issues/4055))
30-
* **deps:** bump datadog-lambda from 5.91.0 to 5.92.0 ([#4038](https://github.com/aws-powertools/powertools-lambda-python/issues/4038))
3139
* **deps:** bump github.com/aws/aws-sdk-go-v2/config from 1.27.10 to 1.27.11 in /layer/scripts/layer-balancer in the layer-balancer group ([#4079](https://github.com/aws-powertools/powertools-lambda-python/issues/4079))
40+
* **deps-dev:** bump sentry-sdk from 1.44.0 to 1.44.1 ([#4065](https://github.com/aws-powertools/powertools-lambda-python/issues/4065))
41+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.106 to 0.1.107 ([#4082](https://github.com/aws-powertools/powertools-lambda-python/issues/4082))
42+
* **deps-dev:** bump cfn-lint from 0.86.1 to 0.86.2 ([#4081](https://github.com/aws-powertools/powertools-lambda-python/issues/4081))
43+
* **deps-dev:** bump aws-cdk-lib from 2.135.0 to 2.136.0 ([#4092](https://github.com/aws-powertools/powertools-lambda-python/issues/4092))
44+
* **deps-dev:** bump aws-cdk from 2.135.0 to 2.136.0 ([#4090](https://github.com/aws-powertools/powertools-lambda-python/issues/4090))
45+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.134.0a0 to 2.135.0a0 ([#4063](https://github.com/aws-powertools/powertools-lambda-python/issues/4063))
46+
* **deps-dev:** bump types-redis from 4.6.0.20240311 to 4.6.0.20240409 ([#4094](https://github.com/aws-powertools/powertools-lambda-python/issues/4094))
47+
* **deps-dev:** bump the boto-typing group with 2 updates ([#4062](https://github.com/aws-powertools/powertools-lambda-python/issues/4062))
48+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.135.0a0 to 2.136.0a0 ([#4095](https://github.com/aws-powertools/powertools-lambda-python/issues/4095))
49+
* **deps-dev:** bump filelock from 3.13.3 to 3.13.4 ([#4096](https://github.com/aws-powertools/powertools-lambda-python/issues/4096))
50+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.107 to 0.1.110 ([#4097](https://github.com/aws-powertools/powertools-lambda-python/issues/4097))
51+
* **deps-dev:** bump aws-cdk from 2.134.0 to 2.135.0 ([#4058](https://github.com/aws-powertools/powertools-lambda-python/issues/4058))
52+
* **deps-dev:** bump aws-cdk-lib from 2.134.0 to 2.135.0 ([#4057](https://github.com/aws-powertools/powertools-lambda-python/issues/4057))
53+
* **deps-dev:** bump mkdocs-material from 9.5.16 to 9.5.17 ([#4056](https://github.com/aws-powertools/powertools-lambda-python/issues/4056))
54+
* **deps-dev:** bump aws-cdk from 2.136.0 to 2.136.1 ([#4106](https://github.com/aws-powertools/powertools-lambda-python/issues/4106))
55+
* **deps-dev:** bump aws-cdk-lib from 2.136.0 to 2.136.1 ([#4107](https://github.com/aws-powertools/powertools-lambda-python/issues/4107))
56+
* **deps-dev:** bump ruff from 0.3.4 to 0.3.5 ([#4049](https://github.com/aws-powertools/powertools-lambda-python/issues/4049))
3257
* **deps-dev:** bump mkdocs-material from 9.5.15 to 9.5.16 ([#4050](https://github.com/aws-powertools/powertools-lambda-python/issues/4050))
3358
* **deps-dev:** bump the boto-typing group with 1 update ([#4047](https://github.com/aws-powertools/powertools-lambda-python/issues/4047))
34-
* **deps-dev:** bump mkdocs-material from 9.5.16 to 9.5.17 ([#4056](https://github.com/aws-powertools/powertools-lambda-python/issues/4056))
59+
* **deps-dev:** bump sentry-sdk from 1.44.1 to 1.45.0 ([#4108](https://github.com/aws-powertools/powertools-lambda-python/issues/4108))
3560
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.105 to 0.1.106 ([#4048](https://github.com/aws-powertools/powertools-lambda-python/issues/4048))
36-
* **deps-dev:** bump aws-cdk-lib from 2.134.0 to 2.135.0 ([#4057](https://github.com/aws-powertools/powertools-lambda-python/issues/4057))
37-
* **deps-dev:** bump aws-cdk from 2.134.0 to 2.135.0 ([#4058](https://github.com/aws-powertools/powertools-lambda-python/issues/4058))
61+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.110 to 0.1.112 ([#4109](https://github.com/aws-powertools/powertools-lambda-python/issues/4109))
62+
* **deps-dev:** bump aws-cdk from 2.136.1 to 2.137.0 ([#4115](https://github.com/aws-powertools/powertools-lambda-python/issues/4115))
3863
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.133.0a0 to 2.134.0a0 ([#4039](https://github.com/aws-powertools/powertools-lambda-python/issues/4039))
3964
* **deps-dev:** bump sentry-sdk from 1.43.0 to 1.44.0 ([#4040](https://github.com/aws-powertools/powertools-lambda-python/issues/4040))
40-
* **deps-dev:** bump the boto-typing group with 2 updates ([#4062](https://github.com/aws-powertools/powertools-lambda-python/issues/4062))
41-
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.134.0a0 to 2.135.0a0 ([#4063](https://github.com/aws-powertools/powertools-lambda-python/issues/4063))
65+
* **deps-dev:** bump mypy-boto3-cloudwatch from 1.34.75 to 1.34.83 in the boto-typing group ([#4116](https://github.com/aws-powertools/powertools-lambda-python/issues/4116))
66+
* **deps-dev:** bump ruff from 0.3.5 to 0.3.7 ([#4123](https://github.com/aws-powertools/powertools-lambda-python/issues/4123))
4267
* **deps-dev:** bump aws-cdk-lib from 2.133.0 to 2.134.0 ([#4031](https://github.com/aws-powertools/powertools-lambda-python/issues/4031))
4368
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.104 to 0.1.105 ([#4030](https://github.com/aws-powertools/powertools-lambda-python/issues/4030))
4469
* **deps-dev:** bump aws-cdk from 2.133.0 to 2.134.0 ([#4032](https://github.com/aws-powertools/powertools-lambda-python/issues/4032))
4570
* **deps-dev:** bump the boto-typing group with 1 update ([#4029](https://github.com/aws-powertools/powertools-lambda-python/issues/4029))
46-
* **deps-dev:** bump sentry-sdk from 1.44.0 to 1.44.1 ([#4065](https://github.com/aws-powertools/powertools-lambda-python/issues/4065))
47-
* **deps-dev:** bump ruff from 0.3.4 to 0.3.5 ([#4049](https://github.com/aws-powertools/powertools-lambda-python/issues/4049))
71+
* **deps-dev:** bump aws-cdk-lib from 2.136.1 to 2.137.0 ([#4119](https://github.com/aws-powertools/powertools-lambda-python/issues/4119))
72+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.136.0a0 to 2.137.0a0 ([#4124](https://github.com/aws-powertools/powertools-lambda-python/issues/4124))
4873

4974

5075
<a name="v2.36.0"></a>

aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -167,22 +167,22 @@ def get_header_value(
167167
self,
168168
name: str,
169169
default_value: str,
170-
case_sensitive: Optional[bool] = False,
170+
case_sensitive: bool = False,
171171
) -> str: ...
172172

173173
@overload
174174
def get_header_value(
175175
self,
176176
name: str,
177177
default_value: Optional[str] = None,
178-
case_sensitive: Optional[bool] = False,
178+
case_sensitive: bool = False,
179179
) -> Optional[str]: ...
180180

181181
def get_header_value(
182182
self,
183183
name: str,
184184
default_value: Optional[str] = None,
185-
case_sensitive: Optional[bool] = False,
185+
case_sensitive: bool = False,
186186
) -> Optional[str]:
187187
"""Get header value by name
188188
@@ -291,14 +291,14 @@ def get_header_value(
291291
self,
292292
name: str,
293293
default_value: Optional[str] = None,
294-
case_sensitive: Optional[bool] = False,
294+
case_sensitive: bool = False,
295295
) -> Optional[str]: ...
296296

297297
def get_header_value(
298298
self,
299299
name: str,
300300
default_value: Optional[str] = None,
301-
case_sensitive: Optional[bool] = False,
301+
case_sensitive: bool = False,
302302
) -> Optional[str]:
303303
"""Get header value by name
304304

aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,22 +219,22 @@ def get_header_value(
219219
self,
220220
name: str,
221221
default_value: str,
222-
case_sensitive: Optional[bool] = False,
222+
case_sensitive: bool = False,
223223
) -> str: ...
224224

225225
@overload
226226
def get_header_value(
227227
self,
228228
name: str,
229229
default_value: Optional[str] = None,
230-
case_sensitive: Optional[bool] = False,
230+
case_sensitive: bool = False,
231231
) -> Optional[str]: ...
232232

233233
def get_header_value(
234234
self,
235235
name: str,
236236
default_value: Optional[str] = None,
237-
case_sensitive: Optional[bool] = False,
237+
case_sensitive: bool = False,
238238
) -> Optional[str]:
239239
"""Get header value by name
240240

aws_lambda_powertools/utilities/data_classes/common.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,22 +274,22 @@ def get_header_value(
274274
self,
275275
name: str,
276276
default_value: str,
277-
case_sensitive: Optional[bool] = False,
277+
case_sensitive: bool = False,
278278
) -> str: ...
279279

280280
@overload
281281
def get_header_value(
282282
self,
283283
name: str,
284284
default_value: Optional[str] = None,
285-
case_sensitive: Optional[bool] = False,
285+
case_sensitive: bool = False,
286286
) -> Optional[str]: ...
287287

288288
def get_header_value(
289289
self,
290290
name: str,
291291
default_value: Optional[str] = None,
292-
case_sensitive: Optional[bool] = False,
292+
case_sensitive: bool = False,
293293
) -> Optional[str]:
294294
"""Get header value by name
295295

aws_lambda_powertools/utilities/data_classes/s3_object_event.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,22 +78,22 @@ def get_header_value(
7878
self,
7979
name: str,
8080
default_value: str,
81-
case_sensitive: Optional[bool] = False,
81+
case_sensitive: bool = False,
8282
) -> str: ...
8383

8484
@overload
8585
def get_header_value(
8686
self,
8787
name: str,
8888
default_value: Optional[str] = None,
89-
case_sensitive: Optional[bool] = False,
89+
case_sensitive: bool = False,
9090
) -> Optional[str]: ...
9191

9292
def get_header_value(
9393
self,
9494
name: str,
9595
default_value: Optional[str] = None,
96-
case_sensitive: Optional[bool] = False,
96+
case_sensitive: bool = False,
9797
) -> Optional[str]:
9898
"""Get header value by name
9999

aws_lambda_powertools/utilities/data_classes/shared_functions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def get_header_value(
2626
headers: dict[str, Any],
2727
name: str,
2828
default_value: str,
29-
case_sensitive: bool | None = False,
29+
case_sensitive: bool = False,
3030
) -> str: ...
3131

3232

@@ -35,15 +35,15 @@ def get_header_value(
3535
headers: dict[str, Any],
3636
name: str,
3737
default_value: str | None = None,
38-
case_sensitive: bool | None = False,
38+
case_sensitive: bool = False,
3939
) -> str | None: ...
4040

4141

4242
def get_header_value(
4343
headers: dict[str, Any],
4444
name: str,
4545
default_value: str | None = None,
46-
case_sensitive: bool | None = False,
46+
case_sensitive: bool = False,
4747
) -> str | None:
4848
"""
4949
Get the value of a header by its name.

aws_lambda_powertools/utilities/data_classes/sqs_event.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ def message_deduplication_id(self) -> Optional[str]:
5555
the 5-minute deduplication interval."""
5656
return self.get("MessageDeduplicationId")
5757

58+
@property
59+
def dead_letter_queue_source_arn(self) -> Optional[str]:
60+
"""The SQS queue ARN that sent the record to this DLQ.
61+
Only present when a Lambda function is using a DLQ as an event source.
62+
"""
63+
return self.get("DeadLetterQueueSourceArn")
64+
5865

5966
class SQSMessageAttribute(DictWrapper):
6067
"""The user-specified message attribute value."""

aws_lambda_powertools/utilities/data_classes/vpc_lattice.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,22 +78,22 @@ def get_header_value(
7878
self,
7979
name: str,
8080
default_value: str,
81-
case_sensitive: Optional[bool] = False,
81+
case_sensitive: bool = False,
8282
) -> str: ...
8383

8484
@overload
8585
def get_header_value(
8686
self,
8787
name: str,
8888
default_value: Optional[str] = None,
89-
case_sensitive: Optional[bool] = False,
89+
case_sensitive: bool = False,
9090
) -> Optional[str]: ...
9191

9292
def get_header_value(
9393
self,
9494
name: str,
9595
default_value: Optional[str] = None,
96-
case_sensitive: Optional[bool] = False,
96+
case_sensitive: bool = False,
9797
) -> Optional[str]:
9898
"""Get header value by name
9999

aws_lambda_powertools/utilities/parser/models/sqs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class SqsAttributesModel(BaseModel):
1515
SentTimestamp: datetime
1616
SequenceNumber: Optional[str] = None
1717
AWSTraceHeader: Optional[str] = None
18+
DeadLetterQueueSourceArn: Optional[str] = None
1819

1920

2021
class SqsMsgAttributeModel(BaseModel):

docs/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# v9.1.18
2-
FROM squidfunk/mkdocs-material@sha256:6b124e13728a591607e0f087920763e405fc18861736a997896d0b253867a7b7
2+
FROM squidfunk/mkdocs-material@sha256:521644b58bc0c806083ef66e8b1027861bd3e98c433b251c436c5c0cc7733603
33
# pip-compile --generate-hashes --output-file=requirements.txt requirements.in
44
COPY requirements.txt /tmp/
55
RUN pip install --require-hashes -r /tmp/requirements.txt

docs/utilities/typing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Using `LambdaContext` typing makes it possible to access information and hints o
3838

3939
=== "working_with_context_function.py"
4040

41-
```python hl_lines="6 16 25 26"
41+
```python hl_lines="6 15 22 23"
4242
--8<-- "examples/typing/src/working_with_context_function.py"
4343
```
4444

0 commit comments

Comments
 (0)