Skip to content

Commit 5a9eb2b

Browse files
committed
Wire ChildWf context
1 parent 65ad7da commit 5a9eb2b

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

temporalio/worker/_workflow_instance.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -807,9 +807,14 @@ def _apply_resolve_child_workflow_execution(
807807
ret: Optional[Any] = None
808808
if job.result.completed.HasField("result"):
809809
ret_types = [handle._input.ret_type] if handle._input.ret_type else None
810+
context = temporalio.converter.WorkflowSerializationContext(
811+
namespace=self._info.namespace,
812+
workflow_id=handle._input.id,
813+
)
810814
ret_vals = self._convert_payloads(
811815
[job.result.completed.result],
812816
ret_types,
817+
context,
813818
)
814819
ret = ret_vals[0]
815820
handle._resolve_success(ret)
@@ -2961,8 +2966,15 @@ def _resolve_failure(self, err: BaseException) -> None:
29612966

29622967
def _apply_start_command(self) -> None:
29632968
# Convert arguments before creating command in case it raises error
2969+
context = temporalio.converter.WorkflowSerializationContext(
2970+
namespace=self._instance._info.namespace,
2971+
workflow_id=self._input.id,
2972+
)
2973+
payload_converter = self._instance._payload_converter
2974+
if isinstance(payload_converter, temporalio.converter.WithSerializationContext):
2975+
payload_converter = payload_converter.with_context(context)
29642976
payloads = (
2965-
self._instance._payload_converter.to_payloads(self._input.args)
2977+
payload_converter.to_payloads(self._input.args)
29662978
if self._input.args
29672979
else None
29682980
)
@@ -2997,9 +3009,7 @@ def _apply_start_command(self) -> None:
29973009
temporalio.common._apply_headers(self._input.headers, v.headers)
29983010
if self._input.memo:
29993011
for k, val in self._input.memo.items():
3000-
v.memo[k].CopyFrom(
3001-
self._instance._payload_converter.to_payloads([val])[0]
3002-
)
3012+
v.memo[k].CopyFrom(payload_converter.to_payloads([val])[0])
30033013
if self._input.search_attributes:
30043014
_encode_search_attributes(
30053015
self._input.search_attributes, v.search_attributes
@@ -3012,11 +3022,11 @@ def _apply_start_command(self) -> None:
30123022
v.versioning_intent = self._input.versioning_intent._to_proto()
30133023
if self._input.static_summary:
30143024
command.user_metadata.summary.CopyFrom(
3015-
self._instance._payload_converter.to_payload(self._input.static_summary)
3025+
payload_converter.to_payload(self._input.static_summary)
30163026
)
30173027
if self._input.static_details:
30183028
command.user_metadata.details.CopyFrom(
3019-
self._instance._payload_converter.to_payload(self._input.static_details)
3029+
payload_converter.to_payload(self._input.static_details)
30203030
)
30213031
if self._input.priority:
30223032
v.priority.CopyFrom(self._input.priority._to_proto())

0 commit comments

Comments
 (0)