etils icon indicating copy to clipboard operation
etils copied to clipboard

edc: unfrozen dataclasses are hashble

Open SobhanMP opened this issue 11 months ago • 2 comments

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

SobhanMP avatar Jul 19 '23 18:07 SobhanMP