This was discussed here: https://bugs.python.org/issue46757
This came up because I had a dataclass subclass to flax.linen.Module that had its own post-init. When I figured out that I needed to call super, I did so. Later, when I refactored my code to remove the superclass, the super-call was broken.
It have been much simpler to always call super in __post_init__ from the start. The proposal on the bug report was to get in the habit of doing:
if hasattr(super(), "__post_init__"):
super().__post_init__()
or:
try:
post_init = super().__post_init__
except AttributeError:
pass
else:
post_init()
I think it will be difficult to convince projects to do this.
Best,
Neil