Why don't we use dataclasses.dataclass or pydantic to define pythonic datamodels, instead of the custom Serializable ABC?
Serializable's definition implies that it's an abstract base class, yet it's not exactly "abstract" and provides the actual implementation of helper methods serialize and deserialize, which makes it a "mix-in" class rather than an ABC.
- From reading the code, it seems like the functionalities provided by
Serializable can be accomplished by the standard library dataclass or (if desiring something more powerful), the pydantic classes.
- Using the standard library or
pydantic would relieve this library from maintaining the serialization and typing infrastructure, and they are also much more battle tested.
Just some thoughts and rambling since the Serializable mechanism doesn't seem to be very robust as I'm getting bugs from k-wave-python
waltsims/k-wave-python#36