@@ -103,10 +103,10 @@ class _BaseFieldKwargs(typing.TypedDict, total=False):
103103 error_messages : types .ErrorMessages | None
104104 metadata : typing .Mapping [str , typing .Any ] | None
105105 serialization_getter : (
106- typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
106+ str | typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
107107 )
108108 deserialization_getter : (
109- typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
109+ str | typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
110110 )
111111
112112
@@ -211,10 +211,10 @@ def __init__(
211211 error_messages : types .ErrorMessages | None = None ,
212212 metadata : typing .Mapping [str , typing .Any ] | None = None ,
213213 serialization_getter : (
214- typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
214+ str | typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
215215 ) = None ,
216216 deserialization_getter : (
217- typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
217+ str | typing .Callable [[typing .Any , str , typing .Any ], typing .Any ] | None
218218 ) = None ,
219219 ) -> None :
220220 self .dump_default = dump_default
@@ -386,6 +386,14 @@ def _bind_to_schema(self, field_name: str, parent: Schema | Field) -> None:
386386 self .root = self .root or (
387387 self .parent .root if isinstance (self .parent , Field ) else self .parent
388388 )
389+ if isinstance (self .serialization_getter , str ):
390+ self .serialization_getter = utils .callable_or_raise (
391+ getattr (parent , self .serialization_getter )
392+ )
393+ if isinstance (self .deserialization_getter , str ):
394+ self .deserialization_getter = utils .callable_or_raise (
395+ getattr (parent , self .deserialization_getter )
396+ )
389397
390398 def _serialize (self , value : _InternalT | None , ** kwargs ) -> typing .Any :
391399 """Serializes ``value`` to a basic Python datatype. Noop by default.
0 commit comments