Open NCRonB opened 2 months ago
@NCRonB I thought the same, but I found out the __post_init__()
is indeed being called. However, if there are any new fields defined in it (as in your example), these are silently ignored. To fix it, you have to create your StructEgg
with the configuration option dict=True
.
If the __post_init__()
only contains validations or similar, there's probably no need for the dict=True
option.
@jankotuc-photoneo I'm not defining any new fields — only setting the one field grade
to a different value. If you change the __post_init__()
to simply print() something, you'll see that it doesn't print.
I tried what you suggested, and it still doesn't work. If you have an example where it does, please share.
Description
When using
msgspec.convert()
to convert to a Struct withfrom_attributes=True
, the Struct's__post_init__
is not called. It works as expected with dataclasses.The last one should be: