Skip to content

Commit a47056f

Browse files
author
Ran Isenberg
committed
fix: reduce complexity of dynamo envelope
1 parent b1b7fb3 commit a47056f

File tree

5 files changed

+11
-10
lines changed

5 files changed

+11
-10
lines changed

aws_lambda_powertools/utilities/advanced_parser/envelopes/base.py

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
class BaseEnvelope(ABC):
1111
def _parse_user_dict_schema(self, user_event: Dict[str, Any], schema: BaseModel) -> Any:
12+
if user_event is None:
13+
return None
1214
logger.debug("parsing user dictionary schema")
1315
try:
1416
return schema(**user_event)
@@ -17,6 +19,8 @@ def _parse_user_dict_schema(self, user_event: Dict[str, Any], schema: BaseModel)
1719
raise
1820

1921
def _parse_user_json_string_schema(self, user_event: str, schema: BaseModel) -> Any:
22+
if user_event is None:
23+
return None
2024
logger.debug("parsing user dictionary schema")
2125
if schema == str:
2226
logger.debug("input is string, returning")

aws_lambda_powertools/utilities/advanced_parser/envelopes/dynamodb.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ def parse(self, event: Dict[str, Any], schema: BaseModel) -> Any:
1818
raise
1919
output = []
2020
for record in parsed_envelope.Records:
21-
parsed_new_image = (
22-
None if not record.dynamodb.NewImage else self._parse_user_dict_schema(record.dynamodb.NewImage, schema)
23-
) # noqa: E501
24-
parsed_old_image = (
25-
None if not record.dynamodb.OldImage else self._parse_user_dict_schema(record.dynamodb.OldImage, schema)
26-
) # noqa: E501
27-
output.append({"NewImage": parsed_new_image, "OldImage": parsed_old_image})
21+
output.append(
22+
{
23+
"NewImage": self._parse_user_dict_schema(record.dynamodb.NewImage, schema),
24+
"OldImage": self._parse_user_dict_schema(record.dynamodb.OldImage, schema),
25+
}
26+
)
2827
return output

aws_lambda_powertools/utilities/advanced_parser/schemas/dynamodb.py

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from typing import Any, Dict, List, Optional
33

44
from pydantic import BaseModel, root_validator
5-
65
from typing_extensions import Literal
76

87

aws_lambda_powertools/utilities/advanced_parser/schemas/sqs.py

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from typing import Dict, List, Optional
44

55
from pydantic import BaseModel, root_validator, validator
6-
76
from typing_extensions import Literal
87

98

tests/functional/parser/schemas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from typing import Dict, List, Optional
22

33
from pydantic import BaseModel
4+
from typing_extensions import Literal
45

56
from aws_lambda_powertools.utilities.advanced_parser.schemas import (
67
DynamoDBSchema,
@@ -10,7 +11,6 @@
1011
SqsRecordSchema,
1112
SqsSchema,
1213
)
13-
from typing_extensions import Literal
1414

1515

1616
class MyDynamoBusiness(BaseModel):

0 commit comments

Comments
 (0)