cmd2.py_bridge¶
Bridges calls made inside of a Python environment to the Cmd2 host app while maintaining a reasonable degree of isolation between the two.
-
class
cmd2.py_bridge.
CommandResult
¶ Encapsulates the results from a cmd2 app command
Stdout: str - output captured from stdout while this command is executing Stderr: str - output captured from stderr while this command is executing Stop: bool - return value of onecmd_plus_hooks after it runs the given command line. Data: possible data populated by the command. Any combination of these fields can be used when developing a scripting API for a given command. By default stdout, stderr, and stop will be captured for you. If there is additional command specific data, then write that to cmd2’s last_result member. That becomes the data member of this tuple.
In some cases, the data member may contain everything needed for a command and storing stdout and stderr might just be a duplication of data that wastes memory. In that case, the StdSim can be told not to store output with its pause_storage member. While this member is True, any output sent to StdSim won’t be saved in its buffer.
The code would look like this:
if isinstance(self.stdout, StdSim): self.stdout.pause_storage = True if isinstance(sys.stderr, StdSim): sys.stderr.pause_storage = True
See
StdSim
for more information.Note
Named tuples are immutable. The contents are there for access, not for modification.
-
data
¶ Alias for field number 3
-
stderr
¶ Alias for field number 1
-
stdout
¶ Alias for field number 0
-
stop
¶ Alias for field number 2
-
-
class
cmd2.py_bridge.
PyBridge
(cmd2_app: cmd2.Cmd)¶ Provides a Python API wrapper for application commands.