@@ -237,12 +237,14 @@ def __init__(
237237 lambda_context : LambdaContext | None = None ,
238238 parent_id : str | None = None ,
239239 logger : Logger | None = None ,
240+ non_virtual_parent_id : str | None = None ,
240241 ) -> None :
241242 self .state : ExecutionState = state
242243 self .execution_context : ExecutionContext = execution_context
243244 self .lambda_context = lambda_context
244245 self ._parent_id : str | None = parent_id
245246 self ._step_counter : OrderedCounter = OrderedCounter ()
247+ self ._non_virtual_parent_id = non_virtual_parent_id or parent_id
246248
247249 log_info = LogInfo (
248250 execution_state = state ,
@@ -269,7 +271,7 @@ def from_lambda_context(
269271 parent_id = None ,
270272 )
271273
272- def create_child_context (self , parent_id : str ) -> DurableContext :
274+ def create_child_context (self , parent_id : str , non_virtual_parent_id = None ) -> DurableContext :
273275 """Create a child context from the given parent."""
274276 logger .debug ("Creating child context for parent %s" , parent_id )
275277 return DurableContext (
@@ -283,6 +285,7 @@ def create_child_context(self, parent_id: str) -> DurableContext:
283285 parent_id = parent_id ,
284286 )
285287 ),
288+ non_virtual_parent_id = non_virtual_parent_id ,
286289 )
287290
288291 # endregion factories
@@ -347,7 +350,7 @@ def create_callback(
347350 executor : CallbackOperationExecutor = CallbackOperationExecutor (
348351 state = self .state ,
349352 operation_identifier = OperationIdentifier (
350- operation_id = operation_id , parent_id = self ._parent_id , name = name
353+ operation_id = operation_id , parent_id = self ._non_virtual_parent_id , name = name
351354 ),
352355 config = config ,
353356 )
@@ -388,7 +391,7 @@ def invoke(
388391 state = self .state ,
389392 operation_identifier = OperationIdentifier (
390393 operation_id = operation_id ,
391- parent_id = self ._parent_id ,
394+ parent_id = self ._non_virtual_parent_id ,
392395 name = name ,
393396 ),
394397 config = config ,
@@ -409,7 +412,7 @@ def map(
409412
410413 operation_id = self ._create_step_id ()
411414 operation_identifier = OperationIdentifier (
412- operation_id = operation_id , parent_id = self ._parent_id , name = map_name
415+ operation_id = operation_id , parent_id = self ._non_virtual_parent_id , name = map_name
413416 )
414417 map_context = self .create_child_context (parent_id = operation_id )
415418
@@ -454,7 +457,7 @@ def parallel(
454457 operation_id = self ._create_step_id ()
455458 parallel_context = self .create_child_context (parent_id = operation_id )
456459 operation_identifier = OperationIdentifier (
457- operation_id = operation_id , parent_id = self ._parent_id , name = name
460+ operation_id = operation_id , parent_id = self ._non_virtual_parent_id , name = name
458461 )
459462
460463 def parallel_in_child_context () -> BatchResult [T ]:
@@ -515,7 +518,7 @@ def callable_with_child_context():
515518 func = callable_with_child_context ,
516519 state = self .state ,
517520 operation_identifier = OperationIdentifier (
518- operation_id = operation_id , parent_id = self ._parent_id , name = step_name
521+ operation_id = operation_id , parent_id = self ._non_virtual_parent_id , name = step_name
519522 ),
520523 config = config ,
521524 )
@@ -539,7 +542,7 @@ def step(
539542 state = self .state ,
540543 operation_identifier = OperationIdentifier (
541544 operation_id = operation_id ,
542- parent_id = self ._parent_id ,
545+ parent_id = self ._non_virtual_parent_id ,
543546 name = step_name ,
544547 ),
545548 context_logger = self .logger ,
@@ -566,7 +569,7 @@ def wait(self, duration: Duration, name: str | None = None) -> None:
566569 state = self .state ,
567570 operation_identifier = OperationIdentifier (
568571 operation_id = operation_id ,
569- parent_id = self ._parent_id ,
572+ parent_id = self ._non_virtual_parent_id ,
570573 name = name ,
571574 ),
572575 )
@@ -621,7 +624,7 @@ def wait_for_condition(
621624 state = self .state ,
622625 operation_identifier = OperationIdentifier (
623626 operation_id = operation_id ,
624- parent_id = self ._parent_id ,
627+ parent_id = self ._non_virtual_parent_id ,
625628 name = name ,
626629 ),
627630 context_logger = self .logger ,
0 commit comments