I would opt for Traitlets over dataclasses... but both are superior to vanilla Python objects.
You need traitlets yesterday. It comes with a logging attribute and has extensive support for configuration - via command-line, or config files or python oop.
The PETL project has a similar generic tables interface. It would be interesting to see a comparison.
@thedeepself
@programming.dev