Skip to content

0.8.0 (February 1, 2018)

Compare
Choose a tag to compare
@tleonhardt tleonhardt released this 01 Feb 13:31
· 3503 commits to master since this release
  • Bug Fixes
    • Fixed unit tests on Python 3.7 due to changes in how re.escape() behaves in Python 3.7
    • Fixed a bug where unknown commands were getting saved in the history
  • Enhancements
    • Three new decorators for do_* commands to make argument parsing easier
      • with_argument_list decorator to change argument type from str to List[str]
        • do_* commands get a single argument which is a list of strings, as pre-parsed by shlex.split()
      • with_argparser decorator for strict argparse-based argument parsing of command arguments
        • do_* commands get a single argument which is the output of argparse.parse_args()
      • with_argparser_and_unknown_args decorator for argparse-based argument parsing, but allows unknown args
        • do_* commands get two arguments, the output of argparse.parse_known_args()
    • See the Argument Processing section of the documentation for more information on these decorators
    • Added support for Argpasre sub-commands when using the with_argument_parser or with_argparser_and_unknown_args decorators
      • See subcommands.py for an example of how to use subcommands
      • Tab-completion of sub-command names is automatically supported
    • The __relative_load command is now hidden from the help menu by default
      • This command is not intended to be called from the command line, only from within scripts
    • The set command now has an additional -a/--all option to also display read-only settings
    • The history command can now run, edit, and save prior commands, in addition to displaying prior commands.
    • The history command can now automatically generate a transcript file for regression testing
      • This makes creating regression tests for your cmd2 application trivial
  • Commands Removed
    • The cmdenvironment has been removed and its functionality incorporated into the -a/--all argument to set
    • The show command has been removed. Its functionality has always existing within set and continues to do so
    • The save command has been removed. The capability to save commands is now part of the history command.
    • The run command has been removed. The capability to run prior commands is now part of the history command.
  • Other changes
    • The edit command no longer allows you to edit prior commands. The capability to edit prior commands is now part of the history command. The edit command still allows you to edit arbitrary files.
    • the autorun_on_edit setting has been removed.
    • For Python 3.4 and earlier, cmd2 now has an additional dependency on the contextlib2 module
  • Deprecations
    • The old options decorator for optparse-based argument parsing is now deprecated
      • The old decorator is still present for now, but will be removed in a future release
      • cmd2 no longer includes optparse.make_option, so if your app needs it import directly from optparse