From 0b61a039c6108100658d19f58c969ea255c47d1ee969d6ae46fa7d05426ba393 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Sat, 23 Nov 2024 22:32:42 +0000 Subject: [PATCH] - Update to version 2.5.7 * Fixed issue where argument parsers for overridden commands were not being created.. * Fixed issue where Cmd.ppaged() was not writing to the passed in destination. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmd2?expand=0&rev=104 --- .gitattributes | 23 + .gitignore | 1 + cmd2-2.4.3.tar.gz | 3 + cmd2-2.5.2.tar.gz | 3 + cmd2-2.5.4.tar.gz | 3 + cmd2-2.5.6.tar.gz | 3 + cmd2-2.5.7.tar.gz | 3 + cmd2-no-coverage-tests.patch | 17 + python-cmd2.changes | 940 +++++++++++++++++++++++++++++++++++ python-cmd2.spec | 95 ++++ 10 files changed, 1091 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 cmd2-2.4.3.tar.gz create mode 100644 cmd2-2.5.2.tar.gz create mode 100644 cmd2-2.5.4.tar.gz create mode 100644 cmd2-2.5.6.tar.gz create mode 100644 cmd2-2.5.7.tar.gz create mode 100644 cmd2-no-coverage-tests.patch create mode 100644 python-cmd2.changes create mode 100644 python-cmd2.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/cmd2-2.4.3.tar.gz b/cmd2-2.4.3.tar.gz new file mode 100644 index 0000000..586c291 --- /dev/null +++ b/cmd2-2.4.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71873c11f72bd19e2b1db578214716f0d4f7c8fa250093c601265a9a717dee52 +size 678661 diff --git a/cmd2-2.5.2.tar.gz b/cmd2-2.5.2.tar.gz new file mode 100644 index 0000000..1e91ca3 --- /dev/null +++ b/cmd2-2.5.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b25cb0f3b01b4192dc13073847747ed4843b7106a2291adb2c4f47c93bfc30e +size 724019 diff --git a/cmd2-2.5.4.tar.gz b/cmd2-2.5.4.tar.gz new file mode 100644 index 0000000..d800c63 --- /dev/null +++ b/cmd2-2.5.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:895df845c0a47bc31568d4312fc8b617bb23f6ead3b6ea0d1507bdfdd1cd539d +size 723971 diff --git a/cmd2-2.5.6.tar.gz b/cmd2-2.5.6.tar.gz new file mode 100644 index 0000000..2bc5284 --- /dev/null +++ b/cmd2-2.5.6.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00b27eaf29169f7aac2fcdf57af879156b7790b50803d24ccfc01a247653de97 +size 724291 diff --git a/cmd2-2.5.7.tar.gz b/cmd2-2.5.7.tar.gz new file mode 100644 index 0000000..d6c1491 --- /dev/null +++ b/cmd2-2.5.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c5ed3a04869ca628abf76f8a603d57c8631c5fd4db10cf8a48d5cd7856ba110 +size 725759 diff --git a/cmd2-no-coverage-tests.patch b/cmd2-no-coverage-tests.patch new file mode 100644 index 0000000..6bcc02c --- /dev/null +++ b/cmd2-no-coverage-tests.patch @@ -0,0 +1,17 @@ +diff --git a/pyproject.toml b/pyproject.toml +index bfd8d44..f88999e 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -54,12 +54,6 @@ warn_unused_ignores = false + testpaths = [ + "tests", + ] +-addopts = [ +- "--cov=cmd2", +- "--cov-append", +- "--cov-report=term", +- "--cov-report=html", +-] + + [tool.ruff] + # Exclude a variety of commonly ignored directories. diff --git a/python-cmd2.changes b/python-cmd2.changes new file mode 100644 index 0000000..e577ff9 --- /dev/null +++ b/python-cmd2.changes @@ -0,0 +1,940 @@ +------------------------------------------------------------------- +Sat Nov 23 11:09:05 UTC 2024 - Martin Hauke + +- Update to version 2.5.7 + * Fixed issue where argument parsers for overridden commands + were not being created.. + * Fixed issue where Cmd.ppaged() was not writing to the passed + in destination. + +------------------------------------------------------------------- +Thu Nov 14 19:27:34 UTC 2024 - Martin Hauke + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- update to 2.3.3: + * Added clearer exception handling to `BorderedTable` and `SimpleTable`. + +------------------------------------------------------------------- +Mon Dec 6 18:04:09 UTC 2021 - Dirk Müller + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- Do not restrict pytest4 as it works quite fine with pytest5 + +------------------------------------------------------------------- +Thu Feb 27 13:47:06 UTC 2020 - Dirk Mueller + +- 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 + +- 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 + +- Fix up dependencies and everything after last update to 0.9.20 + +------------------------------------------------------------------- +Thu Nov 14 15:18:49 CET 2019 - Matej Cepl + +- 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 + +- 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 + +- 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 + +- 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 + +- fix build for SLE12 and older + +------------------------------------------------------------------- +Tue Apr 9 07:34:57 UTC 2019 - Thomas Bechtold + +- Fix Requires for older python3 versions + +------------------------------------------------------------------- +Fri Mar 15 10:31:09 UTC 2019 - Tomáš Chvátal + +- Add vim to depends as it is used in tests as an editor + +------------------------------------------------------------------- +Thu Mar 14 19:04:12 UTC 2019 - Matěj Cepl + +- Add vim to BR + +------------------------------------------------------------------- +Thu Mar 14 14:59:18 UTC 2019 - Tomáš Chvátal + +- 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 + +- 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 + +- Add remove-typing.patch removing requirements for the typing library, + which is useless now. + +------------------------------------------------------------------- +Thu Sep 20 20:17:41 UTC 2018 - Todd R + +- Update to version 0.9.4 + + Bug Fixes + * Fixed bug where ``preparse`` was not getting called + * Fixed bug in parsing of multiline commands where matching quote is on another line + + Enhancements + * Improved implementation of lifecycle hooks to support a plugin + framework, see ``docs/hooks.rst`` for details. + * New dependency on ``attrs`` third party module + * Added ``matches_sorted`` member to support custom sorting of tab-completion matches + * Added [tab_autocomp_dynamic.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_autocomp_dynamic.py) example + * Demonstrates updating the argparse object during init instead of during class construction + + Deprecations + * Deprecated the following hook methods, see ``hooks.rst`` for full details: + * ``cmd2.Cmd.preparse()`` - equivalent functionality available + via ``cmd2.Cmd.register_postparsing_hook()`` + * ``cmd2.Cmd.postparsing_precmd()`` - equivalent functionality available + via ``cmd2.Cmd.register_postparsing_hook()`` + * ``cmd2.Cmd.postparsing_postcmd()`` - equivalent functionality available + via ``cmd2.Cmd.register_postcmd_hook()`` +- Update to version 0.9.3 + + Bug Fixes + * Fixed bug when StatementParser ``__init__()`` was called with ``terminators`` equal to ``None`` + * Fixed bug when ``Cmd.onecmd()`` was called with a raw ``str`` + + Enhancements + * Added ``--clear`` flag to ``history`` command that clears both the command and readline history. + + Deletions + * The ``CmdResult`` helper class which was *deprecated* in the previous release has now been deleted + * It has been replaced by the improved ``CommandResult`` class +- Update to version 0.9.2 + + Bug Fixes + * Fixed issue where piping and redirecting did not work correctly with paths that had spaces + + Enhancements + * Added ability to print a header above tab-completion suggestions using `completion_header` member + * Added ``pager`` and ``pager_chop`` attributes to the ``cmd2.Cmd`` class + * ``pager`` defaults to **less -RXF** on POSIX and **more** on Windows + * ``pager_chop`` defaults to **less -SRXF** on POSIX and **more** on Windows + * Added ``chop`` argument to ``cmd2.Cmd.ppaged()`` method for displaying output using a pager + * If ``chop`` is ``False``, then ``self.pager`` is used as the pager + * Otherwise ``self.pager_chop`` is used as the pager + * Greatly improved the [table_display.py](https://github.com/python-cmd2/cmd2/blob/master/examples/table_display.py) example + * Now uses the new [tableformatter](https://github.com/python-tableformatter/tableformatter) module which looks better than ``tabulate`` + + Deprecations + * The ``CmdResult`` helper class is *deprecated* and replaced by the improved ``CommandResult`` class + * ``CommandResult`` has the following attributes: **stdout**, **stderr**, and **data** + * ``CmdResult`` had attributes of: **out**, **err**, **war** + * ``CmdResult`` will be deleted in the next release +- Update to version 0.8.8 + + Bug Fixes + * Prevent crashes that could occur attempting to open a file in non-existent directory or with very long filename + + Enhancements + * `display_matches` is no longer restricted to delimited strings +- Update to version 0.9.1 + + Bug Fixes + * fix packaging error for 0.8.x versions (yes we had to deploy a new version + of the 0.9.x series to fix a packaging error with the 0.8.x version) +- Update to version 0.9.0 + + Bug Fixes + * If self.default_to_shell is true, then redirection and piping are now properly passed to the shell. Previously it was truncated. + * Submenus now call all hooks, it used to just call precmd and postcmd. + + Enhancements + * Automatic completion of ``argparse`` arguments via ``cmd2.argparse_completer.AutoCompleter`` + * See the [tab_autocompletion.py](https://github.com/python-cmd2/cmd2/blob/master/examples/tab_autocompletion.py) example for a demonstration of how to use this feature + * ``cmd2`` no longer depends on the ``six`` module + * ``cmd2`` is now a multi-file Python package instead of a single-file module + * New pyscript approach that provides a pythonic interface to commands in the cmd2 application. + * Switch command parsing from pyparsing to custom code which utilizes shlex. + * The object passed to do_* methods has changed. It no longer is the pyparsing object, it's a new Statement object, which is a subclass of ``str``. The statement object has many attributes which give you access to various components of the parsed input. If you were using anything but the string in your do_* methods, this change will require you to update your code. + * ``commentGrammers`` is no longer supported or available. Comments are C-style or python style. + * Input redirection no longer supported. Use the load command instead. + * ``multilineCommand`` attribute is ``now multiline_command`` + * ``identchars`` is now ignored. The standardlibrary cmd uses those characters to split the first "word" of the input, but cmd2 hasn't used those for a while, and the new parsing logic parses on whitespace, which has the added benefit of full unicode support, unlike cmd or prior versions of cmd2. + * ``set_posix_shlex`` function and ``POSIX_SHLEX`` variable have been removed. Parsing behavior is now always the more forgiving ``posix=false``. + * ``set_strip_quotes`` function and ``STRIP_QUOTES_FOR_NON_POSIX`` have been removed. Quotes are stripped from arguments when presented as a list (a la ``sys.argv``), and present when arguments are presented as a string (like the string passed to do_*). + + Changes + * ``strip_ansi()`` and ``strip_quotes()`` functions have moved to new utils module + * Several constants moved to new constants module + * Submenu support has been moved to a new [cmd2-submenu](https://github.com/python-cmd2/cmd2-submenu) plugin. If you use submenus, you will need to update your dependencies and modify your imports. + + Deletions (potentially breaking changes) + * Deleted all ``optparse`` code which had previously been deprecated in release 0.8.0 + * The ``options`` decorator no longer exists + * All ``cmd2`` code should be ported to use the new ``argparse``-based decorators + * See the [Argument Processing](http://cmd2.readthedocs.io/en/latest/argument_processing.html) section of the documentation for more information on these decorators + * Alternatively, see the [argparse_example.py](https://github.com/python-cmd2/cmd2/blob/master/examples/argparse_example.py) + * Deleted ``cmd_with_subs_completer``, ``get_subcommands``, and ``get_subcommand_completer`` + * Replaced by default AutoCompleter implementation for all commands using argparse + * Deleted support for old method of calling application commands with ``cmd()`` and ``self`` + * ``cmd2.redirector`` is no longer supported. Output redirection can only be done with '>' or '>>' + * Deleted ``postparse()`` hook since it was redundant with ``postparsing_precmd`` + + Python 2 no longer supported + * ``cmd2`` now supports Python 3.4+ + + Known Issues + * Some developers have noted very slow performance when importing the ``cmd2`` module. The issue + it intermittant, and investigation of the root cause is ongoing. +- Python2 is no longer supported upstream, + so don't build it. + +------------------------------------------------------------------- +Wed Sep 5 20:07:43 UTC 2018 - dmueller@suse.com + +- 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 + * ``+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 + diff --git a/python-cmd2.spec b/python-cmd2.spec new file mode 100644 index 0000000..bc18b0d --- /dev/null +++ b/python-cmd2.spec @@ -0,0 +1,95 @@ +# +# spec file for package python-cmd2 +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: python-cmd2 +Version: 2.5.7 +Release: 0 +Summary: Extra features for standard library's cmd module +License: MIT +URL: https://github.com/python-cmd2/cmd2 +Source: https://github.com/python-cmd2/cmd2/archive/refs/tags/%{version}.tar.gz#/cmd2-%{version}.tar.gz +Patch0: cmd2-no-coverage-tests.patch +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: %{pythons} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildRequires: vim +Requires: python +Requires: python-attrs >= 16.3.0 +Requires: python-pyperclip >= 1.6 +Requires: python-wcwidth >= 0.1.7 +BuildArch: noarch +%if 0%{?python_version_nodots} < 38 +Requires: python-importlib_metadata >= 1.6 +Requires: python-typing_extensions +%endif +# SECTION Test requirements +BuildRequires: %{python_module attrs >= 16.3.0} +BuildRequires: %{python_module importlib_metadata >= 1.6 if %python-base < 3.8} +BuildRequires: %{python_module pyperclip >= 1.6} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module typing_extensions if %python-base < 3.8} +BuildRequires: %{python_module wcwidth >= 0.1.7} +BuildRequires: vim +# /SECTION +%python_subpackages + +%description +Enhancements for standard library's cmd module. + +Drop-in replacement adds several features for command-prompt tools: + + * Searchable command history (commands: "hi", "li", "run") + * Load commands from file, save to file, edit commands in file + * Multi-line commands + * Case-insensitive commands + * Special-character shortcut commands (beyond cmd's "@" and "!") + * Settable environment parameters + * Parsing commands with flags + * > (filename), >> (filename) redirect output to file + * < (filename) gets input from file + * bare >, >>, < redirect to/from paste buffer + * accepts abbreviated commands when unambiguous + * `py` enters interactive Python console + * test apps against sample session transcript (see example/example.py) + +%prep +%autosetup -p1 -n cmd2-%{version} +# Fix spurious-executable-perm +chmod a-x README.md + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +# -q: prevent to colorize the terminal from color commands in parametrized test names +%pytest -q + +%files %{python_files} +%license LICENSE +%doc CHANGELOG.md README.md +%{python_sitelib}/cmd2 +%{python_sitelib}/cmd2-*-info + +%changelog