Skip to content

Commit be8b056

Browse files
Merge branch 'develop' into fix/1303-appsync-batch-invoke
2 parents a805ac3 + 51705b8 commit be8b056

File tree

23 files changed

+587
-491
lines changed

23 files changed

+587
-491
lines changed

.github/workflows/quality_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ jobs:
7171
- name: Complexity baseline
7272
run: make complexity-baseline
7373
- name: Upload coverage to Codecov
74-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # 4.0.1
74+
uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab # 4.1.0
7575
with:
7676
file: ./coverage.xml
7777
env_vars: PYTHON

CHANGELOG.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,37 @@
44
<a name="unreleased"></a>
55
# Unreleased
66

7+
## Maintenance
8+
9+
10+
11+
<a name="v2.34.2"></a>
12+
## [v2.34.2] - 2024-02-26
13+
## Bug Fixes
14+
15+
* **typing:** ensure return type is a str when default_value is set ([#3840](https://github.com/aws-powertools/powertools-lambda-python/issues/3840))
16+
717
## Documentation
818

919
* **install:** make minimum install the default option then extra ([#3834](https://github.com/aws-powertools/powertools-lambda-python/issues/3834))
1020

21+
## Features
22+
23+
* **event-source:** add function to get multi-value query string params by name ([#3846](https://github.com/aws-powertools/powertools-lambda-python/issues/3846))
24+
1125
## Maintenance
1226

27+
* version bump
28+
* **ci:** remove aws-encryption-sdk from Lambda layer due to cffi being tied to python version ([#3853](https://github.com/aws-powertools/powertools-lambda-python/issues/3853))
29+
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#3844](https://github.com/aws-powertools/powertools-lambda-python/issues/3844))
30+
* **deps:** bump cryptography from 42.0.2 to 42.0.4 ([#3827](https://github.com/aws-powertools/powertools-lambda-python/issues/3827))
31+
* **deps:** bump codecov/codecov-action from 4.0.1 to 4.0.2 ([#3842](https://github.com/aws-powertools/powertools-lambda-python/issues/3842))
32+
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#3835](https://github.com/aws-powertools/powertools-lambda-python/issues/3835))
33+
* **deps-dev:** bump httpx from 0.26.0 to 0.27.0 ([#3828](https://github.com/aws-powertools/powertools-lambda-python/issues/3828))
34+
* **deps-dev:** bump aws-cdk from 2.128.0 to 2.129.0 ([#3831](https://github.com/aws-powertools/powertools-lambda-python/issues/3831))
35+
* **deps-dev:** bump the boto-typing group with 1 update ([#3836](https://github.com/aws-powertools/powertools-lambda-python/issues/3836))
36+
* **deps-dev:** bump aws-cdk from 2.129.0 to 2.130.0 ([#3843](https://github.com/aws-powertools/powertools-lambda-python/issues/3843))
37+
* **deps-dev:** bump aws-cdk-lib from 2.128.0 to 2.130.0 ([#3838](https://github.com/aws-powertools/powertools-lambda-python/issues/3838))
1338

1439

1540
<a name="v2.34.1"></a>
@@ -4435,7 +4460,8 @@
44354460
* Merge pull request [#5](https://github.com/aws-powertools/powertools-lambda-python/issues/5) from jfuss/feat/python38
44364461

44374462

4438-
[Unreleased]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.34.1...HEAD
4463+
[Unreleased]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.34.2...HEAD
4464+
[v2.34.2]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.34.1...v2.34.2
44394465
[v2.34.1]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.34.0...v2.34.1
44404466
[v2.34.0]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.33.1...v2.34.0
44414467
[v2.33.1]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.33.0...v2.33.1

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ dev:
88
pip install --upgrade pip pre-commit poetry
99
poetry config --local virtualenvs.in-project true
1010
@$(MAKE) dev-version-plugin
11-
poetry install --extras "all redis"
11+
poetry install --extras "all redis datamasking"
1212
pre-commit install
1313

1414
dev-gitpod:
1515
pip install --upgrade pip poetry
1616
@$(MAKE) dev-version-plugin
17-
poetry install --extras "all redis"
17+
poetry install --extras "all redis datamasking"
1818
pre-commit install
1919

2020
format:
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 = "2.34.1"
3+
VERSION = "2.34.2"

aws_lambda_powertools/utilities/data_classes/alb_event.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ def request_context(self) -> ALBEventRequestContext:
3232
return ALBEventRequestContext(self._data)
3333

3434
@property
35-
def multi_value_query_string_parameters(self) -> Optional[Dict[str, List[str]]]:
36-
return self.get("multiValueQueryStringParameters")
35+
def multi_value_query_string_parameters(self) -> Dict[str, List[str]]:
36+
return self.get("multiValueQueryStringParameters") or {}
3737

3838
@property
3939
def resolved_query_string_parameters(self) -> Dict[str, List[str]]:

aws_lambda_powertools/utilities/data_classes/common.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from aws_lambda_powertools.shared.headers_serializer import BaseHeadersSerializer
88
from aws_lambda_powertools.utilities.data_classes.shared_functions import (
99
get_header_value,
10+
get_multi_value_query_string_values,
1011
get_query_string_value,
1112
)
1213

@@ -103,6 +104,10 @@ def headers(self) -> Dict[str, str]:
103104
def query_string_parameters(self) -> Optional[Dict[str, str]]:
104105
return self.get("queryStringParameters")
105106

107+
@property
108+
def multi_value_query_string_parameters(self) -> Dict[str, List[str]]:
109+
return self.get("multiValueQueryStringParameters") or {}
110+
106111
@property
107112
def resolved_query_string_parameters(self) -> Dict[str, List[str]]:
108113
"""
@@ -184,6 +189,31 @@ def get_query_string_value(self, name: str, default_value: Optional[str] = None)
184189
default_value=default_value,
185190
)
186191

192+
def get_multi_value_query_string_values(
193+
self,
194+
name: str,
195+
default_values: Optional[List[str]] = None,
196+
) ->List[str]:
197+
"""Get multi-value query string parameter values by name
198+
199+
Parameters
200+
----------
201+
name: str
202+
Multi-Value query string parameter name
203+
default_values: List[str], optional
204+
Default values is no values are found by name
205+
Returns
206+
-------
207+
List[str], optional
208+
List of query string values
209+
210+
"""
211+
return get_multi_value_query_string_values(
212+
multi_value_query_string_parameters=self.multi_value_query_string_parameters,
213+
name=name,
214+
default_values=default_values,
215+
)
216+
187217
@overload
188218
def get_header_value(
189219
self,

aws_lambda_powertools/utilities/data_classes/shared_functions.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
import base64
4-
from typing import Any
4+
from typing import Any, Dict
55

66

77
def base64_decode(value: str) -> str:
@@ -63,7 +63,7 @@ def get_header_value(
6363

6464

6565
def get_query_string_value(
66-
query_string_parameters: dict[str, str] | None,
66+
query_string_parameters: Dict[str, str] | None,
6767
name: str,
6868
default_value: str | None = None,
6969
) -> str | None:
@@ -84,3 +84,30 @@ def get_query_string_value(
8484
"""
8585
params = query_string_parameters
8686
return default_value if params is None else params.get(name, default_value)
87+
88+
89+
def get_multi_value_query_string_values(
90+
multi_value_query_string_parameters: Dict[str, list[str]] | None,
91+
name: str,
92+
default_values: list[str] | None = None,
93+
) -> list[str]:
94+
"""
95+
Retrieves the values of a multi-value string parameters specified by the given name.
96+
97+
Parameters
98+
----------
99+
name: str
100+
The name of the query string parameter to retrieve.
101+
default_value: list[str], optional
102+
The default value to return if the parameter is not found. Defaults to None.
103+
104+
Returns
105+
-------
106+
List[str]. optional
107+
The values of the query string parameter if found, or the default values if not found.
108+
"""
109+
110+
default = default_values or []
111+
params = multi_value_query_string_parameters or {}
112+
113+
return params.get(name) or default

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:43b898a5520bbe5ee0080568c002491cd8fcd2269e64f7ad2ba4c9c419acb866
2+
FROM squidfunk/mkdocs-material@sha256:49d1bfdaf457c5ac20a93ff59a5b57b762ace5606fc564ac2e195abf315f14ee
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

0 commit comments

Comments
 (0)