As T1756 evolved, I basically ended up starting a rewrite of the old perl Vyatta::Interface module to make it a bit easier to work with in Python.
The attached pull request is the result of that work. Right now, only wireguard is supported, but as the scaffolding is now built, I think adding the rest of the interface types should go quickly