Skip to content

Commit ea3548a

Browse files
committed
Implement it in the SDK
1 parent feb90f3 commit ea3548a

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

temporalio/converter.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,15 @@ def from_payloads(
384384
) from err
385385
return values
386386

387+
def with_context(self, context: Optional[SerializationContext]) -> Self:
388+
instance = type(self).__new__(type(self))
389+
converters = [
390+
c.with_context(context) if isinstance(c, WithSerializationContext) else c
391+
for c in self.converters.values()
392+
]
393+
CompositePayloadConverter.__init__(instance, *converters)
394+
return instance
395+
387396

388397
class DefaultPayloadConverter(CompositePayloadConverter):
389398
"""Default payload converter compatible with other Temporal SDKs.

tests/test_serialization_context.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
from dataclasses import dataclass, field
66
from typing import Any, Optional, Type
77

8-
from typing_extensions import Self
9-
108
from temporalio import workflow
119
from temporalio.api.common.v1 import Payload
1210
from temporalio.client import Client
@@ -80,15 +78,6 @@ def __init__(self):
8078
*DefaultPayloadConverter.default_encoding_payload_converters,
8179
)
8280

83-
def with_context(self, context: Optional[SerializationContext]) -> Self:
84-
instance = type(self).__new__(type(self))
85-
converters = [
86-
c.with_context(context) if isinstance(c, WithSerializationContext) else c
87-
for c in self.converters.values()
88-
]
89-
CompositePayloadConverter.__init__(instance, *converters)
90-
return instance
91-
9281

9382
data_converter = dataclasses.replace(
9483
DataConverter.default,

0 commit comments

Comments
 (0)