Skip to content

Commit c8dd3c8

Browse files
authored
fix: add .from_dict() from OperationUpdate class (#26)
1 parent 4ff2546 commit c8dd3c8

File tree

2 files changed

+1285
-716
lines changed

2 files changed

+1285
-716
lines changed

src/aws_durable_execution_sdk_python/lambda_service.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,47 @@ def to_dict(self) -> MutableMapping[str, Any]:
333333

334334
return result
335335

336+
@classmethod
337+
def from_dict(cls, data: MutableMapping[str, Any]) -> OperationUpdate:
338+
"""Create OperationUpdate from dictionary data."""
339+
error = ErrorObject.from_dict(data["Error"]) if data.get("Error") else None
340+
341+
context_options = None
342+
if context_data := data.get("ContextOptions"):
343+
context_options = ContextOptions.from_dict(context_data)
344+
345+
step_options = None
346+
if step_data := data.get("StepOptions"):
347+
step_options = StepOptions.from_dict(step_data)
348+
349+
wait_options = None
350+
if wait_data := data.get("WaitOptions"):
351+
wait_options = WaitOptions.from_dict(wait_data)
352+
353+
callback_options = None
354+
if callback_data := data.get("CallbackOptions"):
355+
callback_options = CallbackOptions.from_dict(callback_data)
356+
357+
invoke_options = None
358+
if invoke_data := data.get("InvokeOptions"):
359+
invoke_options = InvokeOptions.from_dict(invoke_data)
360+
361+
return cls(
362+
operation_id=data["Id"],
363+
operation_type=OperationType(data["Type"]),
364+
action=OperationAction(data["Action"]),
365+
parent_id=data.get("ParentId"),
366+
name=data.get("Name"),
367+
sub_type=OperationSubType(data["SubType"]) if data.get("SubType") else None,
368+
payload=data.get("Payload"),
369+
error=error,
370+
context_options=context_options,
371+
step_options=step_options,
372+
wait_options=wait_options,
373+
callback_options=callback_options,
374+
invoke_options=invoke_options,
375+
)
376+
336377
@classmethod
337378
def create_callback(
338379
cls, identifier: OperationIdentifier, callback_options: CallbackOptions

0 commit comments

Comments
 (0)