2012-07-27 10:46:02 +00:00
|
|
|
#
|
|
|
|
# spec file for package python-cmd2
|
|
|
|
#
|
2018-02-13 18:35:44 +00:00
|
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
2012-07-27 10:46:02 +00:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
2013-04-29 13:40:20 +00:00
|
|
|
#
|
2012-07-27 10:46:02 +00:00
|
|
|
|
|
|
|
|
2017-08-07 07:58:37 +00:00
|
|
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
2012-07-27 10:46:02 +00:00
|
|
|
Name: python-cmd2
|
2018-09-27 07:50:24 +00:00
|
|
|
Version: 0.8.9
|
2012-07-27 10:46:02 +00:00
|
|
|
Release: 0
|
|
|
|
Summary: Extra features for standard library's cmd module
|
2013-04-29 13:40:20 +00:00
|
|
|
License: MIT
|
2012-07-27 10:46:02 +00:00
|
|
|
Group: Development/Languages/Python
|
2018-09-27 07:50:24 +00:00
|
|
|
Url: http://packages.python.org/cmd2/
|
2017-08-07 07:56:10 +00:00
|
|
|
Source: https://files.pythonhosted.org/packages/source/c/cmd2/cmd2-%{version}.tar.gz
|
2018-09-27 07:50:24 +00:00
|
|
|
BuildRequires: %{python_module contextlib2}
|
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
2018-09-21 17:49:41 +00:00
|
|
|
BuildRequires: %{python_module mock}
|
2018-09-27 07:50:24 +00:00
|
|
|
BuildRequires: %{python_module pyperclip}
|
|
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
|
|
BuildRequires: %{python_module setuptools}
|
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
2018-09-21 17:49:41 +00:00
|
|
|
BuildRequires: %{python_module wcwidth}
|
2018-09-27 07:50:24 +00:00
|
|
|
BuildRequires: python-enum34
|
|
|
|
BuildRequires: python-rpm-macros
|
|
|
|
BuildRequires: python-subprocess32
|
|
|
|
Requires: python-pyparsing >= 2.0.1
|
|
|
|
Requires: python-pyperclip
|
|
|
|
Requires: python-six
|
2018-09-05 20:19:13 +00:00
|
|
|
Requires: python-wcwidth
|
2018-09-27 07:50:24 +00:00
|
|
|
%ifpython2
|
|
|
|
Requires: python-contextlib2
|
|
|
|
Requires: python-enum34
|
|
|
|
Requires: python-subprocess32
|
|
|
|
%endif
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
2012-07-27 10:46:02 +00:00
|
|
|
BuildArch: noarch
|
|
|
|
|
2017-08-07 07:58:37 +00:00
|
|
|
%python_subpackages
|
|
|
|
|
2012-07-27 10:46:02 +00:00
|
|
|
%description
|
|
|
|
Enhancements for standard library's cmd module.
|
|
|
|
|
|
|
|
Drop-in replacement adds several features for command-prompt tools:
|
|
|
|
|
|
|
|
* Searchable command history (commands: "hi", "li", "run")
|
|
|
|
* Load commands from file, save to file, edit commands in file
|
|
|
|
* Multi-line commands
|
|
|
|
* Case-insensitive commands
|
|
|
|
* Special-character shortcut commands (beyond cmd's "@" and "!")
|
|
|
|
* Settable environment parameters
|
|
|
|
* Parsing commands with flags
|
|
|
|
* > (filename), >> (filename) redirect output to file
|
|
|
|
* < (filename) gets input from file
|
|
|
|
* bare >, >>, < redirect to/from paste buffer
|
|
|
|
* accepts abbreviated commands when unambiguous
|
|
|
|
* `py` enters interactive Python console
|
|
|
|
* test apps against sample session transcript (see example/example.py)
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%setup -q -n cmd2-%{version}
|
|
|
|
|
|
|
|
%build
|
2017-08-07 07:58:37 +00:00
|
|
|
%python_build
|
2012-07-27 10:46:02 +00:00
|
|
|
|
|
|
|
%install
|
2017-08-07 07:58:37 +00:00
|
|
|
%python_install
|
2012-07-27 10:46:02 +00:00
|
|
|
|
2018-09-05 20:19:13 +00:00
|
|
|
%check
|
|
|
|
%python_exec setup.py test
|
|
|
|
|
2017-08-07 07:58:37 +00:00
|
|
|
%files %{python_files}
|
2018-09-05 20:19:13 +00:00
|
|
|
%license LICENSE
|
2018-09-27 07:50:24 +00:00
|
|
|
%doc README.md
|
2012-07-27 10:46:02 +00:00
|
|
|
%{python_sitelib}/*
|
|
|
|
|
|
|
|
%changelog
|