1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
from apischema import serialize, serializer
class Foo:
pass
@serializer
def serialize_foo(foo: Foo) -> int:
return 0
class Foo2(Foo):
pass
# Deserializer is inherited
assert serialize(Foo, Foo()) == serialize(Foo2, Foo2()) == 0
class Bar:
@serializer
def serialize(self) -> int:
return 0
class Bar2(Bar):
def serialize(self) -> int:
return 1
# Deserializer is inherited and overridden
assert serialize(Bar, Bar()) == 0 != serialize(Bar2, Bar2()) == 1
|