From d449ff4172788a8d136279a8393f7e062ea789d6 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Mon, 16 Mar 2026 11:51:01 +0000 Subject: [PATCH] ci: fix ty warnings in data classes --- .../data_classes/api_gateway_authorizer_event.py | 10 +++++----- .../data_classes/appsync/scalar_types_utils.py | 6 +++--- .../utilities/data_classes/appsync_resolver_event.py | 4 ++-- .../utilities/data_classes/common.py | 12 ++++++------ pyproject.toml | 1 - 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py b/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py index e9b77209860..f1b9c4f5103 100644 --- a/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +++ b/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py @@ -14,7 +14,7 @@ DictWrapper, ) from aws_lambda_powertools.utilities.data_classes.shared_functions import ( - get_header_value, + get_header_value, # ty: ignore[deprecated] ) from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning @@ -232,7 +232,7 @@ def get_header_value( category=PowertoolsDeprecationWarning, stacklevel=2, ) - return get_header_value(self.headers, name, default_value, case_sensitive) + return get_header_value(self.headers, name, default_value, case_sensitive) # ty: ignore[deprecated] class APIGatewayAuthorizerEventV2(DictWrapper): @@ -358,7 +358,7 @@ def get_header_value( category=PowertoolsDeprecationWarning, stacklevel=2, ) - return get_header_value(self.headers, name, default_value, case_sensitive) + return get_header_value(self.headers, name, default_value, case_sensitive) # ty: ignore[deprecated] class APIGatewayAuthorizerResponseV2: @@ -691,12 +691,12 @@ def _add_route(self, effect: str, resource: str, conditions: list[dict] | None = self._deny_routes.append(route) @override - def allow_all_routes(self): + def allow_all_routes(self, http_method: str = HttpVerb.ALL.value): # type: ignore[override] # noqa: ARG002 """Adds a '*' allow to the policy to authorize access to all methods of an API""" self._add_route(effect="Allow", resource="*") @override - def deny_all_routes(self): + def deny_all_routes(self, http_method: str = HttpVerb.ALL.value): # type: ignore[override] # noqa: ARG002 """Adds a '*' allow to the policy to deny access to all methods of an API""" self._add_route(effect="Deny", resource="*") diff --git a/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py b/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py index b83a947c3f8..746682903fd 100644 --- a/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +++ b/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py @@ -55,7 +55,7 @@ def aws_date(timezone_offset: int = 0) -> str: str Returns current time as AWSDate scalar string with optional timezone offset """ - return _formatted_time(datetime.datetime.utcnow(), "%Y-%m-%d", timezone_offset) + return _formatted_time(datetime.datetime.now(datetime.timezone.utc), "%Y-%m-%d", timezone_offset) def aws_time(timezone_offset: int = 0) -> str: @@ -71,7 +71,7 @@ def aws_time(timezone_offset: int = 0) -> str: str Returns current time as AWSTime scalar string with optional timezone offset """ - return _formatted_time(datetime.datetime.utcnow(), "%H:%M:%S.%f", timezone_offset) + return _formatted_time(datetime.datetime.now(datetime.timezone.utc), "%H:%M:%S.%f", timezone_offset) def aws_datetime(timezone_offset: int = 0) -> str: @@ -87,7 +87,7 @@ def aws_datetime(timezone_offset: int = 0) -> str: str Returns current time as AWSDateTime scalar string with optional timezone offset """ - return _formatted_time(datetime.datetime.utcnow(), "%Y-%m-%dT%H:%M:%S.%f", timezone_offset) + return _formatted_time(datetime.datetime.now(datetime.timezone.utc), "%Y-%m-%dT%H:%M:%S.%f", timezone_offset) def aws_timestamp() -> int: diff --git a/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py b/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py index af9568325a5..1571ece94c7 100644 --- a/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +++ b/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py @@ -7,7 +7,7 @@ from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict, DictWrapper from aws_lambda_powertools.utilities.data_classes.shared_functions import ( - get_header_value, + get_header_value, # ty: ignore[deprecated] ) from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning @@ -275,4 +275,4 @@ def get_header_value( category=PowertoolsDeprecationWarning, stacklevel=2, ) - return get_header_value(self.request_headers, name, default_value, case_sensitive) + return get_header_value(self.request_headers, name, default_value, case_sensitive) # ty: ignore[deprecated] diff --git a/aws_lambda_powertools/utilities/data_classes/common.py b/aws_lambda_powertools/utilities/data_classes/common.py index 3e1a4d6cb2d..08fd60f0679 100644 --- a/aws_lambda_powertools/utilities/data_classes/common.py +++ b/aws_lambda_powertools/utilities/data_classes/common.py @@ -23,7 +23,7 @@ from aws_lambda_powertools.shared.headers_serializer import BaseHeadersSerializer from aws_lambda_powertools.utilities.data_classes.shared_functions import ( - get_header_value, + get_header_value, # ty: ignore[deprecated] get_multi_value_query_string_values, get_query_string_value, ) @@ -39,8 +39,8 @@ def __init__(self, data=None, **kwargs): def get(self, k, default=None): return super().get(k.lower(), default) - def pop(self, k): - return super().pop(k.lower()) + def pop(self, k, *args): + return super().pop(k.lower(), *args) def setdefault(self, k, default=None): return super().setdefault(k.lower(), default) @@ -125,7 +125,7 @@ def _str_helper(self) -> dict[str, Any]: properties = self._properties() sensitive_properties = ["raw_event"] if hasattr(self, "_sensitive_properties"): - sensitive_properties.extend(self._sensitive_properties) # pyright: ignore + sensitive_properties.extend(self._sensitive_properties) # pyright: ignore # type: ignore[arg-type] result: dict[str, Any] = {} for property_key in properties: @@ -142,7 +142,7 @@ def _str_helper(self) -> dict[str, Any]: # Checks if the key is a list and if it is a subclass of the parent class elif isinstance(property_value, list): for seq, item in enumerate(property_value): - if issubclass(item.__class__, DictWrapper): + if issubclass(item.__class__, DictWrapper) and isinstance(item, DictWrapper): result[property_key][seq] = item._str_helper() except Exception: result[property_key] = "[Cannot be deserialized]" @@ -331,7 +331,7 @@ def get_header_value( category=PowertoolsDeprecationWarning, stacklevel=2, ) - return get_header_value( + return get_header_value( # ty: ignore[deprecated] headers=self.headers, name=name, default_value=default_value, diff --git a/pyproject.toml b/pyproject.toml index 9f3cebc3185..5e87a118a6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -239,7 +239,6 @@ exclude = [ "aws_lambda_powertools/utilities/streaming/**", "aws_lambda_powertools/utilities/data_masking/**", "aws_lambda_powertools/tracing/**", - "aws_lambda_powertools/utilities/data_classes/**", "aws_lambda_powertools/utilities/batch/**", "aws_lambda_powertools/utilities/idempotency/**", "aws_lambda_powertools/event_handler/**",