User Guide

from cwtch import dataclass

@dataclass
class D:
    i: int
    s: str
    b: bool

Info

By default cwtch validates input arguments according to class annotations.

>>> print(D(i=0, s='s', b=True))
D(i=0, s='s', b=True)
>>> print(D(i='0', s=1, b='f'))
D(i=0, s='1', b=False)
>>> print(D(i='a', s='s', b=True))
...
ValidationError: type[ <class '__main__.D'> ] path[ 'i' ]
  type[ <class 'int'> ] input_type[ <class 'str'> ] input_value[ 'a' ]
    ValueError: invalid literal for int() with base 10: 'a'