class Foo: i: int dt1: datetime # Override by field serializer/deserializer. dt2: datetime = field( serializer=lambda x: x.strftime('%y.%m.%d'), deserializer=lambda x: datetime.strptime(x, '%y.%m.%d')) # Override by the default serializer/deserializer. dt3: datetime = field(serializer=default_serializer, deserializer=default_deserializer)
class Foo: dt1: datetime dt2: datetime = field( serializer=lambda x: x.strftime('%d/%m/%y'), deserializer=lambda x: datetime.strptime(x, '%d/%m/%y')) dt3: Optional[datetime] = field( serializer=lambda x: x.strftime('%d/%m/%y') if x else None, deserializer=lambda x: datetime.strptime(x, '%d/%m/%y') if x else None, )
class Foo: i: int dt1: datetime dt2: datetime = field( serializer=lambda x: x.strftime('%y.%m.%d'), deserializer=lambda x: datetime.strptime(x, '%y.%m.%d'))
class Foo: a: int b: str bar: Bar = field(flatten=True)
class Bar: c: float d: bool baz: Baz = field(flatten=True)
class World: player: str enemies: List[str] = field(default_factory=list, skip_if_false=True) buddy: str = field(default='', skip_if=lambda v: v == 'Pikachu') town: str = field(default='Masara Town', skip_if_default=True)
class Foo: # Use 'class_name' because 'class' is a keyword. class_name: str = field(rename='class')
class Foo: i: int = field(serializer=raise_exception, deserializer=raise_exception)
class Foo: comments: Optional[List[str]] = serde.field( default_factory=list, skip_if_false=True, skip_if=lambda v: len(v) == 1)
class Foo: comments: Optional[List[str]] = serde.field(default_factory=list, skip_if_false=True)
class Foo: comments: Optional[List[str]] = serde.field( default_factory=list, skip_if=lambda v: len(v) == 0) attrs: Optional[Dict[str, str]] = serde.field( default_factory=dict, skip_if=lambda v: v is None or len(v) == 0)
class Foo: class_name: str = serde.field(rename='class')
class Foo: foo: str items: Dict[str, int] = serde.field(default_factory=dict)
class Foo: i: int = 10 s: str = 'foo' f: float = field(default=100.0) # Use dataclass field. b: bool = field(default=True) d: Dict[str, int] = field(default_factory=dict)
class Foo: a: str = serde.field(default='foo', skip_if_default=True)
class Foo: i: int dt1: datetime dt2: datetime = field(serializer=default_serializer, deserializer=default_deserializer)
class Resource: name: str hash: str metadata: Dict[str, str] = field(default_factory=dict, skip=True)
class Foo: i: int = field(serializer=lambda: '10', deserializer=lambda: 10)
class Foo: dt1: datetime dt2: datetime = field( serializer=lambda x: x.strftime('%d/%m/%y'), deserializer=lambda x: datetime.strptime(x, '%d/%m/%y'))