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 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