class M: f = string_field(default_from_attr='_f') s = set_field(str, default_from_attr='_s') @property def _f(self): return 'hello' @property def _s(self): return {'hey'}
class M: s = string_field(factory=lambda: 'hello') d = datetime_field(factory=lambda: dt) i = int_field(factory=lambda: 2) dec = decimal_field(factory=lambda: decimal.Decimal('3')) f = float_field(factory=lambda: 2.3) b = bool_field(factory=lambda: True) by = bytes_field(factory=lambda: b'x') u = url_field(factory=lambda: 'https://foo.com') a = any_field(factory=lambda: 1) o = object_field(int, factory=lambda: 2) k = key(int, factory=lambda: 3)
class B: f = string_field()
class A: f = string_field()
class V2: b = string_field()
class V1: a = string_field()
class Value: value = string_field()
class B: v = string_field()
class M: a = string_field() b = string_field(should_serialise=False)
class A: v = string_field(unique=True)
class Bad: a = string_field(is_optional='hello')
class Bad: a = string_field(is_optional=None)
class Good: a = string_field(is_optional=True) b = string_field(is_optional=False)
class M: f = string_field(is_optional=True, validator=v)