split the code into 3 sections: (Py) objects, commands, helper
functions
use classes instead of functions for implementing py-* commands. This
seems to be more readable when commands have arguments, and also allows
the implementations to have common error handling logic
split the code into 3 sections: (Py) objects, commands, helper functions
use classes instead of functions for implementing py-* commands. This seems to be more readable when commands have arguments, and also allows the implementations to have common error handling logic