113 Commits

Author SHA256 Message Date
b091360f50 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=61 2019-10-28 12:12:22 +00:00
8ce9f82d0e OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=60 2019-10-23 07:55:25 +00:00
fa493121aa OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=59 2019-10-23 07:47:05 +00:00
9c4cbe60cf OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=58 2019-10-23 07:46:36 +00:00
928aaa9bb2 - go back to 0.8.9, cliff (which is the only user) is not compatible
with >= 0.9.0 atm

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=57
2019-10-23 07:38:43 +00:00
Dominique Leuenberger
d426658170 Accepting request 730677 from devel:languages:python
- 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

OBS-URL: https://build.opensuse.org/request/show/730677
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=27
2019-09-23 10:09:41 +00:00
Tomáš Chvátal
c75d75a4a2 - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=55
2019-09-13 10:58:44 +00:00
Dominique Leuenberger
ad20bfbfc7 Accepting request 720196 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/720196
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=26
2019-08-07 11:56:40 +00:00
Tomáš Chvátal
ee96ea4e4c Accepting request 720184 from home:pgajdos
- fix pyperclip version in BuildRequires

OBS-URL: https://build.opensuse.org/request/show/720184
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=53
2019-08-01 11:46:45 +00:00
Tomáš Chvátal
60e456ccfe Accepting request 720160 from home:pgajdos
- version update to 0.9.15
  * too long list, see CHANGELOG.md

OBS-URL: https://build.opensuse.org/request/show/720160
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=52
2019-08-01 09:01:41 +00:00
Dominique Leuenberger
3bd4d36cc5 Accepting request 699499 from devel:languages:python
- 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.
- fix build for SLE12 and older

OBS-URL: https://build.opensuse.org/request/show/699499
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=25
2019-05-05 19:19:18 +00:00
4f426c0b2e Accepting request 699492 from home:mcepl:branches:devel:languages:python
- 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.

OBS-URL: https://build.opensuse.org/request/show/699492
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=50
2019-04-29 19:26:01 +00:00
068400a824 - fix build for SLE12 and older
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=49
2019-04-15 06:38:34 +00:00
Dominique Leuenberger
7aecbaca12 Accepting request 692517 from devel:languages:python
- Fix Requires for older python3 versions

OBS-URL: https://build.opensuse.org/request/show/692517
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=24
2019-04-12 07:10:53 +00:00
Thomas Bechtold
532bc8676d - Fix Requires for older python3 versions
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=47
2019-04-09 07:35:33 +00:00
Dominique Leuenberger
8a3b1678e6 Accepting request 685423 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/685423
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=23
2019-03-29 19:35:39 +00:00
fe67ea8f78 Accepting request 685422 from home:mcepl:branches:devel:languages:python
- Add vim to BR
- Update to 0.9.11:
  * too many changes to enumerate, see CHANGELOG.md
- Really run tests
- 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
- Add remove-typing.patch removing requirements for the typing library,
  which is useless now.
- 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.
- 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
- 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
    * ``<Ctrl>+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
- convert to singlespec
- 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 **@options** 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
- update to 0.6.9:
  * Support Python 3 input()
 
- update to 0.6.8:
  * In case when which is not installed, do not launch an editor
- update to 0.6.7:
  * various python 3.x compat fixes
- remove cmd2-pyparsing201.patch, merged upstream
- Add cmd2-pyparsing201.patch: Allow running with pyparsing>=2.0.1
- update to 0.6.6.1:
  * go back to pyparsing 1.5.7
- update to 0.6.6:
  * include editor search stderr fix
- Backport editor stderr fix
- update to 0.6.5.1: 
  * Fix requires to python-pyparsing
- Add python3 support
- Initial version

OBS-URL: https://build.opensuse.org/request/show/685422
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=45
2019-03-15 15:51:48 +00:00
Tomáš Chvátal
769ab7c19d - Add vim to depends as it is used in tests as an editor
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=44
2019-03-15 10:31:33 +00:00
Tomáš Chvátal
7d593a5635 - Update to 0.9.11:
* too many changes to enumerate, see CHANGELOG.md
- Really run tests

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=43
2019-03-14 15:01:58 +00:00
Dominique Leuenberger
2268724ecd Accepting request 680103 from devel:languages:python
- 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

OBS-URL: https://build.opensuse.org/request/show/680103
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=22
2019-03-04 08:09:46 +00:00
Thomas Bechtold
f8072ff6c1 - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=41
2019-02-28 12:07:14 +00:00
Dominique Leuenberger
4278d1277e Accepting request 656831 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/656831
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=21
2018-12-14 19:48:20 +00:00
43b1c71d56 Add contextlib2 BR
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=39
2018-12-03 11:49:07 +00:00
e90f55c9de Add also BR
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=38
2018-12-03 11:42:49 +00:00
40f1f218e4 Don't apply the patch on old openSUSE
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=37
2018-12-03 11:36:49 +00:00
dbf2aebf86 Don't rely on autopatch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=36
2018-12-03 11:24:42 +00:00
1c94b67aaa Add remove-typing.patch removing requirements for the typing library,
which is useless now.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=35
2018-12-03 11:16:36 +00:00
Dominique Leuenberger
ede3d2b604 Accepting request 638812 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/638812
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=20
2018-10-02 17:41:35 +00:00
Todd R
ba66dcb5fa Accepting request 638706 from openSUSE:Factory
Resubmit update to version 0.9.4

I had to revert to the previous version in openSUSE:Factory, as py2 support was dropped. Due to a timing issue,
this package has since been promoted to be a ring package - and there are various things buildrequiring the py2-cmd2 variant too.

Please accept this update again - upon resubmit to oS:F, this will now go through a letter staging

- 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

OBS-URL: https://build.opensuse.org/request/show/638706
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=33
2018-09-27 14:34:49 +00:00
Dominique Leuenberger
0bb3eaf119 Revert to the version with py2 support. There are other things, newly ring, depending on it
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=19
2018-09-27 07:50:24 +00:00
OBS User buildservice-autocommit
7f821b6ca6 Updating link to change in openSUSE:Factory/python-cmd2 revision 19.0
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=219aacca894ff6b415485ad7a737fcda
2018-09-27 07:50:24 +00:00
Dominique Leuenberger
feb5e1b69f Accepting request 637091 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/637091
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=18
2018-09-26 14:12:13 +00:00
Todd R
71b18193f8 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
Yuchen Lin
a4b4cda286 Accepting request 635404 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/635404
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=17
2018-09-13 22:01:20 +00:00
0e8d1fce91 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=29 2018-09-05 20:37:41 +00:00
cdaa4d1044 - 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
2018-09-05 20:19:13 +00:00
Dominique Leuenberger
ff49d2574c Accepting request 576369 from devel:languages:python
- 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

OBS-URL: https://build.opensuse.org/request/show/576369
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=16
2018-02-14 09:52:11 +00:00
408ee37caa - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=26
2018-02-13 18:35:44 +00:00
Yuchen Lin
0b6f9da0c9 Accepting request 514847 from devel:languages:python
- convert to singlespec

- 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 **@options** commands

OBS-URL: https://build.opensuse.org/request/show/514847
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=15
2017-08-12 18:26:44 +00:00
Thomas Bechtold
28bd7f8a75 - convert to singlespec
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=24
2017-08-07 07:58:37 +00:00
Thomas Bechtold
440f9644e9 - 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 **@options** 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=23
2017-08-07 07:56:10 +00:00
Dominique Leuenberger
4f0c2a9113 Accepting request 441229 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/441229
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=14
2016-11-24 20:23:00 +00:00
96b9250d17 - update to 0.6.9:
* Support Python 3 input()

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=21
2016-11-14 14:23:30 +00:00
Dominique Leuenberger
8b97665dd4 Accepting request 280589 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/280589
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=13
2015-01-09 19:50:59 +00:00
Jan Matejek
d20f15907b Accepting request 280524 from Cloud:OpenStack:Master
- update to 0.6.8:
  * In case when which is not installed, do not launch an editor

OBS-URL: https://build.opensuse.org/request/show/280524
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=19
2015-01-09 13:51:06 +00:00
Stephan Kulow
75fca09a18 Accepting request 201417 from devel:languages:python
- update to 0.6.7:
  * various python 3.x compat fixes
- remove cmd2-pyparsing201.patch, merged upstream (forwarded request 201200 from dirkmueller)

OBS-URL: https://build.opensuse.org/request/show/201417
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=11
2013-10-01 06:27:01 +00:00
Sascha Peilicke
1302ac276d Accepting request 201200 from home:dirkmueller:branches:devel:languages:python
- update to 0.6.7:
  * various python 3.x compat fixes
- remove cmd2-pyparsing201.patch, merged upstream

OBS-URL: https://build.opensuse.org/request/show/201200
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=17
2013-09-30 07:18:22 +00:00
Stephan Kulow
e1acb26305 Accepting request 199492 from devel:languages:python
- Add cmd2-pyparsing201.patch: Allow running with pyparsing>=2.0.1

OBS-URL: https://build.opensuse.org/request/show/199492
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=10
2013-09-23 08:56:08 +00:00
Sascha Peilicke
5d03892b2b - Add cmd2-pyparsing201.patch: Allow running with pyparsing>=2.0.1
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=15
2013-09-17 13:29:21 +00:00
Stephan Kulow
cad7a55503 Accepting request 197220 from devel:languages:python
- update to 0.6.6.1:
  * go back to pyparsing 1.5.7 (forwarded request 197217 from dirkmueller)

OBS-URL: https://build.opensuse.org/request/show/197220
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cmd2?expand=0&rev=8
2013-09-03 20:03:00 +00:00