Customising dataclasses¤
from dataclasses import dataclass, field
import wadler_lindig as wl
Hiding fields¤
By default, all fields of a dataclass
are shown.
wadler_lindig
respects the dataclass
mechanism of setting repr=False
to hide fields if required.
@dataclass
class MyData:
not_hidden: int
hidden: int = field(repr=False)
# hidden is not shown
wl.pprint(MyData(1, 2))
MyData(not_hidden=1)
Hiding default fields¤
By default wadler_lindig
hides dataclass fields with a default argument
@dataclass
class DefaultArgs:
x1: int
x2: int = field(default=2)
# x2 is not printed
wl.pprint(DefaultArgs(1))
DefaultArgs(x1=1)
You can disable this by setting hide_defaults=False
wl.pprint(DefaultArgs(1), hide_defaults=False)
DefaultArgs(x1=1, x2=2)
Show module of dataclass¤
By default, the origin of the dataclass is hidden.
If required, you can set show_dataclass_module=True
to see in which module the dataclass was defined.
wl.pprint(DefaultArgs(1), show_dataclass_module=True)
__main__.DefaultArgs(x1=1)