Skip to content

0.9.5 (October 11, 2018)

Compare
Choose a tag to compare
@kmvanbrunt kmvanbrunt released this 11 Oct 18:47
· 2139 commits to master since this release
  • Bug Fixes
    • Fixed bug where get_all_commands could return non-callable attributes
    • Fixed bug where alias command was dropping quotes around arguments
    • Fixed bug where running help on argparse commands didn't work if they didn't support -h
    • Fixed transcript testing bug where last command in transcript has no expected output
    • Fixed bugs with how AutoCompleter and ArgparseFunctor handle argparse
      arguments with nargs=argparse.REMAINDER. Tab completion now correctly
      matches how argparse will parse the values. Command strings generated by
      ArgparseFunctor should now be compliant with how argparse expects
      REMAINDER arguments to be ordered.
    • Fixed bugs with how AutoCompleter handles flag prefixes. It is no
      longer hard-coded to use '-' and will check against the prefix_chars in
      the argparse object. Also, single-character tokens that happen to be a
      prefix char are not treated as flags by argparse and AutoCompleter now
      matches that behavior.
    • Fixed bug where AutoCompleter was not distinguishing between a negative number and a flag
    • Fixed bug where AutoCompleter did not handle -- the same way argparse does (all args after -- are non-options)
  • Enhancements
    • Added exit_code attribute of cmd2.Cmd class
      • Enables applications to return a non-zero exit code when exiting from cmdloop
    • ACHelpFormatter now inherits from argparse.RawTextHelpFormatter to make it easier
      for formatting help/description text
    • Aliases are now sorted alphabetically
    • The set command now tab-completes settable parameter names
    • Added async_alert, async_update_prompt, and set_window_title functions
      • These allow you to provide feedback to the user in an asychronous fashion, meaning alerts can
        display when the user is still entering text at the prompt. See async_printing.py
        for an example.
    • Cross-platform colored output support
      • colorama gets initialized properly in Cmd.__init()
      • The Cmd.colors setting is no longer platform dependent and now has three values:
        • Terminal (default) - output methods do not strip any ANSI escape sequences when output is a terminal, but
          if the output is a pipe or a file the escape sequences are stripped
        • Always - output methods never strip ANSI escape sequences, regardless of the output destination
        • Never - output methods strip all ANSI escape sequences
    • Added macro command to create macros, which are similar to aliases, but can take arguments when called
    • All cmd2 command functions have been converted to use argparse.
    • Renamed argparse_example.py to decorator_example.py to help clarify its intent
  • Deprecations
    • Deprecated the built-in cmd2 support for colors including Cmd.colorize() and Cmd._colorcodes
  • Deletions (potentially breaking changes)
    • The preparse, postparsing_precmd, and postparsing_postcmd methods deprecated in the previous release
      have been deleted
      • The new application lifecycle hook system allows for registration of callbacks to be called at various points
        in the lifecycle and is more powerful and flexible than the previous system
    • alias is now a command with sub-commands to create, list, and delete aliases. Therefore its syntax
      has changed. All current alias commands in startup scripts or transcripts will break with this release.
    • unalias was deleted since alias delete replaced it