Translating into python might be a stretch, but I support pretty much everything else. Generally, I will use the command block interface rather than writing a function because functions are written with a normal text editor and don't implement auto-complete features. You also cannot tell whether there is an error in your code until you reload the game. Command blocks aren't much better, though, since they are only one-line, take up a lot of space, and the error system is often unclear or incomplete.
I would suggest that auto-complete features be added for nbt and selector data, as well as implementing everything shown here. Also, if the error is an invalid id it should suggest some valid ids for you. And this UI should be implemented into a stand-alone application for writing and parsing functions, allowing you to easily write code and detect errors without actually having Minecraft open.