dataclasses-json icon indicating copy to clipboard operation
dataclasses-json copied to clipboard

from_dict does not restore field marked with init=False

Open fametrano opened this issue 3 years ago • 0 comments

from_dict does not restore field marked with init=False

from dataclasses import dataclass, field

from dataclasses_json import DataClassJsonMixin


@dataclass
class Person(DataClassJsonMixin):
    name: str
    nick_name: str = field(default="", init=False, repr=True, compare=True)


jack = Person(name="Jack")  # Person(name='Jack', nick_name='')
jack.nick_name = "the Ripper"  # Person(name='Jack', nick_name='the Ripper')

jack_dict = jack.to_dict()  # {'name': 'Jack', 'nick_name': 'the Ripper'}
assert jack.nick_name == jack_dict["nick_name"], "nick_name is retained"

jack_from_dict = Person.from_dict(jack_dict)  # Person(name='Jack', nick_name='')
assert jack == jack_from_dict, "nick_name has been lost"

fametrano avatar Dec 06 '20 19:12 fametrano