From cdaa4d10449418143bd3612227ed5f452153c907296d148dad7c1e2eb32d5aed Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 5 Sep 2018 20:19:13 +0000 Subject: [PATCH 1/2] - 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 @with_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`` OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=28 --- cmd2-0.7.9.tar.gz | 3 - cmd2-0.8.9.tar.gz | 3 + python-cmd2.changes | 131 ++++++++++++++++++++++++++++++++++++++++++++ python-cmd2.spec | 24 ++++++-- 4 files changed, 154 insertions(+), 7 deletions(-) delete mode 100644 cmd2-0.7.9.tar.gz create mode 100644 cmd2-0.8.9.tar.gz diff --git a/cmd2-0.7.9.tar.gz b/cmd2-0.7.9.tar.gz deleted file mode 100644 index 6077a2b..0000000 --- a/cmd2-0.7.9.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f518d30c641483c8d6c246afae6e4447f816f8300befc6a11c476eeb62a496e6 -size 71298 diff --git a/cmd2-0.8.9.tar.gz b/cmd2-0.8.9.tar.gz new file mode 100644 index 0000000..d1f90ab --- /dev/null +++ b/cmd2-0.8.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:145cb677ebd0e3cae546ab81c30f6c25e0b08ba0f1071df854d53707ea792633 +size 112543 diff --git a/python-cmd2.changes b/python-cmd2.changes index 2c6f61b..f87bac1 100644 --- a/python-cmd2.changes +++ b/python-cmd2.changes @@ -1,3 +1,134 @@ +------------------------------------------------------------------- +Wed Sep 5 20:07:43 UTC 2018 - dmueller@suse.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 @with_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 18:33:35 UTC 2018 - dmueller@suse.com diff --git a/python-cmd2.spec b/python-cmd2.spec index c8daece..3b96aae 100644 --- a/python-cmd2.spec +++ b/python-cmd2.spec @@ -18,19 +18,32 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-cmd2 -Version: 0.7.9 +Version: 0.8.9 Release: 0 Summary: Extra features for standard library's cmd module License: MIT Group: Development/Languages/Python Url: http://packages.python.org/cmd2/ Source: https://files.pythonhosted.org/packages/source/c/cmd2/cmd2-%{version}.tar.gz -BuildRequires: %{python_module devel} +BuildRequires: %{python_module contextlib2} +BuildRequires: %{python_module mock} +BuildRequires: %{python_module pyperclip} +BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wcwidth} +BuildRequires: python-enum34 BuildRequires: python-rpm-macros +BuildRequires: python-subprocess32 Requires: python-pyparsing >= 2.0.1 Requires: python-pyperclip +Requires: python-pyreadline Requires: python-six +Requires: python-wcwidth +%ifpython2 +Requires: python-contextlib2 +Requires: python-enum34 +Requires: python-subprocess32 +%endif BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch @@ -64,9 +77,12 @@ Drop-in replacement adds several features for command-prompt tools: %install %python_install +%check +%python_exec setup.py test + %files %{python_files} -%defattr(-,root,root,-) -%doc README.md LICENSE +%license LICENSE +%doc README.md %{python_sitelib}/* %changelog From 0e8d1fce9167f9ea8d614e073a1426e0891f9844d8fb1875812953d1cb50c6c7 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 5 Sep 2018 20:37:41 +0000 Subject: [PATCH 2/2] OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=29 --- python-cmd2.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/python-cmd2.spec b/python-cmd2.spec index 3b96aae..8d53e47 100644 --- a/python-cmd2.spec +++ b/python-cmd2.spec @@ -36,7 +36,6 @@ BuildRequires: python-rpm-macros BuildRequires: python-subprocess32 Requires: python-pyparsing >= 2.0.1 Requires: python-pyperclip -Requires: python-pyreadline Requires: python-six Requires: python-wcwidth %ifpython2