From fa554005ba645a92c0f740b6d0fbe001aa416cfd Mon Sep 17 00:00:00 2001 From: Eric Nielsen <4120606+ericbn@users.noreply.github.com> Date: Mon, 17 Mar 2025 20:22:11 -0500 Subject: [PATCH 1/3] refactor(data_classes): remove duplicated code Remove overriding methods that have the same code as the overriden ones. --- .../utilities/data_classes/alb_event.py | 4 ---- .../utilities/data_classes/api_gateway_proxy_event.py | 9 +-------- .../utilities/data_classes/bedrock_agent_event.py | 4 ---- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/aws_lambda_powertools/utilities/data_classes/alb_event.py b/aws_lambda_powertools/utilities/data_classes/alb_event.py index 1e403d6f692..928f01c81c0 100644 --- a/aws_lambda_powertools/utilities/data_classes/alb_event.py +++ b/aws_lambda_powertools/utilities/data_classes/alb_event.py @@ -34,10 +34,6 @@ class ALBEvent(BaseProxyEvent): def request_context(self) -> ALBEventRequestContext: return ALBEventRequestContext(self._data) - @property - def multi_value_query_string_parameters(self) -> dict[str, list[str]]: - return self.get("multiValueQueryStringParameters") or {} - @property def resolved_query_string_parameters(self) -> dict[str, list[str]]: return self.multi_value_query_string_parameters or super().resolved_query_string_parameters diff --git a/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py b/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py index f173742fff3..ce9b3b50b74 100644 --- a/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +++ b/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py @@ -119,16 +119,9 @@ def resource(self) -> str: def multi_value_headers(self) -> dict[str, list[str]]: return CaseInsensitiveDict(self.get("multiValueHeaders")) - @property - def multi_value_query_string_parameters(self) -> dict[str, list[str]]: - return self.get("multiValueQueryStringParameters") or {} # key might exist but can be `null` - @property def resolved_query_string_parameters(self) -> dict[str, list[str]]: - if self.multi_value_query_string_parameters: - return self.multi_value_query_string_parameters - - return super().resolved_query_string_parameters + return self.multi_value_query_string_parameters or super().resolved_query_string_parameters @property def resolved_headers_field(self) -> dict[str, Any]: diff --git a/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py b/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py index 388e556a812..e6b665e8ded 100644 --- a/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +++ b/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py @@ -77,10 +77,6 @@ def action_group(self) -> str: def api_path(self) -> str: return self["apiPath"] - @property - def http_method(self) -> str: - return self["httpMethod"] - @property def parameters(self) -> list[BedrockAgentProperty]: parameters = self.get("parameters") or [] From ce28f18a339fe9000ee13f86e94e226ef19a789a Mon Sep 17 00:00:00 2001 From: Eric Nielsen <4120606+ericbn@users.noreply.github.com> Date: Tue, 18 Mar 2025 08:42:38 -0500 Subject: [PATCH 2/3] refactor(data_classes): further remove duplicated code Manually checked with: $ pip install pylint $ pylint --disable=all --enable=R0801 --min-similarity-lines=1 aws_lambda_powertools/utilities/data_classes --- .../utilities/data_classes/vpc_lattice.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py b/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py index 4b98a82a16b..036280c9116 100644 --- a/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +++ b/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py @@ -169,16 +169,6 @@ def version(self) -> str: """The VPC Lattice v2 Event version""" return self["version"] - @property - def is_base64_encoded(self) -> bool | None: - """A boolean flag to indicate if the applicable request payload is Base64-encode""" - return self.get("isBase64Encoded") - - @property - def path(self) -> str: - """The VPC Lattice v2 Event path""" - return self["path"] - @property def request_context(self) -> vpcLatticeEventV2RequestContext: """The VPC Lattice v2 Event request context.""" From a1a30f842157c5dc9efa05d8dca089bdd3e6baee Mon Sep 17 00:00:00 2001 From: Eric Nielsen <4120606+ericbn@users.noreply.github.com> Date: Tue, 18 Mar 2025 17:02:17 -0500 Subject: [PATCH 3/3] refactor(data_classes): Add comments --- .../utilities/data_classes/bedrock_agent_event.py | 2 ++ aws_lambda_powertools/utilities/data_classes/vpc_lattice.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py b/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py index e6b665e8ded..1b3c57be124 100644 --- a/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +++ b/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py @@ -57,6 +57,8 @@ class BedrockAgentEvent(BaseProxyEvent): See https://docs.aws.amazon.com/bedrock/latest/userguide/agents-create.html """ + # httpMethod is inherited from BaseProxyEvent class. + @property def message_version(self) -> str: return self["messageVersion"] diff --git a/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py b/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py index 036280c9116..ae2fd91e829 100644 --- a/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +++ b/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py @@ -16,6 +16,8 @@ class VPCLatticeEventBase(BaseProxyEvent): + # is_base64_encoded and path are inherited from BaseProxyEvent class. + @property def body(self) -> str: """The VPC Lattice body."""