From e7f8b96a2a2ad4d183b645addea13a3dfea32a9a Mon Sep 17 00:00:00 2001 From: Akshat Sinha Date: Thu, 16 Oct 2025 19:58:43 +0530 Subject: [PATCH 1/2] refactor: convert ConnectorResourceReference from namedtuple to dataclass --- samtranslator/model/connector/connector.py | 28 ++++++++++------------ 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/samtranslator/model/connector/connector.py b/samtranslator/model/connector/connector.py index 354bf740b7..2dbc00bfeb 100644 --- a/samtranslator/model/connector/connector.py +++ b/samtranslator/model/connector/connector.py @@ -1,4 +1,4 @@ -from collections import namedtuple +from dataclasses import dataclass from typing import Any, Dict, Iterable, List, Optional from typing_extensions import TypeGuard @@ -16,20 +16,18 @@ from samtranslator.public.sdk.resource import SamResourceType from samtranslator.utils.utils import as_array, insert_unique -# TODO: Switch to dataclass -ConnectorResourceReference = namedtuple( - "ConnectorResourceReference", - [ - "logical_id", - "resource_type", - "arn", - "role_name", - "queue_url", - "resource_id", - "name", - "qualifier", - ], -) +@dataclass(frozen=True) +class ConnectorResourceReference: + """Reference to a connector resource with all its identifying properties.""" + + logical_id: str + resource_type: str + arn: Optional[str] = None + role_name: Optional[str] = None + queue_url: Optional[str] = None + resource_id: Optional[str] = None + name: Optional[str] = None + qualifier: Optional[str] = None _SAM_TO_CFN_RESOURCE_TYPE = { SamResourceType.Function.value: LambdaFunction.resource_type, From c057c20cfe6ff39e11410c87704c5567e5753a0a Mon Sep 17 00:00:00 2001 From: Akshat Sinha Date: Thu, 16 Oct 2025 22:52:00 +0530 Subject: [PATCH 2/2] fix: make logical_id Optional[str] to handle None case --- samtranslator/model/connector/connector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samtranslator/model/connector/connector.py b/samtranslator/model/connector/connector.py index 2dbc00bfeb..f6b0c6bfbf 100644 --- a/samtranslator/model/connector/connector.py +++ b/samtranslator/model/connector/connector.py @@ -20,7 +20,7 @@ class ConnectorResourceReference: """Reference to a connector resource with all its identifying properties.""" - logical_id: str + logical_id: Optional[str] resource_type: str arn: Optional[str] = None role_name: Optional[str] = None