Skip to content

Commit 18ae349

Browse files
committed
cr change requests
1 parent 988dcfa commit 18ae349

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

aws_lambda_powertools/utilities/idempotency/serialization/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ class BaseIdempotencySerializer(ABC):
1212

1313
@abstractmethod
1414
def to_dict(self, data: Any) -> Dict:
15-
pass
15+
raise NotImplementedError("Implementation of to_dict is required")
1616

1717
@abstractmethod
1818
def from_dict(self, data: Dict) -> Any:
19-
pass
19+
raise NotImplementedError("Implementation of from_dict is required")
2020

2121

2222
class BaseIdempotencyModelSerializer(BaseIdempotencySerializer):

examples/idempotency/src/working_with_idempotent_function_dataclass_output_serializer.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from dataclasses import dataclass
1+
from dataclasses import asdict, dataclass
2+
from typing import Any, Dict
23

34
from aws_lambda_powertools.utilities.idempotency import (
45
DynamoDBPersistenceLayer,
@@ -29,9 +30,17 @@ class OrderOutput:
2930
order_id: int
3031

3132

33+
def custom_to_dict(x: Any) -> Dict:
34+
return asdict(x)
35+
36+
37+
def custom_from_dict(x: Dict) -> Any:
38+
return OrderOutput(**x)
39+
40+
3241
order_output_serializer: CustomDictSerializer = CustomDictSerializer(
33-
to_dict=lambda x: x.asdict(),
34-
from_dict=lambda x: OrderOutput(**x),
42+
to_dict=custom_to_dict,
43+
from_dict=custom_from_dict,
3544
)
3645

3746

0 commit comments

Comments
 (0)