From a2efb4c259d3a73567a4745489cecca7af7f60f8 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Tue, 15 Apr 2025 22:44:58 +0100 Subject: [PATCH] Using generics types --- .../utilities/data_classes/active_mq_event.py | 5 ++++- aws_lambda_powertools/utilities/data_classes/common.py | 5 ++++- .../utilities/data_classes/dynamo_db_stream_event.py | 5 ++++- .../utilities/data_classes/event_source.py | 4 +++- .../utilities/data_classes/kafka_event.py | 5 ++++- .../utilities/data_classes/kinesis_firehose_event.py | 4 +++- .../utilities/data_classes/kinesis_stream_event.py | 5 ++++- .../utilities/data_classes/s3_batch_operation_event.py | 5 ++++- aws_lambda_powertools/utilities/data_classes/s3_event.py | 5 ++++- .../utilities/data_classes/ses_event.py | 5 ++++- .../utilities/data_classes/sns_event.py | 5 ++++- .../utilities/data_classes/sqs_event.py | 7 +++++-- .../data_classes/_boto3/test_code_pipeline_job_event.py | 2 ++ .../required_dependencies/test_active_mq_event.py | 2 ++ .../data_classes/required_dependencies/test_alb_event.py | 2 ++ .../required_dependencies/test_api_gateway_authorizer.py | 2 ++ .../test_api_gateway_authorizer_event.py | 2 ++ .../test_api_gateway_authorizer_websocket_event.py | 2 ++ .../test_api_gateway_proxy_event.py | 2 ++ .../test_api_gateway_websocket_event.py | 2 ++ .../test_appsync_authorizer_event.py | 2 ++ .../required_dependencies/test_appsync_resolver_event.py | 2 ++ .../required_dependencies/test_aws_config_rule_event.py | 2 ++ .../required_dependencies/test_bedrock_agent_event.py | 2 ++ .../test_cloud_watch_alarm_event.py | 9 +++++---- .../test_cloud_watch_custom_widget_event.py | 2 ++ .../required_dependencies/test_cloud_watch_logs_event.py | 2 ++ .../test_cloudformation_custom_resource_event.py | 2 ++ .../test_code_deploy_lifecycle_hook_event.py | 2 ++ .../test_cognito_user_pool_event.py | 2 ++ .../test_connect_contact_flow_event.py | 2 ++ .../required_dependencies/test_dynamo_db_stream_event.py | 2 ++ .../required_dependencies/test_event_bridge_event.py | 2 ++ .../required_dependencies/test_iot_registry_events.py | 2 ++ .../required_dependencies/test_kafka_event.py | 2 ++ .../required_dependencies/test_kinesis_firehose_event.py | 2 ++ .../test_kinesis_firehose_response.py | 2 ++ .../required_dependencies/test_kinesis_stream_event.py | 2 ++ .../required_dependencies/test_lambda_function_url.py | 2 ++ .../required_dependencies/test_rabbit_mq_event.py | 4 ++-- .../test_s3_batch_operation_event.py | 2 ++ .../test_s3_batch_operation_response.py | 2 ++ .../data_classes/required_dependencies/test_s3_event.py | 2 ++ .../test_s3_eventbridge_notification.py | 4 ++-- .../required_dependencies/test_s3_object_event.py | 2 ++ .../required_dependencies/test_secrets_manager_event.py | 2 ++ .../data_classes/required_dependencies/test_ses_event.py | 2 ++ .../data_classes/required_dependencies/test_sns_event.py | 2 ++ .../data_classes/required_dependencies/test_sqs_event.py | 2 ++ .../required_dependencies/test_transfer_family_event.py | 2 ++ .../required_dependencies/test_vpc_lattice_event.py | 2 ++ .../required_dependencies/test_vpc_lattice_eventv2.py | 2 ++ .../test_cloudformation_custom_resource_event.py | 2 ++ 53 files changed, 132 insertions(+), 21 deletions(-) diff --git a/aws_lambda_powertools/utilities/data_classes/active_mq_event.py b/aws_lambda_powertools/utilities/data_classes/active_mq_event.py index 8f5c952da3f..26ed82dc32c 100644 --- a/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +++ b/aws_lambda_powertools/utilities/data_classes/active_mq_event.py @@ -1,11 +1,14 @@ from __future__ import annotations from functools import cached_property -from typing import Any, Iterator +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.utilities.data_classes.common import DictWrapper from aws_lambda_powertools.utilities.data_classes.shared_functions import base64_decode +if TYPE_CHECKING: + from collections.abc import Iterator + class ActiveMQMessage(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/common.py b/aws_lambda_powertools/utilities/data_classes/common.py index 5af24c27a13..ecc9a2033ab 100644 --- a/aws_lambda_powertools/utilities/data_classes/common.py +++ b/aws_lambda_powertools/utilities/data_classes/common.py @@ -9,14 +9,17 @@ import base64 import json import warnings +from collections.abc import Mapping from functools import cached_property -from typing import TYPE_CHECKING, Any, Callable, Iterator, Mapping, overload +from typing import TYPE_CHECKING, Any, overload from typing_extensions import deprecated from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning if TYPE_CHECKING: + from collections.abc import Callable, Iterator + from aws_lambda_powertools.shared.headers_serializer import BaseHeadersSerializer from aws_lambda_powertools.utilities.data_classes.shared_functions import ( diff --git a/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py b/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py index 46e0d22fd87..8da2c983f88 100644 --- a/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +++ b/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py @@ -2,11 +2,14 @@ from enum import Enum from functools import cached_property -from typing import Any, Iterator +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.shared.dynamodb_deserializer import TypeDeserializer from aws_lambda_powertools.utilities.data_classes.common import DictWrapper +if TYPE_CHECKING: + from collections.abc import Iterator + class StreamViewType(Enum): """The type of data from the modified DynamoDB item that was captured in this stream record""" diff --git a/aws_lambda_powertools/utilities/data_classes/event_source.py b/aws_lambda_powertools/utilities/data_classes/event_source.py index 164e29dbd11..6096e3ae7bc 100644 --- a/aws_lambda_powertools/utilities/data_classes/event_source.py +++ b/aws_lambda_powertools/utilities/data_classes/event_source.py @@ -1,10 +1,12 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Callable +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.middleware_factory import lambda_handler_decorator if TYPE_CHECKING: + from collections.abc import Callable + from aws_lambda_powertools.utilities.data_classes.common import DictWrapper from aws_lambda_powertools.utilities.typing import LambdaContext diff --git a/aws_lambda_powertools/utilities/data_classes/kafka_event.py b/aws_lambda_powertools/utilities/data_classes/kafka_event.py index 9a22edcaccb..88062f38e56 100644 --- a/aws_lambda_powertools/utilities/data_classes/kafka_event.py +++ b/aws_lambda_powertools/utilities/data_classes/kafka_event.py @@ -2,10 +2,13 @@ import base64 from functools import cached_property -from typing import Any, Iterator +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict, DictWrapper +if TYPE_CHECKING: + from collections.abc import Iterator + class KafkaEventRecord(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py b/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py index bc61cd69cf0..7782bbded01 100644 --- a/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +++ b/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py @@ -5,11 +5,13 @@ import warnings from dataclasses import dataclass, field from functools import cached_property -from typing import TYPE_CHECKING, Any, Callable, ClassVar, Iterator +from typing import TYPE_CHECKING, Any, ClassVar from aws_lambda_powertools.utilities.data_classes.common import DictWrapper if TYPE_CHECKING: + from collections.abc import Callable, Iterator + from typing_extensions import Literal diff --git a/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py b/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py index 8d6c96c557d..6b189f937fd 100644 --- a/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +++ b/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py @@ -3,13 +3,16 @@ import base64 import json import zlib -from typing import Iterator +from typing import TYPE_CHECKING from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import ( CloudWatchLogsDecodedData, ) from aws_lambda_powertools.utilities.data_classes.common import DictWrapper +if TYPE_CHECKING: + from collections.abc import Iterator + class KinesisStreamRecordPayload(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py b/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py index 9ad201afc2d..ce4c16e436d 100644 --- a/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +++ b/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py @@ -2,7 +2,7 @@ import warnings from dataclasses import dataclass, field -from typing import Any, Iterator, Literal +from typing import TYPE_CHECKING, Any, Literal from urllib.parse import unquote_plus from aws_lambda_powertools.utilities.data_classes.common import DictWrapper @@ -11,6 +11,9 @@ VALID_RESULT_CODES: tuple[str, str, str] = ("Succeeded", "TemporaryFailure", "PermanentFailure") RESULT_CODE_TYPE = Literal["Succeeded", "TemporaryFailure", "PermanentFailure"] +if TYPE_CHECKING: + from collections.abc import Iterator + @dataclass(repr=False, order=False) class S3BatchOperationResponseRecord: diff --git a/aws_lambda_powertools/utilities/data_classes/s3_event.py b/aws_lambda_powertools/utilities/data_classes/s3_event.py index db5debc8db1..bf404f1ecbf 100644 --- a/aws_lambda_powertools/utilities/data_classes/s3_event.py +++ b/aws_lambda_powertools/utilities/data_classes/s3_event.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Iterator +from typing import TYPE_CHECKING from urllib.parse import unquote_plus from aws_lambda_powertools.utilities.data_classes.common import DictWrapper @@ -8,6 +8,9 @@ EventBridgeEvent, ) +if TYPE_CHECKING: + from collections.abc import Iterator + class S3Identity(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/ses_event.py b/aws_lambda_powertools/utilities/data_classes/ses_event.py index 1c405e540a7..2e49f63da14 100644 --- a/aws_lambda_powertools/utilities/data_classes/ses_event.py +++ b/aws_lambda_powertools/utilities/data_classes/ses_event.py @@ -1,9 +1,12 @@ from __future__ import annotations -from typing import Iterator +from typing import TYPE_CHECKING from aws_lambda_powertools.utilities.data_classes.common import DictWrapper +if TYPE_CHECKING: + from collections.abc import Iterator + class SESMailHeader(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/sns_event.py b/aws_lambda_powertools/utilities/data_classes/sns_event.py index 1720389ad05..828b6e18264 100644 --- a/aws_lambda_powertools/utilities/data_classes/sns_event.py +++ b/aws_lambda_powertools/utilities/data_classes/sns_event.py @@ -1,9 +1,12 @@ from __future__ import annotations -from typing import Iterator +from typing import TYPE_CHECKING from aws_lambda_powertools.utilities.data_classes.common import DictWrapper +if TYPE_CHECKING: + from collections.abc import Iterator + class SNSMessageAttribute(DictWrapper): @property diff --git a/aws_lambda_powertools/utilities/data_classes/sqs_event.py b/aws_lambda_powertools/utilities/data_classes/sqs_event.py index dc149c04902..2de8c1ccc28 100644 --- a/aws_lambda_powertools/utilities/data_classes/sqs_event.py +++ b/aws_lambda_powertools/utilities/data_classes/sqs_event.py @@ -1,12 +1,15 @@ from __future__ import annotations from functools import cached_property -from typing import Any, Dict, ItemsView, Iterator, TypeVar +from typing import TYPE_CHECKING, Any, ItemsView, Iterator, TypeVar from aws_lambda_powertools.utilities.data_classes import S3Event from aws_lambda_powertools.utilities.data_classes.common import DictWrapper from aws_lambda_powertools.utilities.data_classes.sns_event import SNSMessage +if TYPE_CHECKING: + from collections.abc import Iterator + class SQSRecordAttributes(DictWrapper): @property @@ -86,7 +89,7 @@ def data_type(self) -> str: return self["dataType"] -class SQSMessageAttributes(Dict[str, SQSMessageAttribute]): +class SQSMessageAttributes(dict[str, SQSMessageAttribute]): def __getitem__(self, key: str) -> SQSMessageAttribute | None: # type: ignore item = super().get(key) return None if item is None else SQSMessageAttribute(item) # type: ignore diff --git a/tests/unit/data_classes/_boto3/test_code_pipeline_job_event.py b/tests/unit/data_classes/_boto3/test_code_pipeline_job_event.py index 0306096a8c5..9443109d6b8 100644 --- a/tests/unit/data_classes/_boto3/test_code_pipeline_job_event.py +++ b/tests/unit/data_classes/_boto3/test_code_pipeline_job_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json import zipfile from io import StringIO diff --git a/tests/unit/data_classes/required_dependencies/test_active_mq_event.py b/tests/unit/data_classes/required_dependencies/test_active_mq_event.py index f4e835edce9..adb2d51aae6 100644 --- a/tests/unit/data_classes/required_dependencies/test_active_mq_event.py +++ b/tests/unit/data_classes/required_dependencies/test_active_mq_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.active_mq_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_alb_event.py b/tests/unit/data_classes/required_dependencies/test_alb_event.py index 6945dc67c36..a21e1968613 100644 --- a/tests/unit/data_classes/required_dependencies/test_alb_event.py +++ b/tests/unit/data_classes/required_dependencies/test_alb_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import ALBEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer.py b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer.py index 52ce96f84e2..1fad5176672 100644 --- a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer.py +++ b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_event.py b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_event.py index 9362129b8d5..c14cd8db53d 100644 --- a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_event.py +++ b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_websocket_event.py b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_websocket_event.py index d1f0d10735b..d4d6abd6ba8 100644 --- a/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_websocket_event.py +++ b/tests/unit/data_classes/required_dependencies/test_api_gateway_authorizer_websocket_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_api_gateway_proxy_event.py b/tests/unit/data_classes/required_dependencies/test_api_gateway_proxy_event.py index 42925ee9c9f..ec71d815a7c 100644 --- a/tests/unit/data_classes/required_dependencies/test_api_gateway_proxy_event.py +++ b/tests/unit/data_classes/required_dependencies/test_api_gateway_proxy_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import ( APIGatewayProxyEvent, APIGatewayProxyEventV2, diff --git a/tests/unit/data_classes/required_dependencies/test_api_gateway_websocket_event.py b/tests/unit/data_classes/required_dependencies/test_api_gateway_websocket_event.py index e06c72b8d4a..4151429ad50 100644 --- a/tests/unit/data_classes/required_dependencies/test_api_gateway_websocket_event.py +++ b/tests/unit/data_classes/required_dependencies/test_api_gateway_websocket_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json from aws_lambda_powertools.utilities.data_classes import APIGatewayWebSocketEvent diff --git a/tests/unit/data_classes/required_dependencies/test_appsync_authorizer_event.py b/tests/unit/data_classes/required_dependencies/test_appsync_authorizer_event.py index f940d2e9e19..298dd73b1d5 100644 --- a/tests/unit/data_classes/required_dependencies/test_appsync_authorizer_event.py +++ b/tests/unit/data_classes/required_dependencies/test_appsync_authorizer_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes.appsync_authorizer_event import ( AppSyncAuthorizerEvent, AppSyncAuthorizerResponse, diff --git a/tests/unit/data_classes/required_dependencies/test_appsync_resolver_event.py b/tests/unit/data_classes/required_dependencies/test_appsync_resolver_event.py index 8d753e9a6fb..1d16d5402ca 100644 --- a/tests/unit/data_classes/required_dependencies/test_appsync_resolver_event.py +++ b/tests/unit/data_classes/required_dependencies/test_appsync_resolver_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import AppSyncResolverEvent diff --git a/tests/unit/data_classes/required_dependencies/test_aws_config_rule_event.py b/tests/unit/data_classes/required_dependencies/test_aws_config_rule_event.py index 8c4d9a40b5e..239637a5429 100644 --- a/tests/unit/data_classes/required_dependencies/test_aws_config_rule_event.py +++ b/tests/unit/data_classes/required_dependencies/test_aws_config_rule_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json from aws_lambda_powertools.utilities.data_classes import AWSConfigRuleEvent diff --git a/tests/unit/data_classes/required_dependencies/test_bedrock_agent_event.py b/tests/unit/data_classes/required_dependencies/test_bedrock_agent_event.py index c4b56695774..3b10b060a8d 100644 --- a/tests/unit/data_classes/required_dependencies/test_bedrock_agent_event.py +++ b/tests/unit/data_classes/required_dependencies/test_bedrock_agent_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import BedrockAgentEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_cloud_watch_alarm_event.py b/tests/unit/data_classes/required_dependencies/test_cloud_watch_alarm_event.py index df72a7ff1e1..c73aa9f6b8b 100644 --- a/tests/unit/data_classes/required_dependencies/test_cloud_watch_alarm_event.py +++ b/tests/unit/data_classes/required_dependencies/test_cloud_watch_alarm_event.py @@ -1,5 +1,6 @@ +from __future__ import annotations + import json -from typing import Dict, List from aws_lambda_powertools.utilities.data_classes import CloudWatchAlarmEvent from tests.functional.utils import load_event @@ -36,7 +37,7 @@ def test_cloud_watch_alarm_event_single_metric(): assert parsed_event.alarm_data.configuration.alarm_actions_suppressor_extension_period is None assert parsed_event.alarm_data.configuration.alarm_actions_suppressor_wait_period is None - assert isinstance(parsed_event.alarm_data.configuration.metrics, List) + assert isinstance(parsed_event.alarm_data.configuration.metrics, list) # metric position 0 metric_0 = parsed_event.alarm_data.configuration.metrics[0] raw_metric_0 = raw_event["alarmData"]["configuration"]["metrics"][0] @@ -53,7 +54,7 @@ def test_cloud_watch_alarm_event_single_metric(): assert metric_1.metric_stat.stat == raw_metric_1["metricStat"]["stat"] assert metric_1.metric_stat.period == raw_metric_1["metricStat"]["period"] assert metric_1.metric_stat.unit is None - assert isinstance(metric_1.metric_stat.metric, Dict) + assert isinstance(metric_1.metric_stat.metric, dict) def test_cloud_watch_alarm_event_composite_metric(): @@ -102,4 +103,4 @@ def test_cloud_watch_alarm_event_composite_metric(): parsed_event.alarm_data.configuration.alarm_actions_suppressor == raw_event["alarmData"]["configuration"]["actionsSuppressor"] ) - assert isinstance(parsed_event.alarm_data.configuration.metrics, List) + assert isinstance(parsed_event.alarm_data.configuration.metrics, list) diff --git a/tests/unit/data_classes/required_dependencies/test_cloud_watch_custom_widget_event.py b/tests/unit/data_classes/required_dependencies/test_cloud_watch_custom_widget_event.py index 6dcb9bf73b6..f37babc3d96 100644 --- a/tests/unit/data_classes/required_dependencies/test_cloud_watch_custom_widget_event.py +++ b/tests/unit/data_classes/required_dependencies/test_cloud_watch_custom_widget_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import ( CloudWatchDashboardCustomWidgetEvent, ) diff --git a/tests/unit/data_classes/required_dependencies/test_cloud_watch_logs_event.py b/tests/unit/data_classes/required_dependencies/test_cloud_watch_logs_event.py index 10a3a499dd0..782274df288 100644 --- a/tests/unit/data_classes/required_dependencies/test_cloud_watch_logs_event.py +++ b/tests/unit/data_classes/required_dependencies/test_cloud_watch_logs_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import CloudWatchLogsEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_cloudformation_custom_resource_event.py b/tests/unit/data_classes/required_dependencies/test_cloudformation_custom_resource_event.py index a6b021d61b4..432ea3bdb68 100644 --- a/tests/unit/data_classes/required_dependencies/test_cloudformation_custom_resource_event.py +++ b/tests/unit/data_classes/required_dependencies/test_cloudformation_custom_resource_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import ( diff --git a/tests/unit/data_classes/required_dependencies/test_code_deploy_lifecycle_hook_event.py b/tests/unit/data_classes/required_dependencies/test_code_deploy_lifecycle_hook_event.py index 9d532a82a6f..c11b4b52e62 100644 --- a/tests/unit/data_classes/required_dependencies/test_code_deploy_lifecycle_hook_event.py +++ b/tests/unit/data_classes/required_dependencies/test_code_deploy_lifecycle_hook_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import ( diff --git a/tests/unit/data_classes/required_dependencies/test_cognito_user_pool_event.py b/tests/unit/data_classes/required_dependencies/test_cognito_user_pool_event.py index 99984a3d87d..41ee52d915e 100644 --- a/tests/unit/data_classes/required_dependencies/test_cognito_user_pool_event.py +++ b/tests/unit/data_classes/required_dependencies/test_cognito_user_pool_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from secrets import compare_digest from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_connect_contact_flow_event.py b/tests/unit/data_classes/required_dependencies/test_connect_contact_flow_event.py index a3237ad20f8..0ad49106fa8 100644 --- a/tests/unit/data_classes/required_dependencies/test_connect_contact_flow_event.py +++ b/tests/unit/data_classes/required_dependencies/test_connect_contact_flow_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes.connect_contact_flow_event import ( ConnectContactFlowChannel, ConnectContactFlowEndpointType, diff --git a/tests/unit/data_classes/required_dependencies/test_dynamo_db_stream_event.py b/tests/unit/data_classes/required_dependencies/test_dynamo_db_stream_event.py index ea2c95c8ddd..1611b38a243 100644 --- a/tests/unit/data_classes/required_dependencies/test_dynamo_db_stream_event.py +++ b/tests/unit/data_classes/required_dependencies/test_dynamo_db_stream_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from decimal import Clamped, Context, Inexact, Overflow, Rounded, Underflow from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_event_bridge_event.py b/tests/unit/data_classes/required_dependencies/test_event_bridge_event.py index b35aeb73d11..6dfc0c82485 100644 --- a/tests/unit/data_classes/required_dependencies/test_event_bridge_event.py +++ b/tests/unit/data_classes/required_dependencies/test_event_bridge_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import EventBridgeEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_iot_registry_events.py b/tests/unit/data_classes/required_dependencies/test_iot_registry_events.py index 20d30bee3a2..a0a9dc95177 100644 --- a/tests/unit/data_classes/required_dependencies/test_iot_registry_events.py +++ b/tests/unit/data_classes/required_dependencies/test_iot_registry_events.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from datetime import datetime from aws_lambda_powertools.utilities.data_classes.iot_registry_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_kafka_event.py b/tests/unit/data_classes/required_dependencies/test_kafka_event.py index fc36171da77..b03c712f52c 100644 --- a/tests/unit/data_classes/required_dependencies/test_kafka_event.py +++ b/tests/unit/data_classes/required_dependencies/test_kafka_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import KafkaEvent diff --git a/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_event.py b/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_event.py index 219356ea392..22146d997e3 100644 --- a/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_event.py +++ b/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import KinesisFirehoseEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_response.py b/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_response.py index 0be8d0d3ec0..290961cbcfa 100644 --- a/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_response.py +++ b/tests/unit/data_classes/required_dependencies/test_kinesis_firehose_response.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import ( KinesisFirehoseDataTransformationRecord, KinesisFirehoseDataTransformationRecordMetadata, diff --git a/tests/unit/data_classes/required_dependencies/test_kinesis_stream_event.py b/tests/unit/data_classes/required_dependencies/test_kinesis_stream_event.py index e97f15a8277..5410ed81974 100644 --- a/tests/unit/data_classes/required_dependencies/test_kinesis_stream_event.py +++ b/tests/unit/data_classes/required_dependencies/test_kinesis_stream_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import base64 import json diff --git a/tests/unit/data_classes/required_dependencies/test_lambda_function_url.py b/tests/unit/data_classes/required_dependencies/test_lambda_function_url.py index ca8e3d78c59..eb8ad8e1e57 100644 --- a/tests/unit/data_classes/required_dependencies/test_lambda_function_url.py +++ b/tests/unit/data_classes/required_dependencies/test_lambda_function_url.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import LambdaFunctionUrlEvent from aws_lambda_powertools.utilities.data_classes.api_gateway_proxy_event import RequestContextV2Authorizer from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_rabbit_mq_event.py b/tests/unit/data_classes/required_dependencies/test_rabbit_mq_event.py index 09f8f0f2686..3a0fea94010 100644 --- a/tests/unit/data_classes/required_dependencies/test_rabbit_mq_event.py +++ b/tests/unit/data_classes/required_dependencies/test_rabbit_mq_event.py @@ -1,4 +1,4 @@ -from typing import Dict +from __future__ import annotations from aws_lambda_powertools.utilities.data_classes.rabbit_mq_event import ( BasicProperties, @@ -29,7 +29,7 @@ def test_rabbit_mq_event(): properties.content_type == raw_event["rmqMessagesByQueue"]["pizzaQueue::/"][0]["basicProperties"]["contentType"] ) assert properties.content_encoding is None - assert isinstance(properties.headers, Dict) + assert isinstance(properties.headers, dict) assert properties.headers.get("header1") is not None assert ( properties.delivery_mode diff --git a/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_event.py b/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_event.py index 44dc65df07d..1d749f77cd2 100644 --- a/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_event.py +++ b/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import S3BatchOperationEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_response.py b/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_response.py index c7106e0bfb7..ab8562c4a46 100644 --- a/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_response.py +++ b/tests/unit/data_classes/required_dependencies/test_s3_batch_operation_response.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import ( diff --git a/tests/unit/data_classes/required_dependencies/test_s3_event.py b/tests/unit/data_classes/required_dependencies/test_s3_event.py index eaa4cdce6d0..90e94c413a7 100644 --- a/tests/unit/data_classes/required_dependencies/test_s3_event.py +++ b/tests/unit/data_classes/required_dependencies/test_s3_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from urllib.parse import quote_plus from aws_lambda_powertools.utilities.data_classes import S3Event diff --git a/tests/unit/data_classes/required_dependencies/test_s3_eventbridge_notification.py b/tests/unit/data_classes/required_dependencies/test_s3_eventbridge_notification.py index ae27ad2965f..5416c43ce3f 100644 --- a/tests/unit/data_classes/required_dependencies/test_s3_eventbridge_notification.py +++ b/tests/unit/data_classes/required_dependencies/test_s3_eventbridge_notification.py @@ -1,4 +1,4 @@ -from typing import Dict +from __future__ import annotations import pytest @@ -18,7 +18,7 @@ ], ids=["object_created", "object_deleted", "object_expired", "object_restored"], ) -def test_s3_eventbridge_notification_detail_parsed(raw_event: Dict): +def test_s3_eventbridge_notification_detail_parsed(raw_event: dict): parsed_event = S3EventBridgeNotificationEvent(raw_event) assert parsed_event.version == raw_event["version"] diff --git a/tests/unit/data_classes/required_dependencies/test_s3_object_event.py b/tests/unit/data_classes/required_dependencies/test_s3_object_event.py index 09d0f14e5f6..5f895db27d1 100644 --- a/tests/unit/data_classes/required_dependencies/test_s3_object_event.py +++ b/tests/unit/data_classes/required_dependencies/test_s3_object_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes.s3_object_event import ( S3ObjectLambdaEvent, ) diff --git a/tests/unit/data_classes/required_dependencies/test_secrets_manager_event.py b/tests/unit/data_classes/required_dependencies/test_secrets_manager_event.py index 6bba952aa9b..212d6a6d563 100644 --- a/tests/unit/data_classes/required_dependencies/test_secrets_manager_event.py +++ b/tests/unit/data_classes/required_dependencies/test_secrets_manager_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes.secrets_manager_event import SecretsManagerEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_ses_event.py b/tests/unit/data_classes/required_dependencies/test_ses_event.py index e81c546fb1e..374c5f4884e 100644 --- a/tests/unit/data_classes/required_dependencies/test_ses_event.py +++ b/tests/unit/data_classes/required_dependencies/test_ses_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import SESEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_sns_event.py b/tests/unit/data_classes/required_dependencies/test_sns_event.py index d091e1b84ac..58f0b1572d7 100644 --- a/tests/unit/data_classes/required_dependencies/test_sns_event.py +++ b/tests/unit/data_classes/required_dependencies/test_sns_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes import SNSEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_sqs_event.py b/tests/unit/data_classes/required_dependencies/test_sqs_event.py index 0cd18bd8a90..1f12534780d 100644 --- a/tests/unit/data_classes/required_dependencies/test_sqs_event.py +++ b/tests/unit/data_classes/required_dependencies/test_sqs_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json from aws_lambda_powertools.utilities.data_classes import S3Event, SQSEvent diff --git a/tests/unit/data_classes/required_dependencies/test_transfer_family_event.py b/tests/unit/data_classes/required_dependencies/test_transfer_family_event.py index 2adcad63c46..0ab7c9fe1c1 100644 --- a/tests/unit/data_classes/required_dependencies/test_transfer_family_event.py +++ b/tests/unit/data_classes/required_dependencies/test_transfer_family_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.transfer_family_event import ( diff --git a/tests/unit/data_classes/required_dependencies/test_vpc_lattice_event.py b/tests/unit/data_classes/required_dependencies/test_vpc_lattice_event.py index 9f5ad742557..5445fcea882 100644 --- a/tests/unit/data_classes/required_dependencies/test_vpc_lattice_event.py +++ b/tests/unit/data_classes/required_dependencies/test_vpc_lattice_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.utilities.data_classes.vpc_lattice import VPCLatticeEvent from tests.functional.utils import load_event diff --git a/tests/unit/data_classes/required_dependencies/test_vpc_lattice_eventv2.py b/tests/unit/data_classes/required_dependencies/test_vpc_lattice_eventv2.py index 1824e1ec080..7661abea603 100644 --- a/tests/unit/data_classes/required_dependencies/test_vpc_lattice_eventv2.py +++ b/tests/unit/data_classes/required_dependencies/test_vpc_lattice_eventv2.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes.vpc_lattice import VPCLatticeEventV2 diff --git a/tests/unit/data_classes/test_cloudformation_custom_resource_event.py b/tests/unit/data_classes/test_cloudformation_custom_resource_event.py index a6b021d61b4..432ea3bdb68 100644 --- a/tests/unit/data_classes/test_cloudformation_custom_resource_event.py +++ b/tests/unit/data_classes/test_cloudformation_custom_resource_event.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.utilities.data_classes import (