You probably already know, but in case you don't, python has phidata[1]
[1]: https://docs.phidata.com/introduction