|
![](/images/spacer.gif) |
![](/images/spacer.gif) |
![](/images/spacer.gif) |
Changelog for python36-cmd2-2.1.0-2.1.noarch.rpm :
* Mon Jun 14 2021 Martin Hauke - Udpate to version 2.1.0 Enhancements * Converted persistent history files from pickle to compressed JSON. * Mon Jun 07 2021 Martin Hauke - Update to version 2.0.1 Bug Fixes * Exclude plugins and tests_isolated directories from tarball published to PyPI for cmd2 release- Update to version 2.0.0 Bug Fixes * Fixed issue where history indexes could get repeated * Fixed issue where TableCreator was tossing blank last line * Corrected help text for alias command Breaking Changes * cmd2 2.0 supports Python 3.6+ (removed support for Python 3.5) * Argparse Completion / Settables + Replaced choices_function / choices_method with choices_provider. + Replaced completer_function / completer_method with completer. + ArgparseCompleter now always passes cmd2.Cmd or CommandSet instance as the first positional + argument to choices_provider and completer functions. * Moved basic_complete from utils into cmd2.Cmd class. * Moved CompletionError to exceptions.py * Namespace.__statement__ has been removed. Use Namespace.cmd2_statement.get() instead. * Removed --silent flag from alias/macro create since startup scripts can be run silently. * Removed --with_silent flag from alias/macro list since startup scripts can be run silently. * Removed with_argparser_and_unknown_args since it was deprecated in 1.3.0. * Renamed silent_startup_script to silence_startup_script for clarity. * Replaced cmd2.Cmd.completion_header with cmd2.Cmd.formatted_completions. * Settables now have new initialization parameters. It is now a required parameter to supply the reference to the object that holds the settable attribute. cmd2.Cmd.settables is no longer a public dict attribute - it is now a property that aggregates all Settables across all registered CommandSets. * Failed transcript testing now sets self.exit_code to 1 instead of -1. * Renamed use_ipython keyword parameter of cmd2.Cmd.__init__() to include_ipy. * ipy command is only enabled if include_py parameter is True. * Removed ability to run Python commands from the command line with py. Now py takes no arguments and just opens an interactive Python shell. * Changed default behavior of runcmds_plus_hooks() to not stop when Ctrl-C is pressed and instead run the next command in its list. * Removed cmd2.Cmd.quit_on_sigint flag, which when True, quit the application when Ctrl-C was pressed at the prompt. * The history bug fix resulted in structure changes to the classes in cmd2.history. Therefore, persistent history files created with versions older than 2.0.0 are not compatible. Enhancements * Added support for custom tab completion and up-arrow input history to cmd2.Cmd2.read_input. * Added cmd2.exceptions.PassThroughException to raise unhandled command exceptions instead of printing them. * Added support for ANSI styles and newlines in tab completion results using cmd2.Cmd.formatted_completions. * cmd2 provides this capability automatically if you return argparse completion matches as CompletionItems. * Settables enhancements: + Settables may be optionally scoped to a CommandSet. + Settables added to CommandSets will appear when a CommandSet is registered and disappear when a CommandSet is unregistered. Optionally, scoped Settables may have a prepended prefix. + Settables now allow changes to be applied to any arbitrary object attribute. It no longer needs to match an + attribute added to the cmd2 instance itself. + Raising SystemExit or calling sys.exit() in a command or hook function will set self.exit_code to the exit code used in those calls. It will also result in the command loop stopping. + ipy command now includes all of self.py_locals in the IPython environment + Added include_py keyword parameter to cmd2.Cmd.__init__(). If False, then the py command will not be available. Defaults to False. run_pyscript is not affected by this parameter. + Made the amount of space between columns in a SimpleTable configurable On POSIX systems, shell commands and processes being piped to are now run in the user\'s preferred shell instead of /bin/sh. The preferred shell is obtained by reading the SHELL environment variable. If that doesn\'t exist or is empty, then /bin/sh is used. + Changed cmd2.Cmd._run_editor() to the public method cmd2.Cmd.run_editor() * Sun Apr 25 2021 Martin Hauke - Update to version 1.5.0 * Fixed bug where setting always_show_hint=True did not show a hint when completing Settables. * Fixed bug in editor detection logic on Linux systems that do not have which. * Fixed bug in table creator where column headers with tabs would result in an incorrect width calculation. * Fixed FileNotFoundError which occurred when running history - -clear and no history file existed. * Added silent_startup_script option to cmd2.Cmd.__init__(). If True, then the startup script\'s output will be suppressed. Anything written to stderr will still display. * Thu Dec 03 2020 Benjamin Greiner - Use correct sitelib macro in files section for multiple flavors gh#openSUSE/python-rpm-macros#66 * Thu Nov 26 2020 Dirk Mueller - update to 1.4.0: * Fixed tab completion crash on Windows * Changed how multiline doc string help is formatted to match style of other help messages * Mon Nov 09 2020 Dirk Mueller - update to 1.3.8: * a few hundred changes, see included CHANGELOG.md for details * Thu Jun 04 2020 Tomáš Chvátal - Do not restrict pytest4 as it works quite fine with pytest5 * Thu Feb 27 2020 Dirk Mueller - go back to 0.8.9, cliff (which is the only user) is not compatible with >= 0.9.0 atm- Same commit like december, november and october last year. * Fri Jan 03 2020 Matej Cepl - Update to 0.9.22: - Fixed bug where a redefined ansi.style_error was not being used in all cmd2 files - Enabled line buffering when redirecting output to a file - Added align_left(), align_center(), and align_right() to utils.py. All 3 of these functions support ANSI escape sequences and characters with display widths greater than 1. They wrap align_text() which is also in utils.py. - Fixed bug where pipe processes were not being stopped by Ctrl-C - Added exception handling to account for non-standard Python environments in which readline is not loaded dynamically from a shared library file - Added read_input() function that is used to read from stdin. Unlike the Python built-in input(), it also has an argument to disable tab completion while input is being entered. - Added capability to override the argument parser class used by cmd2 built-in commands. See override_parser.py example for more details. - Added end argument to pfeedback() to be consistent with the other print functions like poutput(). - Added apply_style to pwarning(). - For consistency between all the print functions: - Made end and chop keyword-only arguments of ppaged() - end is always added to message in ppaged() * Fri Nov 22 2019 Tomáš Chvátal - Fix up dependencies and everything after last update to 0.9.20 * Thu Nov 14 2019 Matej Cepl - Update to 0.9.20: - the list of changes is too long, complete changelog is in CHANGELOG.md included in this package.- Package is python3-only now. * Wed Oct 23 2019 Dirk Mueller - go back to 0.8.9, cliff (which is the only user) is not compatible with >= 0.9.0 atm * Fri Sep 13 2019 Tomáš Chvátal - Update to 0.9.16: * Fixed inconsistent parsing/tab completion behavio * Create directory for the persistent history file if it does not already exist * Aliases and macros can no longer have the same name as a command * Thu Aug 01 2019 pgajdosAATTsuse.com- fix pyperclip version in BuildRequires * Thu Aug 01 2019 pgajdosAATTsuse.com- version update to 0.9.15 * too long list, see CHANGELOG.md * Mon Apr 29 2019 Matej Cepl - fix previous commit- Update to 0.9.12: - 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. - Added instance attributes to customize error messages without having to override methods. Theses messages can also be colored. - 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. - 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: 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. * Mon Apr 15 2019 Dirk Mueller - fix build for SLE12 and older * Tue Apr 09 2019 Thomas Bechtold - Fix Requires for older python3 versions * Fri Mar 15 2019 Tomáš Chvátal - Add vim to depends as it is used in tests as an editor * Thu Mar 14 2019 Matěj Cepl - Add vim to BR * Thu Mar 14 2019 Tomáš Chvátal - Update to 0.9.11: * too many changes to enumerate, see CHANGELOG.md- Really run tests * Thu Feb 28 2019 Thomas Bechtold - update to 0.9.10: * Fixed unit test that hangs on Windows * Fixed bug where the ``set`` command was not tab completing from the current ``settable`` dictionary. * Changed edit command to use do_shell() instead of calling os.system() * Fixed issue with echoing strings in StdSim. Because they were being sent to a binary buffer, line buffering was being ignored. * 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. * Fixed bug when user chooses a zero or negative index when calling ``Cmd.select()`` * Restored behavior where ``cmd_echo`` always starts as False in a py script. This was broken in 0.9.5. * * *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_shell`` being * *True * * now run via ``do_shell()`` and are saved to history. * Added more tab completion to pyscript command. * Deleted ``Cmd.colorize()`` and ``Cmd._colorcodes`` which were deprecated in 0.9.5 * Replaced ``dir_exe_only`` and ``dir_only`` flags in ``path_complete`` with optional ``path_filter`` function that is used to filter paths out of completion results. * ``perror()`` no longer prepends \"ERROR: \" to the error message being printed * Fixed bug introduced in 0.9.5 caused by backing up and restoring `self.prompt` in `pseudo_raw_input`. As part of this fix, continuation prompts will not be redrawn with `async_update_prompt` or `async_alert`. * All platforms now depend on [wcwidth](https://pypi.python.org/pypi/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 `py` now go through `onecmd_plus_hooks`. * 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) * 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. * Cross-platform colored output support * Deprecated the built-in ``cmd2`` support for colors including ``Cmd.colorize()`` and ``Cmd._colorcodes`` * 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- Drop remove-typing.patch . Applied upstream * Mon Dec 03 2018 Matěj Cepl - Add remove-typing.patch removing requirements for the typing library, which is useless now. * Thu Sep 20 2018 Todd R - Update to version 0.9.4 + Bug Fixes * Fixed bug where ``preparse`` was not getting called * Fixed bug in parsing of multiline commands where matching quote is on another line + Enhancements * Improved implementation of lifecycle hooks to support a plugin framework, see ``docs/hooks.rst`` for details. * New dependency on ``attrs`` third party module * Added ``matches_sorted`` member to support custom sorting of tab-completion matches * Added [tab_autocomp_dynamic.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_autocomp_dynamic.py) example * Demonstrates updating the argparse object during init instead of during class construction + Deprecations * Deprecated the following hook methods, see ``hooks.rst`` for full details: * ``cmd2.Cmd.preparse()`` - equivalent functionality available via ``cmd2.Cmd.register_postparsing_hook()`` * ``cmd2.Cmd.postparsing_precmd()`` - equivalent functionality available via ``cmd2.Cmd.register_postparsing_hook()`` * ``cmd2.Cmd.postparsing_postcmd()`` - equivalent functionality available via ``cmd2.Cmd.register_postcmd_hook()``- Update to version 0.9.3 + Bug Fixes * Fixed bug when StatementParser ``__init__()`` was called with ``terminators`` equal to ``None`` * Fixed bug when ``Cmd.onecmd()`` was called with a raw ``str`` + Enhancements * Added ``--clear`` flag to ``history`` command that clears both the command and readline history. + Deletions * The ``CmdResult`` helper class which was *deprecated * in the previous release has now been deleted * It has been replaced by the improved ``CommandResult`` class- Update to version 0.9.2 + 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_header` member * Added ``pager`` and ``pager_chop`` attributes to the ``cmd2.Cmd`` class * ``pager`` defaults to * *less -RXF * * on POSIX and * *more * * on Windows * ``pager_chop`` defaults to * *less -SRXF * * on POSIX and * *more * * on Windows * Added ``chop`` argument to ``cmd2.Cmd.ppaged()`` method for displaying output using a pager * If ``chop`` is ``False``, then ``self.pager`` is used as the pager * Otherwise ``self.pager_chop`` is used as the pager * Greatly improved the [table_display.py](https://github.com/python-cmd2/cmd2/blob/master/examples/table_display.py) example * Now uses the new [tableformatter](https://github.com/python-tableformatter/tableformatter) module which looks better than ``tabulate`` + Deprecations * The ``CmdResult`` helper class is *deprecated * and replaced by the improved ``CommandResult`` class * ``CommandResult`` has the following attributes: * *stdout * *, * *stderr * *, and * *data * * * ``CmdResult`` had attributes of: * *out * *, * *err * *, * *war * * * ``CmdResult`` will be deleted in the next release- Update to version 0.8.8 + Bug Fixes * Prevent crashes that could occur attempting to open a file in non-existent directory or with very long filename + Enhancements * `display_matches` is no longer restricted to delimited strings- Update to version 0.9.1 + 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)- Update to version 0.9.0 + Bug Fixes * If self.default_to_shell is true, then redirection and piping are now properly passed to the shell. Previously it was truncated. * Submenus now call all hooks, it used to just call precmd and postcmd. + Enhancements * Automatic completion of ``argparse`` arguments via ``cmd2.argparse_completer.AutoCompleter`` * See the [tab_autocompletion.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_autocompletion.py) example for a demonstration of how to use this feature * ``cmd2`` no longer depends on the ``six`` module * ``cmd2`` is now a multi-file Python package instead of a single-file module * New pyscript approach that provides a pythonic interface to commands in the cmd2 application. * Switch command parsing from pyparsing to custom code which utilizes shlex. * The object passed to do_ * methods has changed. It no longer is the pyparsing object, it\'s a new Statement object, which is a subclass of ``str``. The statement object has many attributes which give you access to various components of the parsed input. If you were using anything but the string in your do_ * methods, this change will require you to update your code. * ``commentGrammers`` is no longer supported or available. Comments are C-style or python style. * Input redirection no longer supported. Use the load command instead. * ``multilineCommand`` attribute is ``now multiline_command`` * ``identchars`` is now ignored. The standardlibrary cmd uses those characters to split the first \"word\" of the input, but cmd2 hasn\'t used those for a while, and the new parsing logic parses on whitespace, which has the added benefit of full unicode support, unlike cmd or prior versions of cmd2. * ``set_posix_shlex`` function and ``POSIX_SHLEX`` variable have been removed. Parsing behavior is now always the more forgiving ``posix=false``. * ``set_strip_quotes`` function and ``STRIP_QUOTES_FOR_NON_POSIX`` have been removed. Quotes are stripped from arguments when presented as a list (a la ``sys.argv``), and present when arguments are presented as a string (like the string passed to do_ *). + Changes * ``strip_ansi()`` and ``strip_quotes()`` functions have moved to new utils module * Several constants moved to new constants module * Submenu support has been moved to a new [cmd2-submenu](https://github.com/python-cmd2/cmd2-submenu) plugin. If you use submenus, you will need to update your dependencies and modify your imports. + Deletions (potentially breaking changes) * Deleted all ``optparse`` code which had previously been deprecated in release 0.8.0 * The ``options`` decorator no longer exists * All ``cmd2`` code should be ported to use the new ``argparse``-based decorators * See the [Argument Processing](http://cmd2.readthedocs.io/en/latest/argument_processing.html) section of the documentation for more information on these decorators * Alternatively, see the [argparse_example.py](https://github.com/python-cmd2/cmd2/blob/master/examples/argparse_example.py) * Deleted ``cmd_with_subs_completer``, ``get_subcommands``, and ``get_subcommand_completer`` * Replaced by default AutoCompleter implementation for all commands using argparse * Deleted support for old method of calling application commands with ``cmd()`` and ``self`` * ``cmd2.redirector`` is no longer supported. Output redirection can only be done with \'>\' or \'>>\' * Deleted ``postparse()`` hook since it was redundant with ``postparsing_precmd`` + Python 2 no longer supported * ``cmd2`` now supports Python 3.4+ + Known Issues * Some developers have noted very slow performance when importing the ``cmd2`` module. The issue it intermittant, and investigation of the root cause is ongoing.- Python2 is no longer supported upstream, so don\'t build it. * Wed Sep 05 2018 dmuellerAATTsuse.com- update to 0.8.9: * Bug Fixes * Fixed extra slash that could print when tab completing users on Windows * Prevent crashes that could occur attempting to open a file in non-existent directory or with very long filename * Make sure pip installs version 0.8.x if you have python 2.7 * Commands using the AATTwith_argparser_and_unknown_args were not correctly recognized when tab completing * Fixed issue where completion display function was overwritten when a submenu quits * Fixed ``AttributeError`` on Windows when running a ``select`` command cause by * *pyreadline * * not implementing ``remove_history_item`` * Bug Fixes * Fixed a bug with all argument decorators where the wrapped function wasn\'t returning a value and thus couldn\'t cause the cmd2 app to quit * Enhancements * Added warning about * *libedit * * variant of * *readline * * not being supported on macOS * Added tab-completion of alias names in value filed of * *alias * * command * Enhanced the ``py`` console in the following ways * Added tab completion of Python identifiers instead of * *cmd2 * * commands * Separated the ``py`` console history from the * *cmd2 * * history * Added support for verbose help with -v where it lists a brief summary of what each command does * Added support for categorizing commands into groups within the help menu * See the [Grouping Commands](http://cmd2.readthedocs.io/en/latest/argument_processing.html?highlight=verbose#grouping-commands) section of the docs for more info * See [help_categories.py](https://github.com/python-cmd2/cmd2/blob/master/examples/help_categories.py) for an example * Tab completion of paths now supports ~user user path expansion * Simplified implementation of various tab completion functions so they no longer require ``ctypes`` * Expanded documentation of ``display_matches`` list to clarify its purpose. See cmd2.py for this documentation. * Adding opening quote to tab completion if any of the completion suggestions have a space. * Tab completion has been overhauled and now supports completion of strings with quotes and spaces. * Tab completion will automatically add an opening quote if a string with a space is completed. * Added ``delimiter_complete`` function for tab completing delimited strings * Added more control over tab completion behavior including the following flags. The use of these flags is documented in cmd2.py * ``allow_appended_space`` * ``allow_closing_quote`` * Due to the tab completion changes, non-Windows platforms now depend on [wcwidth](https://pypi.python.org/pypi/wcwidth). * An alias name can now match a command name. * An alias can now resolve to another alias. * * *Python 2 EOL notice * * * This is the last release where new features will be added to ``cmd2`` for Python 2.7 * The 0.9.0 release of ``cmd2`` will support Python 3.4+ only * Additional 0.8.x releases may be created to supply bug fixes for Python 2.7 up until August 31, 2018 * After August 31, 2018 not even bug fixes will be provided for Python 2.7 * Fixed conditional dependency issue in setup.py that was in 0.8.3. * Fixed ``help`` command not calling functions for help topics * Fixed not being able to use quoted paths when redirecting with ``<`` and ``>`` * Enhancements * Attribute Changes (Breaks backward compatibility) * ``exclude_from_help`` is now called ``hidden_commands`` since these commands are hidden from things other than help, including tab completion * This list also no longer takes the function names of commands (``do_history``), but instead uses the command names themselves (``history``) * ``excludeFromHistory`` is now called ``exclude_from_history`` * ``cmd_with_subs_completer()`` no longer takes an argument called ``base``. Adding tab completion to subcommands has been simplified to declaring it in the subcommand parser\'s default settings. This easily allows arbitrary completers like path_complete to be used. See [subcommands.py](https://github.com/python-cmd2/cmd2/blob/master/examples/subcommands.py) for an example of how to use tab completion in subcommands. In addition, the docstring for ``cmd_with_subs_completer()`` offers more details. * Bug Fixes * Fixed a bug in tab-completion of command names within sub-menus * Fixed a bug when using persistent readline history in Python 2.7 * Fixed a bug where the ``AddSubmenu`` decorator didn\'t work with a default value for ``shared_attributes`` * Added a check to ``ppaged()`` to only use a pager when running in a real fully functional terminal * Enhancements * Added [quit_on_sigint](http://cmd2.readthedocs.io/en/latest/settingchanges.html#quit-on-sigint) attribute to enable canceling current line instead of quitting when Ctrl+C is typed * Added possibility of having readline history preservation in a SubMenu * Added [table_display.py](https://github.com/python-cmd2/cmd2/blob/master/examples/table_display.py) example to demonstrate how to display tabular data * Added command aliasing with ``alias`` and ``unalias`` commands * Added the ability to load an initialization script at startup * See [alias_startup.py](https://github.com/python-cmd2/cmd2/blob/master/examples/alias_startup.py) for an example * Added a default SIGINT handler which terminates any open pipe subprocesses and re-raises a KeyboardInterrupt * For macOS, will load the ``gnureadline`` module if available and ``readline`` if not * Bug Fixes * Fixed a bug if a non-existent * *do_ * * * method was added to the ``exclude_from_help`` list * Fixed a bug in a unit test which would fail if your home directory was empty on a Linux system * Fixed outdated help text for the * *edit * * command * Fixed outdated [remove_unused.py](https://github.com/python-cmd2/cmd2/blob/master/examples/remove_unused.py) * Enhancements * Added support for sub-menus. * See [submenus.py](https://github.com/python-cmd2/cmd2/blob/master/examples/submenus.py) for an example of how to use it * Added option for persistent readline history * See [persistent_history.py](https://github.com/python-cmd2/cmd2/blob/master/examples/persistent_history.py) for an example * See the [Searchable command history](http://cmd2.readthedocs.io/en/latest/freefeatures.html#searchable-command-history) section of the documentation for more info * Improved PyPI packaging by including unit tests and examples in the tarball * Improved documentation to make it more obvious that * *poutput() * * should be used instead of * *print() * * * ``exclude_from_help`` and ``excludeFromHistory`` are now instance instead of class attributes * Added flag and index based tab completion helper functions * See [tab_completion.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_completion.py) * Added support for displaying output which won\'t fit on the screen via a pager using ``ppaged()`` * See [paged_output.py](https://github.com/python-cmd2/cmd2/blob/master/examples/paged_output.py) * Attributes Removed ( * *can cause breaking changes * *) * ``abbrev`` - Removed support for abbreviated commands * Good tab completion makes this unnecessary and its presence could cause harmful unintended actions * ``case_insensitive`` - Removed support for case-insensitive command parsing * Its presence wasn\'t very helpful and could cause harmful unintended actions * 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_arparser * * 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](http://cmd2.readthedocs.io/en/latest/argument_processing.html) section of the documentation for more information on these decorators * Alternatively, see the [argparse_example.py](https://github.com/python-cmd2/cmd2/blob/master/examples/argparse_example.py) and [arg_print.py](https://github.com/python-cmd2/cmd2/blob/master/examples/arg_print.py) examples * Added support for Argparse sub-commands when using the * *with_argument_parser * * or * *with_argparser_and_unknown_args * * decorators * See [subcommands.py](https://github.com/python-cmd2/cmd2/blob/master/examples/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 * Tue Feb 13 2018 dmuellerAATTsuse.com- update to 0.7.9: * Bug Fixes * Fixed a couple broken examples * Enhancements * Improved documentation for modifying shortcuts (command aliases) * Made ``pyreadline`` a dependency on Windows to ensure tab-completion works * Other changes * Abandoned official support for Python 3.3. It should still work, just don\'t have an easy way to test it anymore. * Bug Fixes * Fixed ``poutput()`` so it can print an integer zero and other * *falsy * * things * Fixed a bug which was causing autodoc to fail for building docs on Readthedocs * Fixed bug due to ``pyperclip`` dependency radically changing its project structure in latest version * Enhancements * Improved documentation for user-settable environment parameters * Improved documentation for overriding the default supported comment styles * Added ``runcmds_plus_hooks()`` method to run multiple commands w/o a cmdloop * Bug Fixes * Added workaround for bug which occurs in Python 2.7 on Linux when ``pygtk`` is installed * ``pfeedback()`` now honors feedback_to_output setting and won\'t redirect when it is ``False`` * For ``edit`` command, both * *editor * * and * *filename * * can now have spaces in the name/path * Fixed a bug which occurred when stdin was a pipe instead of a tty due to input redirection * Enhancements * ``feedback_to_output`` now defaults to ``False`` so info like command timing won\'t redirect * Transcript regular expressions now have predictable, tested, and documented behavior * This makes a breaking change to the format and expectations of transcript testing * The prior behavior removed whitespace before making the comparison, now whitespace must match exactly * Prior version did not allow regexes with whitespace, new version allows any regex * Improved display for ``load`` command and input redirection when * *echo * * is ``True`` * Bug Fixes * Case-sensitive command parsing was completely broken and has been fixed * ``+d`` now properly quits when case-sensitive command parsing is enabled * Fixed some pyperclip clipboard interaction bugs on Linux * Fixed some timing bugs when running unit tests in parallel by using monkeypatch * Enhancements * Enhanced tab-completion of cmd2 command names to support case-insensitive completion * Added an example showing how to remove unused commands * Improved how transcript testing handles prompts with ANSI escape codes by stripping them * Greatly improved implementation for how command output gets piped to a shell command * Mon Aug 07 2017 tbechtoldAATTsuse.com- convert to singlespec * Mon Aug 07 2017 tbechtoldAATTsuse.com- update to 0.7.5: * `case_insensitive` is no longer a runtime-settable parameter, but it was still listed as such * Fixed a recursive loop bug when abbreviated commands are enabled and it could get stuck in the editor forever * Fixed argparse_example.py and pirate.py examples and transcript_regex.txt transcript * Fixed a bug in a unit test which occurred under unusual circumstances * Organized all attributes used to configure the ParserManager into a single location * Set the default value of `abbrev` to `False` (which controls whether or not abbreviated commands are allowed) * Improved implementation of `load` to use command queue instead of nested inner loop * Fixed a couple bugs in interacting with pastebuffer/clipboard on macOS and Linux * Fixed a couple bugs in edit and save commands if called when history is empty * Ability to pipe ``cmd2`` command output to a shell command is now more reliable, particularly on Windows * Fixed a bug in ``pyscript`` command on Windows related to ``\\`` being interpreted as an escape * Ensure that path and shell command tab-completion results are alphabetically sorted * Removed feature for load command to load scripts from URLS * Removed presence of a default file name and default file extension * ``load`` command has better error checking and reporting * Clipboard copy and paste functionality is now handled by the * *pyperclip * * module * ``shell`` command now supports redirection and piping of output * Added a lot of unit tests * Removed pause command * Added a dependency on the * *pyperclip * * module * Fixed a bug in displaying a span of history items when only an end index is supplied * Fixed a bug which caused transcript test failures to display twice * Added the ability to exclude commands from the help menu ( * *eof * * included by default) * Redundant * *list * * command removed and features merged into * *history * * command * Added * *pyscript * * command which supports tab-completion and running Python scripts with arguments * Improved tab-completion of file system paths, command names, and shell commands * Changed default value of USE_ARG_LIST to True - this affects the beavhior of all * *AATToptions * * commands * Refactored code to encapsulate most of the pyparsing logic into a ParserManager class * Added a MANIFEST.ini file to make sure a few extra files get included in the PyPI source distribution * ``-`` wasn\'t being treated as a legal character * The allow_cli_args attribute wasn\'t properly disabling parsing of args at invocation when False * py command wasn\'t allowing scripts which used *cmd * function prior to entering an interactive Python session * Don\'t throw exception when piping output to a shell command * Transcript testing now properly calls ``preloop`` before and ``postloop`` after * Fixed readline bug related to ANSI color escape codes in the prompt * Added CONTRIBUTING.md and CODE_OF_CONDUCT.md files * Added unicode parsing unit tests and listed unicode support as a feature when using Python 3 * Added more examples and improved documentation * Added CmdResult namedtumple for returning and storing results * Added local file system path completion for ``edit``, ``load``, ``save``, and ``shell`` commands * Add shell command completion for ``shell`` command or ``!`` shortcut * Abbreviated multiline commands are no longer allowed (they never worked correctly anyways) * Refactored to use six module for a unified codebase which supports both Python 2 and Python 3 * Stabilized on all platforms (Windows, Mac, Linux) and all supported Python versions (2.7, 3.3, 3.4, 3.5, 3.6, PyPy) * Added lots of unit tests and fixed a number of bugs * Improved documentation and moved it to cmd2.readthedocs.io * Mon Nov 14 2016 dmuellerAATTsuse.com- update to 0.6.9: * Support Python 3 input() * Fri Jan 09 2015 dmuellerAATTsuse.com- update to 0.6.8: * In case when which is not installed, do not launch an editor * Fri Sep 27 2013 dmuellerAATTsuse.com- update to 0.6.7: * various python 3.x compat fixes- remove cmd2-pyparsing201.patch, merged upstream * Tue Sep 17 2013 speilickeAATTsuse.com- Add cmd2-pyparsing201.patch: Allow running with pyparsing>=2.0.1 * Tue Sep 03 2013 dmuellerAATTsuse.com- update to 0.6.6.1: * go back to pyparsing 1.5.7 * Tue Aug 13 2013 dmuellerAATTsuse.com- update to 0.6.6: * include editor search stderr fix * Thu Jul 25 2013 dheidlerAATTsuse.de- Backport editor stderr fix * Mon Apr 29 2013 dmuellerAATTsuse.com- update to 0.6.5.1: * Fix requires to python-pyparsing * Fri Jan 11 2013 p.drouandAATTgmail.com- Add python3 support * Fri Jul 27 2012 saschpeAATTsuse.de- Initial version
|
|
|