class Foo(ts.TypedStruct): a = ts.Field(int) a.add_validation(lambda n: n % 2 == 0, Error1, 'not an even number') a.add_validation(range(10, 31).__contains__, Error2, 'out of range([10, 30])') a.add_conversion(str, int) a.add_conversion(float, int)
class Bar(ts.TypedStruct): a = ts.Field(int, default=1) b = ts.Field([int], default=[2, 3]) c = ts.Field(Foo, default=Foo(x=4)) d = ts.Field(Foo, default=dict(x=5)) e = ts.Field([Foo], default=[Foo(x=6), dict(x=7)]) f = ts.Field({str: Foo}, default=dict(g=Foo(x=8)))
class Baz(ts.TypedStruct): foo = ts.Field(Foo, default=Foo(a=10)) foo2 = Foo bar = Bar
class Bar(ts.TypedStruct): c = ts.Field(int, default=2) d = ts.Field(int)
class Foo(ts.TypedStruct): a = ts.Field(int, default=0) b = ts.Field(int, default=1)
class Foo(ts.TypedStruct): a = ts.Field([str]) b = ts.Field({str: str}) c = ts.Field({int: str})
class Foo(ts.TypedStruct): a = ts.Field(int, preprocess=preprocess)
class Foo(ts.TypedStruct): a = ts.Field(int) a.add_conversion(str, int) a.add_conversion(float, int)
class Bar(ts.TypedStruct): c = ts.Field(str, meta=dict(format='%s')) d = ts.Field(str, meta=dict(format='"%s"'))
class Foo(ts.TypedStruct): a = ts.Field(int, meta=dict(format='%d')) b = ts.Field(int, meta=dict(format='%03d'))
class Bar(ts.TypedStruct): nums = ts.Field({str: int})
class Bar(ts.TypedStruct): foos = ts.Field({int: Foo}) nums = ts.Field({int: int})
class Bar(ts.TypedStruct): foos = ts.Field([Foo]) nums = ts.Field([int])
class Foo(ts.TypedStruct): a = ts.Field(int, default=20) a.add_validation(range(10, 30).__contains__, OutOfRangeError) b = ts.Field(str)