etils
etils copied to clipboard
edc: unfrozen dataclasses are hashble
I think the general consensus in Python is that mutable types should not be hashable; however unfrozen dataclasses are hashable. See code below:
import dataclasses
from etils import edc
@edc.dataclass(allow_unfrozen=True)
@dataclasses.dataclass(eq=True, kw_only=True, frozen=True)
class Conf:
x: int = 3
a = Conf()
a = a.unfrozen()
a.x = 2
hash(a) # should fail
ps. edc is really handy