from dill import dumps, loads
from dataclasses import dataclass, asdict
@dataclass
class A:
x: int
y: str
@dataclass
class B:
a: A
if __name__ == "__main__":
a = A(1, "test")
before = B(a)
save = dumps(before)
after = loads(save)
# assert before == after # Fails
assert asdict(before) == asdict(after) # Fails
Equality fails. Even asdict also does not returns the same dictionary.