From 71b18193f8c659a86d6f8602229688b88682a475cae1e65dc84853a8305726f2 Mon Sep 17 00:00:00 2001 From: Todd R Date: Fri, 21 Sep 2018 17:49:41 +0000 Subject: [PATCH] Accepting request 637090 from home:TheBlackCat:branches:devel:languages:python - 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. OBS-URL: https://build.opensuse.org/request/show/637090 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=31 --- cmd2-0.8.9.tar.gz | 3 -- cmd2-0.9.4.tar.gz | 3 ++ python-cmd2.changes | 99 +++++++++++++++++++++++++++++++++++++++++++++ python-cmd2.spec | 42 ++++++++++--------- 4 files changed, 125 insertions(+), 22 deletions(-) delete mode 100644 cmd2-0.8.9.tar.gz create mode 100644 cmd2-0.9.4.tar.gz diff --git a/cmd2-0.8.9.tar.gz b/cmd2-0.8.9.tar.gz deleted file mode 100644 index d1f90ab..0000000 --- a/cmd2-0.8.9.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:145cb677ebd0e3cae546ab81c30f6c25e0b08ba0f1071df854d53707ea792633 -size 112543 diff --git a/cmd2-0.9.4.tar.gz b/cmd2-0.9.4.tar.gz new file mode 100644 index 0000000..c62ed95 --- /dev/null +++ b/cmd2-0.9.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0037dcf92331c63ae43e7e644536e646fff8be2fd5a83da06b3482f910f929c6 +size 423672 diff --git a/python-cmd2.changes b/python-cmd2.changes index f87bac1..91bcdf1 100644 --- a/python-cmd2.changes +++ b/python-cmd2.changes @@ -1,3 +1,102 @@ +------------------------------------------------------------------- +Thu Sep 20 20:17:41 UTC 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 5 20:07:43 UTC 2018 - dmueller@suse.com diff --git a/python-cmd2.spec b/python-cmd2.spec index 8d53e47..652c83a 100644 --- a/python-cmd2.spec +++ b/python-cmd2.spec @@ -17,33 +17,32 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 Name: python-cmd2 -Version: 0.8.9 +Version: 0.9.4 Release: 0 Summary: Extra features for standard library's cmd module License: MIT Group: Development/Languages/Python -Url: http://packages.python.org/cmd2/ +Url: https://github.com/python-cmd2/cmd2 Source: https://files.pythonhosted.org/packages/source/c/cmd2/cmd2-%{version}.tar.gz -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_module setuptools_scm} +BuildRequires: fdupes BuildRequires: python-rpm-macros -BuildRequires: python-subprocess32 -Requires: python-pyparsing >= 2.0.1 -Requires: python-pyperclip -Requires: python-six +# SECTION Test requirements +BuildRequires: %{python_module attrs} +BuildRequires: %{python_module colorama} +BuildRequires: %{python_module mock} +BuildRequires: %{python_module pyperclip >= 1.5.27} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module wcwidth} +# /SECTION +Requires: python-attrs +Requires: python-colorama +Requires: python-pyperclip >= 1.5.27 Requires: python-wcwidth -%ifpython2 -Requires: python-contextlib2 -Requires: python-enum34 -Requires: python-subprocess32 -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch %python_subpackages @@ -69,19 +68,24 @@ Drop-in replacement adds several features for command-prompt tools: %prep %setup -q -n cmd2-%{version} +# Fix non-executable-script +sed -i -e '/^#!\//, 1d' cmd2/cmd2.py +# Fix spurious-executable-perm +chmod a-x README.md %build %python_build %install %python_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} %check %python_exec setup.py test %files %{python_files} %license LICENSE -%doc README.md +%doc CHANGELOG.md CODEOWNERS README.md %{python_sitelib}/* %changelog