To simplify the creation of info and status commands, there are a couple of helper functions that make it easy to add these commands and have the output formatted in a standard fashion. Instead of calling new_command directly, you call new_info_command and new_status_command. The functions you provide to these functions should not print anything directly, instead they should return the information to be printed.
import sim_commands def get_info(obj): return [("Connections", [("Up", obj.up), ("Down", obj.down)]), ("Sizes", [("Width", obj.width), ("Height", obj.height), ("Area", obj.width * obj.height)])] sim_commands.new_info_command('sample-device', get_info) def get_sample_status(obj): return [(None, [("Attribute 'value'", obj.value)])] sim_commands.new_status_command('sample-device', get_status)
The data returned from the functions should be a list of sections, where each section is a tuple of a section title and a list of entries. The section title should be a string or None. An entry is a tuple of a name and a value. The name is a string, and the value can be just about anything.