You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed a bug in how redirection and piping worked inside py or pyscript commands
Fixed bug in async_alert where it didn't account for prompts that contained newline characters
Fixed path completion case when CWD is just a slash. Relative path matches were incorrectly prepended with a slash.
Enhancements
Added ability to include command name placeholders in the message printed when trying to run a disabled command.
See docstring for disable_command() or disable_category() for more details.
Added instance attributes to customize error messages without having to override methods. Theses messages can also be colored.
help_error - the error that prints when no help information can be found
default_error - the error that prints when a non-existent command is run
The with_argparser decorators now add the Statement object created when parsing the command line to the argparse.Namespace object they pass to the do_* methods. It is stored in an attribute called __statement__. This can be useful if a command function needs to know the command line for things like logging.
Added a -t option to the load command for automatically generating a transcript based on a script file
When in a pyscript, the stdout and stderr streams of shell commands and processes being piped to are now captured and included in the CommandResult structure.
Potentially breaking changes
The following commands now write to stderr instead of stdout when printing an error. This will make catching errors easier in pyscript.
do_help() - when no help information can be found
default() - in all cases since this is called when an invalid command name is run
_report_disabled_command_usage() - in all cases since this is called when a disabled command is run
Removed *** from beginning of error messages printed by do_help() and default()
Significantly refactored cmd.Cmd class so that all class attributes got converted to instance attributes, also:
Added allow_redirection, terminators, multiline_commands, and shortcuts as optional arguments to cmd2.Cmd.__init__()
A few instance attributes were moved inside StatementParser and properties were created for accessing them
self.pipe_proc is now called self.cur_pipe_proc_reader and is a ProcReader class.
Shell commands and commands being piped to while in a pyscript will function as if their output is going to a pipe and not a tty. This was necessary to be able to capture their output.
Removed reserved_words class attribute due to lack of use
Removed keywords instance attribute due to lack of use