Releases: python-cmd2/cmd2
Releases · python-cmd2/cmd2
0.9.8 (February 06, 2019)
- Bug Fixes
- Fixed issue with echoing strings in StdSim. Because they were being sent to a binary buffer, line buffering was being ignored.
- Enhancements
- Made quit() and exit() functions available to scripts run with pyscript. This allows those scripts to exit back to the console's prompt instead of exiting the whole application.
0.9.7 (January 08, 2019)
- Bug Fixes
- Fixed bug when user chooses a zero or negative index when calling
Cmd.select() - Restored behavior where
cmd_echoalways starts as False in a py script. This was broken in 0.9.5.
- Fixed bug when user chooses a zero or negative index when calling
- Enhancements
- cmdloop now only attempts to register a custom signal handler for SIGINT if running in the main thread
- commands run as a result of
default_to_shellbeing True now run viado_shell()and are saved
to history. - Added more tab completion to pyscript command.
- Deletions (potentially breaking changes)
- Deleted
Cmd.colorize()andCmd._colorcodeswhich were deprecated in 0.9.5 - Replaced
dir_exe_onlyanddir_onlyflags inpath_completewith optionalpath_filterfunction
that is used to filter paths out of completion results. perror()no longer prepends "ERROR: " to the error message being printed
- Deleted
0.9.6 (October 13, 2018)
- Bug Fixes
- Fixed bug introduced in 0.9.5 caused by backing up and restoring
self.promptinpseudo_raw_input.
As part of this fix, continuation prompts will not be redrawn withasync_update_promptorasync_alert.
- Fixed bug introduced in 0.9.5 caused by backing up and restoring
- Enhancements
- All platforms now depend on wcwidth to assist with asynchronous alerts.
- Macros now accept extra arguments when called. These will be tacked onto the resolved command.
- All cmd2 commands run via
pynow go throughonecmd_plus_hooks.
0.9.5 (October 11, 2018)
- Bug Fixes
- Fixed bug where
get_all_commandscould 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)
- Fixed bug where
- Enhancements
- Added
exit_codeattribute ofcmd2.Cmdclass- Enables applications to return a non-zero exit code when exiting from
cmdloop
- Enables applications to return a non-zero exit code when exiting from
ACHelpFormatternow inherits fromargparse.RawTextHelpFormatterto 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, andset_window_titlefunctions- 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.
- These allow you to provide feedback to the user in an asychronous fashion, meaning alerts can
- Cross-platform colored output support
coloramagets initialized properly inCmd.__init()- The
Cmd.colorssetting 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
- Terminal (default) - output methods do not strip any ANSI escape sequences when output is a terminal, but
- Added
macrocommand 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
- Added
- Deprecations
- Deprecated the built-in
cmd2support for colors includingCmd.colorize()andCmd._colorcodes
- Deprecated the built-in
- Deletions (potentially breaking changes)
- The
preparse,postparsing_precmd, andpostparsing_postcmdmethods 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
- The new application lifecycle hook system allows for registration of callbacks to be called at various points
aliasis 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.unaliaswas deleted sincealias deletereplaced it
- The
0.9.4 (August 21, 2018)
- Bug Fixes
- Fixed bug where
preparsewas not getting called - Fixed bug in parsing of multiline commands where matching quote is on another line
- Fixed bug where
- Enhancements
- Improved implementation of lifecycle hooks to support a plugin
framework, seedocs/hooks.rstfor details. - New dependency on
attrsthird party module - Added
matches_sortedmember to support custom sorting of tab-completion matches - Added tab_autocomp_dynamic.py example
- Demonstrates updating the argparse object during init instead of during class construction
- Improved implementation of lifecycle hooks to support a plugin
- Deprecations
- Deprecated the following hook methods, see
hooks.rstfor full details:cmd2.Cmd.preparse()- equivalent functionality available
viacmd2.Cmd.register_postparsing_hook()cmd2.Cmd.postparsing_precmd()- equivalent functionality available
viacmd2.Cmd.register_postparsing_hook()cmd2.Cmd.postparsing_postcmd()- equivalent functionality available
viacmd2.Cmd.register_postcmd_hook()
- Deprecated the following hook methods, see
0.8.9 (August 20, 2018)
- Bug Fixes
- Fixed extra slash that could print when tab completing users on Windows
NOTE: This is likely the final release of cmd2 for Python 2.7
0.9.3 (July 12, 2018)
- Bug Fixes
- Fixed bug when StatementParser
__init__()was called withterminatorsequal toNone - Fixed bug when
Cmd.onecmd()was called with a rawstr
- Fixed bug when StatementParser
- Enhancements
- Added
--clearflag tohistorycommand that clears both the command and readline history.
- Added
- Deletions
- The
CmdResulthelper class which was deprecated in the previous release has now been deleted- It has been replaced by the improved
CommandResultclass
- It has been replaced by the improved
- The
0.9.2 (June 28, 2018)
- Bug Fixes
- Fixed issue where piping and redirecting did not work correctly with paths that had spaces
- Enhancements
- Added ability to print a header above tab-completion suggestions using
completion_headermember - Added
pagerandpager_chopattributes to thecmd2.Cmdclasspagerdefaults to less -RXF on POSIX and more on Windowspager_chopdefaults to less -SRXF on POSIX and more on Windows
- Added
chopargument tocmd2.Cmd.ppaged()method for displaying output using a pager- If
chopisFalse, thenself.pageris used as the pager - Otherwise
self.pager_chopis used as the pager
- If
- Greatly improved the table_display.py example
- Now uses the new tableformatter module which looks better than
tabulate
- Now uses the new tableformatter module which looks better than
- Added ability to print a header above tab-completion suggestions using
- Deprecations
- The
CmdResulthelper class is deprecated and replaced by the improvedCommandResultclassCommandResulthas the following attributes: stdout, stderr, and dataCmdResulthad attributes of: out, err, war
CmdResultwill be deleted in the next release
- The
0.8.8 (June 28, 2018)
- Bug Fixes
- Prevent crashes that could occur attempting to open a file in non-existent directory or with very long filename
- Enhancements
display_matchesis no longer restricted to delimited strings
0.9.1 (May 28, 2018)
- Bug Fixes
- Fix packaging error for 0.8.x versions (yes we had to deploy a new version
of the 0.9.x series to fix a packaging error with the 0.8.x version)
- Fix packaging error for 0.8.x versions (yes we had to deploy a new version