Skip to content

0.9.12 (April 22, 2019) 🌍

Compare
Choose a tag to compare
@tleonhardt tleonhardt released this 23 Apr 01:53
· 1800 commits to master since this release
  • Bug Fixes
    • 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