Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dirkmueller:AL:TW
python-cmd2
python-cmd2.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File python-cmd2.changes of Package python-cmd2
------------------------------------------------------------------- Thu Nov 14 19:27:34 UTC 2024 - Martin Hauke <mardnh@gmx.de> - Update to version 2.5.6 * Fixed type hint for with_default_category decorator which caused type checkers to mistype a subclass of CommandSet as a plain CommandSet. - Update to version 2.5.5 * Fixed type hints for passing a class method to with_argparser and as_subcommand_to. * Fixed issue where set command was not always printing a settable's current value. ------------------------------------------------------------------- Thu Nov 7 16:32:16 UTC 2024 - Martin Hauke <mardnh@gmx.de> - Update to versino 2.5.4 * Fixed ZeroDivisionError in async_alert() when shutil.get_terminal_size().columns is 0. - Update to version 2.5.3 * Changed CommandSet._cmd to a read-only property which never returns None because it is meant to be called after the CommandSet is registered. This addresses type checker errors that occurred if CommandSet._cmd wasn't cast or checked if None before use. ------------------------------------------------------------------- Sun Nov 3 19:58:40 UTC 2024 - Martin Hauke <mardnh@gmx.de> - Update to version 2.5.2 * Fixed default pytest execution when not using cmd2's custom invoke command via inv pytest. - Update to version 2.5.1 * Fixed readline bug when using ipy command with gnureadline and Python 3.13. - Add patch: * cmd2-no-coverage-tests.patch ------------------------------------------------------------------- Thu Oct 24 18:43:27 UTC 2024 - Martin Hauke <mardnh@gmx.de> - Update to version 2.5.0 Breaking Change * cmd2 2.5 supports Python 3.8+ (removed support for Python 3.6 and 3.7). Bug Fixes * Fixed issue where persistent history file was not saved upon SIGHUP and SIGTERM signals. * Multiline commands are no longer fragmented in up-arrow history * Fixed bug where async_alert() overwrites readline's incremental and non-incremental search prompts. + This fix introduces behavior where an updated prompt won't display after an aborted search. + until a user presses Enter. See async_printing.py + example for how to handle this case using Cmd.need_prompt_refresh() and Cmd.async_refresh_prompt(). Enhancements * Removed dependency on attrs and replaced with dataclasses. * add allow_clipboard initialization parameter and attribute to disable ability to. * add output to the operating system clipboard. * Updated unit tests to be Python 3.13 compliant. * Fall back to bz2 compression of history file when lzma is not installed.. * Added settable called scripts_add_to_history which determines whether scripts and pyscripts * add commands to history. Deletions (potentially breaking changes) * Removed apply_style from Cmd.pwarning(). ------------------------------------------------------------------- Sat Jan 28 14:33:56 UTC 2023 - Dirk Müller <dmueller@suse.com> - update to 2.4.3: * Fixed ValueError caused when passing `Cmd.columnize()` strings wider than `display_width`. * Renamed `utils.str_to_bool()` -> `utils.to_bool()`. * Enhanced `utils.to_bool()` so that it accepts and converts `bool`, `int`, and `float` in addition to `str`. ------------------------------------------------------------------- Thu Aug 18 15:38:40 UTC 2022 - Ben Greiner <code@bnavigator.de> - Update to 2.4.2 * Updated argparse decorator to remove annotations when the docstring is used for a command's help text. * Updated unit test to be Python 3.11 compliant. - Clean specfile, remove coverage ------------------------------------------------------------------- Sat Jun 4 15:00:50 UTC 2022 - Dirk Müller <dmueller@suse.com> - update to 2.4.1: * Fixed value for `ansi.Bg.YELLOW`. * Fixed unit tests for `ansi.allow_style`. * `async_alert()` raises a `RuntimeError` if called from the main thread. ------------------------------------------------------------------- Tue Mar 8 07:40:29 UTC 2022 - pgajdos@suse.com - version update to 2.4.0 Bug Fixes Fixed issue in ansi.async_alert_str() which would raise IndexError if prompt was blank. Fixed issue where tab completion was quoting argparse flags in some cases. Enhancements Added broader exception handling when enabling clipboard functionality via pyperclip. Added PassThroughException to __init__.py imports. cmd2 now uses pyreadline3 when running any version of Python on Windows Improved memory usage in certain use cases of tables (e.g. nested colored tables) Deletions (potentially breaking changes) Deleted cmd2.fg and cmd2.bg which were deprecated in 2.3.0. Use cmd2.Fg and cmd2.Bg instead. - python-mock is actually not required for build ------------------------------------------------------------------- Sat Dec 11 22:08:57 UTC 2021 - Dirk Müller <dmueller@suse.com> - update to 2.3.3: * Added clearer exception handling to `BorderedTable` and `SimpleTable`. ------------------------------------------------------------------- Mon Dec 6 18:04:09 UTC 2021 - Dirk Müller <dmueller@suse.com> - update to 2.3.2: * Fixed issue where a `ns_provider` could be passed `None` instead of its correct `cmd2.Cmd` or `CommandSet` value. * Fixed issue introduced in 2.3.0 with `AlternatingTable`, `BorderedTable`, and `SimpleTable` that caused header alignment settings to be overridden by data alignment settings. * `CompletionItems` now saves the original object from which it creates a string. * Using `CompletionItems` as argparse choices is fully supported. * `ArgparseCompleter` now does the following if a list of `CompletionItems` was created with numerical types: * Fixed `AttributeError` in `rl_get_prompt()` when prompt is `None`. * Fixed bug where using choices on a Settable didn't verify that a valid choice had been entered. * Fixed bug introduced in cmd2 2.0.0 in which `select()` converts return values to strings. * Added settings to Column class which prevent a table from overriding existing styles in header and/or data text. This allows for things like nesting an AlternatingTable in another AlternatingTable. * AlternatingTable no longer automatically applies background color to borders. This was done to improve appearance since the background color extended beyond the borders of the table. * Added ability to colorize all aspects of `AlternatingTable`, `BorderedTable`, and `SimpleTable`. * Added support for 8-bit/256-colors with the `cmd2.EightBitFg` and `cmd2.EightBitBg` classes. * Added support for 24-bit/RGB colors with the `cmd2.RgbFg` and `cmd2.RgbBg` classes. * Removed dependency on colorama. * Changed type of `ansi.allow_style` from a string to an `ansi.AllowStyle` Enum class. * To support the color upgrade, all cmd2 colors now inherit from either `ansi.FgColor` or `ansi.BgColor`. Therefore, `ansi.style()` no longer accepts colors as strings. ------------------------------------------------------------------- Sat Oct 16 21:48:02 UTC 2021 - Dirk Müller <dmueller@suse.com> - update to 2.2.0: * Fixed extra space appended to each alias by "alias list" command * New function `set_default_ap_completer_type()` * Added `ArgumentParser.get_ap_completer_type()` and `ArgumentParser.set_ap_completer_type()`. * Added `ap_completer_type` keyword arg to `Cmd2ArgumentParser.__init__()` which saves a call to `set_ap_completer_type()`. This keyword will also work with `add_parser()` when creating subcommands if the base command's parser is a `Cmd2ArgumentParser`. * New function `register_argparse_argument_parameter()` * Using `SimpleTable` in the output for the following commands * Tab completion of `CompletionItems` now includes divider row * Removed `--verbose` flag from set command since descriptions always show now. * All cmd2 built-in commands now populate `self.last_result`. * Argparse tab completer will complete remaining flag names if there are no more positionals to complete. * Updated `async_alert()` to account for `self.prompt` not matching Readline's current prompt. * Deleted ``set_choices_provider()`` and ``set_completer()`` which were deprecated in 2.1.2 ------------------------------------------------------------------- Fri Jul 16 19:57:26 UTC 2021 - Dirk Müller <dmueller@suse.com> - update to 2.1.2: * Added the following accessor methods for cmd2-specific attributes to the `argparse.Action` class * `get_choices_callable()` * `set_choices_provider()` * `set_completer()` * `get_descriptive_header()` * `set_descriptive_header()` * `get_nargs_range()` * `set_nargs_range()` * `get_suppress_tab_hint()` * `set_suppress_tab_hint()` * Now that `set_choices_provider()` and `set_completer()` have been added as methods to the `argparse.Action` class, the standalone functions of the same name will be removed in version 2.2.0. To update to the new convention, do the following: * Change `set_choices_provider(action, provider)` to `action.set_choices_provider(provider)` * Change `set_completer(action, completer)` to `action.set_completer(completer)` * Fixed handling of argparse's default options group name which was changed in Python 3.10 * Restored `plugins` and `tests_isolated` directories to tarball published to PyPI for `cmd2` release ------------------------------------------------------------------- Mon Jun 14 15:58:07 UTC 2021 - Martin Hauke <mardnh@gmx.de> - Udpate to version 2.1.0 Enhancements * Converted persistent history files from pickle to compressed JSON. ------------------------------------------------------------------- Mon Jun 7 08:09:29 UTC 2021 - Martin Hauke <mardnh@gmx.de> - Update to version 2.0.1 Bug Fixes * Exclude plugins and tests_isolated directories from tarball published to PyPI for cmd2 release - Update to version 2.0.0 Bug Fixes * Fixed issue where history indexes could get repeated * Fixed issue where TableCreator was tossing blank last line * Corrected help text for alias command Breaking Changes * cmd2 2.0 supports Python 3.6+ (removed support for Python 3.5) * Argparse Completion / Settables + Replaced choices_function / choices_method with choices_provider. + Replaced completer_function / completer_method with completer. + ArgparseCompleter now always passes cmd2.Cmd or CommandSet instance as the first positional + argument to choices_provider and completer functions. * Moved basic_complete from utils into cmd2.Cmd class. * Moved CompletionError to exceptions.py * Namespace.__statement__ has been removed. Use Namespace.cmd2_statement.get() instead. * Removed --silent flag from alias/macro create since startup scripts can be run silently. * Removed --with_silent flag from alias/macro list since startup scripts can be run silently. * Removed with_argparser_and_unknown_args since it was deprecated in 1.3.0. * Renamed silent_startup_script to silence_startup_script for clarity. * Replaced cmd2.Cmd.completion_header with cmd2.Cmd.formatted_completions. * Settables now have new initialization parameters. It is now a required parameter to supply the reference to the object that holds the settable attribute. cmd2.Cmd.settables is no longer a public dict attribute - it is now a property that aggregates all Settables across all registered CommandSets. * Failed transcript testing now sets self.exit_code to 1 instead of -1. * Renamed use_ipython keyword parameter of cmd2.Cmd.__init__() to include_ipy. * ipy command is only enabled if include_py parameter is True. * Removed ability to run Python commands from the command line with py. Now py takes no arguments and just opens an interactive Python shell. * Changed default behavior of runcmds_plus_hooks() to not stop when Ctrl-C is pressed and instead run the next command in its list. * Removed cmd2.Cmd.quit_on_sigint flag, which when True, quit the application when Ctrl-C was pressed at the prompt. * The history bug fix resulted in structure changes to the classes in cmd2.history. Therefore, persistent history files created with versions older than 2.0.0 are not compatible. Enhancements * Added support for custom tab completion and up-arrow input history to cmd2.Cmd2.read_input. * Added cmd2.exceptions.PassThroughException to raise unhandled command exceptions instead of printing them. * Added support for ANSI styles and newlines in tab completion results using cmd2.Cmd.formatted_completions. * cmd2 provides this capability automatically if you return argparse completion matches as CompletionItems. * Settables enhancements: + Settables may be optionally scoped to a CommandSet. + Settables added to CommandSets will appear when a CommandSet is registered and disappear when a CommandSet is unregistered. Optionally, scoped Settables may have a prepended prefix. + Settables now allow changes to be applied to any arbitrary object attribute. It no longer needs to match an + attribute added to the cmd2 instance itself. + Raising SystemExit or calling sys.exit() in a command or hook function will set self.exit_code to the exit code used in those calls. It will also result in the command loop stopping. + ipy command now includes all of self.py_locals in the IPython environment + Added include_py keyword parameter to cmd2.Cmd.__init__(). If False, then the py command will not be available. Defaults to False. run_pyscript is not affected by this parameter. + Made the amount of space between columns in a SimpleTable configurable On POSIX systems, shell commands and processes being piped to are now run in the user's preferred shell instead of /bin/sh. The preferred shell is obtained by reading the SHELL environment variable. If that doesn't exist or is empty, then /bin/sh is used. + Changed cmd2.Cmd._run_editor() to the public method cmd2.Cmd.run_editor() ------------------------------------------------------------------- Sun Apr 25 13:46:11 UTC 2021 - Martin Hauke <mardnh@gmx.de> - Update to version 1.5.0 * Fixed bug where setting always_show_hint=True did not show a hint when completing Settables. * Fixed bug in editor detection logic on Linux systems that do not have which. * Fixed bug in table creator where column headers with tabs would result in an incorrect width calculation. * Fixed FileNotFoundError which occurred when running history --clear and no history file existed. * Added silent_startup_script option to cmd2.Cmd.__init__(). If True, then the startup script's output will be suppressed. Anything written to stderr will still display. ------------------------------------------------------------------- Thu Dec 3 03:11:35 UTC 2020 - Benjamin Greiner <code@bnavigator.de> - Use correct sitelib macro in files section for multiple flavors gh#openSUSE/python-rpm-macros#66 ------------------------------------------------------------------- Thu Nov 26 09:24:47 UTC 2020 - Dirk Mueller <dmueller@suse.com> - update to 1.4.0: * Fixed tab completion crash on Windows * Changed how multiline doc string help is formatted to match style of other help messages ------------------------------------------------------------------- Mon Nov 9 18:05:38 UTC 2020 - Dirk Mueller <dmueller@suse.com> - update to 1.3.8: * a few hundred changes, see included CHANGELOG.md for details ------------------------------------------------------------------- Thu Jun 4 12:37:58 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com> - Do not restrict pytest4 as it works quite fine with pytest5 ------------------------------------------------------------------- Thu Feb 27 13:47:06 UTC 2020 - Dirk Mueller <dmueller@suse.com> - go back to 0.8.9, cliff (which is the only user) is not compatible with >= 0.9.0 atm - Same commit like december, november and october last year. ------------------------------------------------------------------- Fri Jan 3 11:34:58 CET 2020 - Matej Cepl <mcepl@suse.com> - Update to 0.9.22: - Fixed bug where a redefined ansi.style_error was not being used in all cmd2 files - Enabled line buffering when redirecting output to a file - Added align_left(), align_center(), and align_right() to utils.py. All 3 of these functions support ANSI escape sequences and characters with display widths greater than 1. They wrap align_text() which is also in utils.py. - Fixed bug where pipe processes were not being stopped by Ctrl-C - Added exception handling to account for non-standard Python environments in which readline is not loaded dynamically from a shared library file - Added read_input() function that is used to read from stdin. Unlike the Python built-in input(), it also has an argument to disable tab completion while input is being entered. - Added capability to override the argument parser class used by cmd2 built-in commands. See override_parser.py example for more details. - Added end argument to pfeedback() to be consistent with the other print functions like poutput(). - Added apply_style to pwarning(). - For consistency between all the print functions: - Made end and chop keyword-only arguments of ppaged() - end is always added to message in ppaged() ------------------------------------------------------------------- Fri Nov 22 10:46:57 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com> - Fix up dependencies and everything after last update to 0.9.20 ------------------------------------------------------------------- Thu Nov 14 15:18:49 CET 2019 - Matej Cepl <mcepl@suse.com> - Update to 0.9.20: - the list of changes is too long, complete changelog is in CHANGELOG.md included in this package. - Package is python3-only now. ------------------------------------------------------------------- Wed Oct 23 07:35:49 UTC 2019 - Dirk Mueller <dmueller@suse.com> - go back to 0.8.9, cliff (which is the only user) is not compatible with >= 0.9.0 atm ------------------------------------------------------------------- Fri Sep 13 10:57:37 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com> - Update to 0.9.16: * Fixed inconsistent parsing/tab completion behavio * Create directory for the persistent history file if it does not already exist * Aliases and macros can no longer have the same name as a command ------------------------------------------------------------------- Thu Aug 1 11:29:12 UTC 2019 - pgajdos@suse.com - fix pyperclip version in BuildRequires ------------------------------------------------------------------- Thu Aug 1 08:29:40 UTC 2019 - pgajdos@suse.com - version update to 0.9.15 * too long list, see CHANGELOG.md ------------------------------------------------------------------- Mon Apr 29 21:16:21 CEST 2019 - Matej Cepl <mcepl@suse.com> - fix previous commit - Update to 0.9.12: - Bug Fixes - Fixed a bug in how redirection and piping worked inside py or pyscript commands - Fixed bug in async_alert where it didn't account for prompts that contained newline characters - Fixed path completion case when CWD is just a slash. Relative path matches were incorrectly prepended with a slash. - Enhancements - Added ability to include command name placeholders in the message printed when trying to run a disabled command. - Added instance attributes to customize error messages without having to override methods. Theses messages can also be colored. - The with_argparser decorators now add the Statement object created when parsing the command line to the argparse.Namespace object they pass to the do_* methods. It is stored in an attribute called __statement__. - This can be useful if a command function needs to know the command line for things like logging. - Added a -t option to the load command for automatically generating a transcript based on a script file - When in a pyscript, the stdout and stderr streams of shell commands and processes being piped to are now captured and included in the CommandResult structure. - Potentially breaking changes - The following commands now write to stderr instead of stdout when printing an error. This will make catching errors easier in pyscript. - Removed *** from beginning of error messages printed by do_help() and default() - Significantly refactored cmd.Cmd class so that all class attributes got converted to instance attributes, also: self.pipe_proc is now called self.cur_pipe_proc_reader and is a ProcReader class. - Shell commands and commands being piped to while in a pyscript will function as if their output is going to a pipe and not a tty. This was necessary to be able to capture their output. ------------------------------------------------------------------- Mon Apr 15 06:38:20 UTC 2019 - Dirk Mueller <dmueller@suse.com> - fix build for SLE12 and older ------------------------------------------------------------------- Tue Apr 9 07:34:57 UTC 2019 - Thomas Bechtold <tbechtold@suse.com> - Fix Requires for older python3 versions ------------------------------------------------------------------- Fri Mar 15 10:31:09 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com> - Add vim to depends as it is used in tests as an editor ------------------------------------------------------------------- Thu Mar 14 19:04:12 UTC 2019 - Matěj Cepl <mcepl@suse.com> - Add vim to BR ------------------------------------------------------------------- Thu Mar 14 14:59:18 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com> - Update to 0.9.11: * too many changes to enumerate, see CHANGELOG.md - Really run tests ------------------------------------------------------------------- Thu Feb 28 11:43:56 UTC 2019 - Thomas Bechtold <tbechtold@suse.com> - update to 0.9.10: * Fixed unit test that hangs on Windows * Fixed bug where the ``set`` command was not tab completing from the current ``settable`` dictionary. * Changed edit command to use do_shell() instead of calling os.system() * Fixed issue with echoing strings in StdSim. Because they were being sent to a binary buffer, line buffering was being ignored. * Made quit() and exit() functions available to scripts run with pyscript. This allows those scripts to exit back to the console's prompt instead of exiting the whole application. * Fixed bug when user chooses a zero or negative index when calling ``Cmd.select()`` * Restored behavior where ``cmd_echo`` always starts as False in a py script. This was broken in 0.9.5. * **cmdloop** now only attempts to register a custom signal handler for SIGINT if running in the main thread * commands run as a result of ``default_to_shell`` being **True** now run via ``do_shell()`` and are saved to history. * Added more tab completion to pyscript command. * Deleted ``Cmd.colorize()`` and ``Cmd._colorcodes`` which were deprecated in 0.9.5 * Replaced ``dir_exe_only`` and ``dir_only`` flags in ``path_complete`` with optional ``path_filter`` function that is used to filter paths out of completion results. * ``perror()`` no longer prepends "ERROR: " to the error message being printed * Fixed bug introduced in 0.9.5 caused by backing up and restoring `self.prompt` in `pseudo_raw_input`. As part of this fix, continuation prompts will not be redrawn with `async_update_prompt` or `async_alert`. * All platforms now depend on [wcwidth](https://pypi.python.org/pypi/wcwidth) to assist with asynchronous alerts. * Macros now accept extra arguments when called. These will be tacked onto the resolved command. * All cmd2 commands run via `py` now go through `onecmd_plus_hooks`. * Fixed bug where ``get_all_commands`` could return non-callable attributes * Fixed bug where **alias** command was dropping quotes around arguments * Fixed bug where running help on argparse commands didn't work if they didn't support -h * Fixed transcript testing bug where last command in transcript has no expected output * Fixed bugs with how AutoCompleter and ArgparseFunctor handle argparse arguments with nargs=argparse.REMAINDER. Tab completion now correctly matches how argparse will parse the values. Command strings generated by ArgparseFunctor should now be compliant with how argparse expects REMAINDER arguments to be ordered. * Fixed bugs with how AutoCompleter handles flag prefixes. It is no longer hard-coded to use '-' and will check against the prefix_chars in the argparse object. Also, single-character tokens that happen to be a prefix char are not treated as flags by argparse and AutoCompleter now matches that behavior. * Fixed bug where AutoCompleter was not distinguishing between a negative number and a flag * Fixed bug where AutoCompleter did not handle -- the same way argparse does (all args after -- are non-options) * Added ``exit_code`` attribute of ``cmd2.Cmd`` class * Enables applications to return a non-zero exit code when exiting from ``cmdloop`` * ``ACHelpFormatter`` now inherits from ``argparse.RawTextHelpFormatter`` to make it easier for formatting help/description text * Aliases are now sorted alphabetically * The **set** command now tab-completes settable parameter names * Added ``async_alert``, ``async_update_prompt``, and ``set_window_title`` functions * These allow you to provide feedback to the user in an asychronous fashion, meaning alerts can display when the user is still entering text at the prompt. * Cross-platform colored output support * Deprecated the built-in ``cmd2`` support for colors including ``Cmd.colorize()`` and ``Cmd._colorcodes`` * The ``preparse``, ``postparsing_precmd``, and ``postparsing_postcmd`` methods *deprecated* in the previous release have been deleted * The new application lifecycle hook system allows for registration of callbacks to be called at various points in the lifecycle and is more powerful and flexible than the previous system * ``alias`` is now a command with sub-commands to create, list, and delete aliases. Therefore its syntax has changed. All current alias commands in startup scripts or transcripts will break with this release. * `unalias` was deleted since ``alias delete`` replaced it - Drop remove-typing.patch . Applied upstream ------------------------------------------------------------------- Mon Dec 3 11:13:35 UTC 2018 - Matěj Cepl <mcepl@suse.com> - Add remove-typing.patch removing requirements for the typing library, which is useless now. ------------------------------------------------------------------- Thu Sep 20 20:17:41 UTC 2018 - Todd R <toddrme2178@gmail.com> - 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 - update to 0.8.9: * Bug Fixes * Fixed extra slash that could print when tab completing users on Windows * Prevent crashes that could occur attempting to open a file in non-existent directory or with very long filename * Make sure pip installs version 0.8.x if you have python 2.7 * Commands using the @with_argparser_and_unknown_args were not correctly recognized when tab completing * Fixed issue where completion display function was overwritten when a submenu quits * Fixed ``AttributeError`` on Windows when running a ``select`` command cause by **pyreadline** not implementing ``remove_history_item`` * Bug Fixes * Fixed a bug with all argument decorators where the wrapped function wasn't returning a value and thus couldn't cause the cmd2 app to quit * Enhancements * Added warning about **libedit** variant of **readline** not being supported on macOS * Added tab-completion of alias names in value filed of **alias** command * Enhanced the ``py`` console in the following ways * Added tab completion of Python identifiers instead of **cmd2** commands * Separated the ``py`` console history from the **cmd2** history * Added support for verbose help with -v where it lists a brief summary of what each command does * Added support for categorizing commands into groups within the help menu * See the [Grouping Commands](http://cmd2.readthedocs.io/en/latest/argument_processing.html?highlight=verbose#grouping-commands) section of the docs for more info * See [help_categories.py](https://github.com/python-cmd2/cmd2/blob/master/examples/help_categories.py) for an example * Tab completion of paths now supports ~user user path expansion * Simplified implementation of various tab completion functions so they no longer require ``ctypes`` * Expanded documentation of ``display_matches`` list to clarify its purpose. See cmd2.py for this documentation. * Adding opening quote to tab completion if any of the completion suggestions have a space. * Tab completion has been overhauled and now supports completion of strings with quotes and spaces. * Tab completion will automatically add an opening quote if a string with a space is completed. * Added ``delimiter_complete`` function for tab completing delimited strings * Added more control over tab completion behavior including the following flags. The use of these flags is documented in cmd2.py * ``allow_appended_space`` * ``allow_closing_quote`` * Due to the tab completion changes, non-Windows platforms now depend on [wcwidth](https://pypi.python.org/pypi/wcwidth). * An alias name can now match a command name. * An alias can now resolve to another alias. * **Python 2 EOL notice** * This is the last release where new features will be added to ``cmd2`` for Python 2.7 * The 0.9.0 release of ``cmd2`` will support Python 3.4+ only * Additional 0.8.x releases may be created to supply bug fixes for Python 2.7 up until August 31, 2018 * After August 31, 2018 not even bug fixes will be provided for Python 2.7 * Fixed conditional dependency issue in setup.py that was in 0.8.3. * Fixed ``help`` command not calling functions for help topics * Fixed not being able to use quoted paths when redirecting with ``<`` and ``>`` * Enhancements * Attribute Changes (Breaks backward compatibility) * ``exclude_from_help`` is now called ``hidden_commands`` since these commands are hidden from things other than help, including tab completion * This list also no longer takes the function names of commands (``do_history``), but instead uses the command names themselves (``history``) * ``excludeFromHistory`` is now called ``exclude_from_history`` * ``cmd_with_subs_completer()`` no longer takes an argument called ``base``. Adding tab completion to subcommands has been simplified to declaring it in the subcommand parser's default settings. This easily allows arbitrary completers like path_complete to be used. See [subcommands.py](https://github.com/python-cmd2/cmd2/blob/master/examples/subcommands.py) for an example of how to use tab completion in subcommands. In addition, the docstring for ``cmd_with_subs_completer()`` offers more details. * Bug Fixes * Fixed a bug in tab-completion of command names within sub-menus * Fixed a bug when using persistent readline history in Python 2.7 * Fixed a bug where the ``AddSubmenu`` decorator didn't work with a default value for ``shared_attributes`` * Added a check to ``ppaged()`` to only use a pager when running in a real fully functional terminal * Enhancements * Added [quit_on_sigint](http://cmd2.readthedocs.io/en/latest/settingchanges.html#quit-on-sigint) attribute to enable canceling current line instead of quitting when Ctrl+C is typed * Added possibility of having readline history preservation in a SubMenu * Added [table_display.py](https://github.com/python-cmd2/cmd2/blob/master/examples/table_display.py) example to demonstrate how to display tabular data * Added command aliasing with ``alias`` and ``unalias`` commands * Added the ability to load an initialization script at startup * See [alias_startup.py](https://github.com/python-cmd2/cmd2/blob/master/examples/alias_startup.py) for an example * Added a default SIGINT handler which terminates any open pipe subprocesses and re-raises a KeyboardInterrupt * For macOS, will load the ``gnureadline`` module if available and ``readline`` if not * Bug Fixes * Fixed a bug if a non-existent **do_*** method was added to the ``exclude_from_help`` list * Fixed a bug in a unit test which would fail if your home directory was empty on a Linux system * Fixed outdated help text for the **edit** command * Fixed outdated [remove_unused.py](https://github.com/python-cmd2/cmd2/blob/master/examples/remove_unused.py) * Enhancements * Added support for sub-menus. * See [submenus.py](https://github.com/python-cmd2/cmd2/blob/master/examples/submenus.py) for an example of how to use it * Added option for persistent readline history * See [persistent_history.py](https://github.com/python-cmd2/cmd2/blob/master/examples/persistent_history.py) for an example * See the [Searchable command history](http://cmd2.readthedocs.io/en/latest/freefeatures.html#searchable-command-history) section of the documentation for more info * Improved PyPI packaging by including unit tests and examples in the tarball * Improved documentation to make it more obvious that **poutput()** should be used instead of **print()** * ``exclude_from_help`` and ``excludeFromHistory`` are now instance instead of class attributes * Added flag and index based tab completion helper functions * See [tab_completion.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_completion.py) * Added support for displaying output which won't fit on the screen via a pager using ``ppaged()`` * See [paged_output.py](https://github.com/python-cmd2/cmd2/blob/master/examples/paged_output.py) * Attributes Removed (**can cause breaking changes**) * ``abbrev`` - Removed support for abbreviated commands * Good tab completion makes this unnecessary and its presence could cause harmful unintended actions * ``case_insensitive`` - Removed support for case-insensitive command parsing * Its presence wasn't very helpful and could cause harmful unintended actions * Bug Fixes * Fixed unit tests on Python 3.7 due to changes in how re.escape() behaves in Python 3.7 * Fixed a bug where unknown commands were getting saved in the history * Enhancements * Three new decorators for **do_*** commands to make argument parsing easier * **with_argument_list** decorator to change argument type from str to List[str] * **do_*** commands get a single argument which is a list of strings, as pre-parsed by shlex.split() * **with_arparser** decorator for strict argparse-based argument parsing of command arguments * **do_*** commands get a single argument which is the output of argparse.parse_args() * **with_argparser_and_unknown_args** decorator for argparse-based argument parsing, but allows unknown args * **do_*** commands get two arguments, the output of argparse.parse_known_args() * See the [Argument Processing](http://cmd2.readthedocs.io/en/latest/argument_processing.html) section of the documentation for more information on these decorators * Alternatively, see the [argparse_example.py](https://github.com/python-cmd2/cmd2/blob/master/examples/argparse_example.py) and [arg_print.py](https://github.com/python-cmd2/cmd2/blob/master/examples/arg_print.py) examples * Added support for Argparse sub-commands when using the **with_argument_parser** or **with_argparser_and_unknown_args** decorators * See [subcommands.py](https://github.com/python-cmd2/cmd2/blob/master/examples/subcommands.py) for an example of how to use subcommands * Tab-completion of sub-command names is automatically supported * The **__relative_load** command is now hidden from the help menu by default * This command is not intended to be called from the command line, only from within scripts * The **set** command now has an additional **-a/--all** option to also display read-only settings * The **history** command can now run, edit, and save prior commands, in addition to displaying prior commands. * The **history** command can now automatically generate a transcript file for regression testing * This makes creating regression tests for your ``cmd2`` application trivial * Commands Removed * The **cmdenvironment** has been removed and its functionality incorporated into the **-a/--all** argument to **set** * The **show** command has been removed. Its functionality has always existing within **set** and continues to do so * The **save** command has been removed. The capability to save commands is now part of the **history** command. * The **run** command has been removed. The capability to run prior commands is now part of the **history** command. * Other changes * The **edit** command no longer allows you to edit prior commands. The capability to edit prior commands is now part of the **history** command. The **edit** command still allows you to edit arbitrary files. * the **autorun_on_edit** setting has been removed. * For Python 3.4 and earlier, ``cmd2`` now has an additional dependency on the ``contextlib2`` module * Deprecations * The old **options** decorator for optparse-based argument parsing is now *deprecated* * The old decorator is still present for now, but will be removed in a future release * ``cmd2`` no longer includes **optparse.make_option**, so if your app needs it import directly from optparse ------------------------------------------------------------------- Tue Feb 13 18:33:35 UTC 2018 - dmueller@suse.com - 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 ------------------------------------------------------------------- Mon Aug 7 07:58:02 UTC 2017 - tbechtold@suse.com - convert to singlespec ------------------------------------------------------------------- Mon Aug 7 07:40:00 UTC 2017 - tbechtold@suse.com - update to 0.7.5: * `case_insensitive` is no longer a runtime-settable parameter, but it was still listed as such * Fixed a recursive loop bug when abbreviated commands are enabled and it could get stuck in the editor forever * Fixed argparse_example.py and pirate.py examples and transcript_regex.txt transcript * Fixed a bug in a unit test which occurred under unusual circumstances * Organized all attributes used to configure the ParserManager into a single location * Set the default value of `abbrev` to `False` (which controls whether or not abbreviated commands are allowed) * Improved implementation of `load` to use command queue instead of nested inner loop * Fixed a couple bugs in interacting with pastebuffer/clipboard on macOS and Linux * Fixed a couple bugs in edit and save commands if called when history is empty * Ability to pipe ``cmd2`` command output to a shell command is now more reliable, particularly on Windows * Fixed a bug in ``pyscript`` command on Windows related to ``\`` being interpreted as an escape * Ensure that path and shell command tab-completion results are alphabetically sorted * Removed feature for load command to load scripts from URLS * Removed presence of a default file name and default file extension * ``load`` command has better error checking and reporting * Clipboard copy and paste functionality is now handled by the **pyperclip** module * ``shell`` command now supports redirection and piping of output * Added a lot of unit tests * Removed pause command * Added a dependency on the **pyperclip** module * Fixed a bug in displaying a span of history items when only an end index is supplied * Fixed a bug which caused transcript test failures to display twice * Added the ability to exclude commands from the help menu (**eof** included by default) * Redundant **list** command removed and features merged into **history** command * Added **pyscript** command which supports tab-completion and running Python scripts with arguments * Improved tab-completion of file system paths, command names, and shell commands * Changed default value of USE_ARG_LIST to True - this affects the beavhior of all **@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 ------------------------------------------------------------------- Mon Nov 14 14:21:27 UTC 2016 - dmueller@suse.com - update to 0.6.9: * Support Python 3 input() ------------------------------------------------------------------- Fri Jan 9 00:30:50 UTC 2015 - dmueller@suse.com - update to 0.6.8: * In case when which is not installed, do not launch an editor ------------------------------------------------------------------- Fri Sep 27 13:51:06 UTC 2013 - dmueller@suse.com - update to 0.6.7: * various python 3.x compat fixes - remove cmd2-pyparsing201.patch, merged upstream ------------------------------------------------------------------- Tue Sep 17 13:28:58 UTC 2013 - speilicke@suse.com - Add cmd2-pyparsing201.patch: Allow running with pyparsing>=2.0.1 ------------------------------------------------------------------- Tue Sep 3 08:04:14 UTC 2013 - dmueller@suse.com - update to 0.6.6.1: * go back to pyparsing 1.5.7 ------------------------------------------------------------------- Tue Aug 13 10:01:07 UTC 2013 - dmueller@suse.com - update to 0.6.6: * include editor search stderr fix ------------------------------------------------------------------- Thu Jul 25 15:35:32 UTC 2013 - dheidler@suse.de - Backport editor stderr fix ------------------------------------------------------------------- Mon Apr 29 11:18:38 UTC 2013 - dmueller@suse.com - update to 0.6.5.1: * Fix requires to python-pyparsing ------------------------------------------------------------------- Fri Jan 11 21:43:32 UTC 2013 - p.drouand@gmail.com - Add python3 support ------------------------------------------------------------------- Fri Jul 27 10:43:57 UTC 2012 - saschpe@suse.de - Initial version
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor