forked from pool/python-argcomplete
- Update to the version 3.5.1:
- Restore compatibility with argparse in Python 3.12.7+ - Use project.scripts instead of setuptools scripts - Test infrastructure improvements - Remove upstreamed patches: - argparse-3_12_7.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argcomplete?expand=0&rev=80
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -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
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
||||
BIN
argcomplete-3.3.0.tar.gz
LFS
Normal file
BIN
argcomplete-3.3.0.tar.gz
LFS
Normal file
Binary file not shown.
BIN
argcomplete-3.4.0.tar.gz
LFS
Normal file
BIN
argcomplete-3.4.0.tar.gz
LFS
Normal file
Binary file not shown.
3
argcomplete-3.5.1.tar.gz
Normal file
3
argcomplete-3.5.1.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb1ee355aa2557bd3d0145de7b06b2a45b0ce461e1e7813f5d066039ab4177b4
|
||||
size 82280
|
||||
22
argparse-3_12_7.patch
Normal file
22
argparse-3_12_7.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
From 480d112ba488fa6825db877201577270053dacce Mon Sep 17 00:00:00 2001
|
||||
From: Eggry Ran <eggry@live.cn>
|
||||
Date: Sun, 6 Oct 2024 16:16:49 +0800
|
||||
Subject: [PATCH] Fix issue #507
|
||||
|
||||
---
|
||||
argcomplete/packages/_argparse.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/argcomplete/packages/_argparse.py b/argcomplete/packages/_argparse.py
|
||||
index 2a064f9..d10cf01 100644
|
||||
--- a/argcomplete/packages/_argparse.py
|
||||
+++ b/argcomplete/packages/_argparse.py
|
||||
@@ -162,6 +162,8 @@ def take_action(action, argument_strings, option_string=None):
|
||||
def consume_optional(start_index):
|
||||
# get the optional identified at this index
|
||||
option_tuple = option_string_indices[start_index]
|
||||
+ if isinstance(option_tuple, list): # Python 3.12.7+
|
||||
+ option_tuple = option_tuple[0]
|
||||
if len(option_tuple) == 3:
|
||||
action, option_string, explicit_arg = option_tuple
|
||||
else: # Python 3.11.9+, 3.12.3+, 3.13+
|
||||
13
bash-repl.patch
Normal file
13
bash-repl.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
Index: argcomplete-3.0.8/test/test.py
|
||||
===================================================================
|
||||
--- argcomplete-3.0.8.orig/test/test.py
|
||||
+++ argcomplete-3.0.8/test/test.py
|
||||
@@ -65,7 +65,7 @@ def _repl_sh(command, args, non_printabl
|
||||
|
||||
|
||||
def bash_repl(command="bash"):
|
||||
- bashrc = os.path.join(os.path.dirname(pexpect.__file__), "replwrap", "bashrc.sh")
|
||||
+ bashrc = os.path.join(os.path.dirname(pexpect.__file__), "bashrc.sh")
|
||||
sh = _repl_sh(command, ["--rcfile", bashrc], non_printable_insert="\\[\\]")
|
||||
return sh
|
||||
|
||||
431
python-argcomplete.changes
Normal file
431
python-argcomplete.changes
Normal file
@@ -0,0 +1,431 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 17:07:05 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Update to the version 3.5.1:
|
||||
- Restore compatibility with argparse in Python 3.12.7+
|
||||
- Use project.scripts instead of setuptools scripts
|
||||
- Test infrastructure improvements
|
||||
- Remove upstreamed patches:
|
||||
- argparse-3_12_7.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 6 21:27:22 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Add argparse-3_12_7.patch which should actually fix
|
||||
gh#kislyuk/argcomplete#507.
|
||||
- Remove skip-failing-tests-3_12_7.patch, which is now
|
||||
unnecessary.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 5 14:53:29 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Add skip-failing-tests-3_12_7.patch as a temporary workaround,
|
||||
skip failing tests (gh#kislyuk/argcomplete#507).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 13 20:18:47 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- require ca-certificates-mozilla for the pip >= 24.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 15 11:25:31 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- Update to 3.4.0
|
||||
* No stdin for python calls from bash completion functions (#488)
|
||||
- Prevents usage of stdin by (python) executables that are called
|
||||
during completion generation. This prevents the completion locking up
|
||||
the entire shell when the python script is broken i.e. it enters an
|
||||
interactive mode (REPL) instead of generating the completions, as
|
||||
expected.
|
||||
* Localize shell variable REPLY to avoid overwriting users’ value (#489)
|
||||
- The variable REPLY is used by default by the ``read`` shell builtin
|
||||
to store the return value, and like all bash/zsh variables, is scoped
|
||||
globally. This change allows this variable to be used for other needs
|
||||
by appropriately scoping its internal use by an argcomplete utility
|
||||
function that uses ``read``.
|
||||
- Drop patches for issued fixed upstream
|
||||
* bash-repl.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 18 06:26:52 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Update to 3.3.0 (bsc#1222880):
|
||||
* Preserve compatibility with argparse option tuples of length 4.
|
||||
This update is required to use argcomplete on Python 3.11.9+ or
|
||||
3.12.3+.
|
||||
- update to 3.2.3:
|
||||
* Allow register-python-argcomplete output to be used as lazy-loaded
|
||||
zsh completion module (#475)
|
||||
- Move debug_stream initialization to helper method to allow fd 9
|
||||
behavior to be overridden in subclasses (#471)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 30 12:07:05 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.2.2:
|
||||
* Expand tilde in zsh
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 3 10:54:17 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Remove coverage check
|
||||
- Fix zsh test failures: avoid coloring terminal
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 29 18:27:06 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.2.1:
|
||||
* Allow explicit zsh global completion activation (#467)
|
||||
* Fix and test global completion in zsh (#463, #466)
|
||||
* Add –yes option to activate-global-python-argcomplete (#461)
|
||||
* Test suite improvements
|
||||
- drop without_zsh.patch: obsolete
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 27 15:26:30 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.1.6:
|
||||
* Respect user choice in activate-global-python-argcomplete
|
||||
* Escape colon in zsh completions. Fixes #456
|
||||
* Call \_default as a fallback in zsh global completion
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 10 12:26:40 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.1.4:
|
||||
* Call \_default as a fallback in zsh global completion
|
||||
* zsh: Allow to use external script (#453)
|
||||
* Add support for Python 3.12 and drop EOL 3.6 and 3.7 (#449)
|
||||
* Use homebrew prefix by default
|
||||
* zsh: Allow to use external script (#453)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 24 12:01:08 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add setuptools_scm for proper version detection
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 5 08:46:50 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.1.2:
|
||||
*Ensure Python 3.12+ compatibility in check_console_script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 4 11:24:40 UTC 2023 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- Update to version 3.1.1
|
||||
* Search through asdf shims
|
||||
* Use \` as escape character in PowerShell (#434)
|
||||
- from version 3.1.0
|
||||
* setup.py -> pyproject.toml migration start (#427)
|
||||
* Improve user install logic in activate-global-python-argcomplete (#437)
|
||||
* Ensure Python 3.7 compatibility in check_console_script (#436)
|
||||
* ZSH implementation fixes (#431, #433)
|
||||
* Documentation improvements
|
||||
- Drop obsolete patch
|
||||
* trim-test-deps.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 30 16:02:49 UTC 2023 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- bash-repl.patch: Use correct place for auxiliary bashrc.sh file from pexpect
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 5 11:23:29 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add without_zsh.patch
|
||||
- Delete skip_tcsh_tests.patch
|
||||
- Delete without_fish.patch
|
||||
- Update to 3.0.8:
|
||||
* Test suite shell wrapper: Accept OSError on exit
|
||||
- 3.0.7:
|
||||
* Test suite: Use general regex to cut zsh reset ANSI sequences (#425)
|
||||
- 3.0.6:
|
||||
* Allow importlib-metadata 6.x; skip test failures on Python 3.7 (#420, #424)
|
||||
* Note completers can return iterables of strings, not just lists (#422)
|
||||
* Documentation and test improvements
|
||||
- 3.0.5:
|
||||
* Call _default as fallback in zsh global completion hook
|
||||
* Begin support for mapping-emitting completers
|
||||
- 3.0.4:
|
||||
* activate-global-python-argcomplete: do not overwrite existing dotfile in user directory
|
||||
* Add NOTICE file
|
||||
* Establish long term name for split_line as argcomplete.lexers.split_line
|
||||
- 3.0.3:
|
||||
* Re-add split_line to API (#419)
|
||||
- 3.0.2:
|
||||
* Fix zsh default completion issues
|
||||
- 3.0.1:
|
||||
* Fix zsh autoload issues
|
||||
- 3.0.0:
|
||||
* Fully support zsh. Argcomplete now supports completion
|
||||
descriptions and global completion in zsh.
|
||||
* Clean up top level namespace.
|
||||
* Documentation and test improvements.
|
||||
- 2.1.2:
|
||||
* Test infrastructure improvements
|
||||
* Indicate that there is no support commitment for fish and tcsh shells
|
||||
- 2.1.1:
|
||||
* Documentation and test improvements
|
||||
- 2.1.0:
|
||||
* Remove scripts for contrib-supported shells from global namespace
|
||||
- 2.0.6:
|
||||
* setup.py: exclude test.* subpackages from find_packages (#406)
|
||||
* Support PowerShell (#405)
|
||||
* CI updates
|
||||
- 2.0.5:
|
||||
* Revert "Support powershell (#392)"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 21 12:21:56 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add sle15_python_module_pythons (jsc#PED-68)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 13 22:39:57 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Make calling of %{sle15modernpython} optional.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 24 10:47:53 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Remove importlib-metadata requirement, it's not needed for python > 3.7
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 16 09:32:50 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Add without_fish.patch which makes fish only optional
|
||||
BuildRequires (gh#kislyuk/argcomplete!410).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 31 23:49:21 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- fix substitution on tests/test.py to test the current python flavor
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 6 10:04:40 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 2.0.0:
|
||||
* Truncate input after cursor.
|
||||
* Support of path completion in fish
|
||||
* Drop support for Python 2.7 and 3.5
|
||||
* Add support for Python 3.10
|
||||
* Test, documentation, and release infrastructure improvements
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jun 6 11:43:24 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.12.3:
|
||||
* Update importlib-metadata version pin
|
||||
* Display script debug output in tcsh
|
||||
* Fish support improvements
|
||||
* Print ``warn()`` message from beginning of line
|
||||
* Test infrastructure improvements
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 20 09:17:00 UTC 2020 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.12.2:
|
||||
- Update importlib-metadata dependency pin (#332)
|
||||
- Add change log project URL (#312)
|
||||
- Replace Travis CI with GitHub Actions (#323)
|
||||
- Update importlib-metadata dependency version range
|
||||
- Bash nounset mode fixes (#313)
|
||||
- remove 0001-Remove-expected-test-failure-for-new-versions-of-fish.patch (upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 27 13:01:18 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
|
||||
|
||||
- %python3_only -> %python_alternative
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 30 06:05:59 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Fix test execution without /usr/bin/python
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 26 09:44:38 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch from upstream to fix tests with latest fish version:
|
||||
* 0001-Remove-expected-test-failure-for-new-versions-of-fish.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 10:42:58 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
|
||||
|
||||
- update to 1.11.1
|
||||
* Add -o bashdefault to register-python-argcomplete’s output command
|
||||
* Use shell builtins where possible
|
||||
* Switch from pkg_resources to importlib
|
||||
* Remove .sh extension by bash-completion convention
|
||||
* Do not suggest options after –
|
||||
* Include all test directory contents in source distribution
|
||||
* Trigger completers on –optional=PARTIAL_VALUE
|
||||
* Documentation and test improvements
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 13 12:45:13 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 1.10.0:
|
||||
* fish support
|
||||
- Refresh patch skip_tcsh_tests.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 5 11:02:52 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 1.9.5:
|
||||
* check_module: Don’t crash, exit with error instead (#261)
|
||||
* Register completion for multiple commands (#246)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 25 05:52:03 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
|
||||
|
||||
- Trim unnecessary build dependencies using trim-test-deps.patch
|
||||
- Simplify skip_tcsh_tests.patch so it is easier to read and update
|
||||
- Update to v1.9.4
|
||||
* Use the correct interpreter when checking wrappers
|
||||
* Provide shellcode as a module function (#237)
|
||||
- from v1.9.3
|
||||
* Fix handling of COMP\_POINT
|
||||
* Fix crash when writing unicode to debug\_stream in Python 2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 4 12:45:38 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Remove superfluous devel dependency for noarch package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 15 13:49:08 UTC 2017 - adrian.glaubitz@suse.com
|
||||
|
||||
- New upstream release
|
||||
+ Version 1.9.2
|
||||
- Update patch to skip broken tcsh tests
|
||||
+ skip_tcsh_tests.patch
|
||||
- Fix issues with singlespec auto-conversion
|
||||
+ Install %{python_sitelib}/bash_completion.d/python-argcomplete.sh
|
||||
into %{_sysconfdir}/bash_completion.d/
|
||||
+ Use %python_clone to create both Python 2 and Python 3 versions
|
||||
of all scripts below /usr/bin and /etc/bash_completion.d
|
||||
with the %{python_version} suffix; also install the Python 3
|
||||
versions without the suffix
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 24 13:32:49 UTC 2017 - jmatejek@suse.com
|
||||
|
||||
- singlespec auto-conversion
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 20 09:48:53 UTC 2017 - sebix+novell.com@sebix.at
|
||||
|
||||
- update to 1.8.2
|
||||
- add patch skip_tcsh_tests.patch to skip broken tcsh tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 02 20:50:53 UTC 2016 - achim.herwig@wodca.de
|
||||
|
||||
- ported back from python3 package including
|
||||
introduced update-alternatives to coexist with corresponding python3 package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 12 17:49:43 UTC 2015 - mimi.vx@gmail.com
|
||||
|
||||
- update to 1.0.0
|
||||
* Don't print args with suppressed help by default; add
|
||||
argcomplete.autocomplete(print_suppressed=True) to control this behavior
|
||||
* Fix always_complete_options=False support.
|
||||
* Correct doc filename in setup.cfg
|
||||
* Make context managers exception-safe.
|
||||
* Fix issue with non-string choices for arguments.
|
||||
* Improve non-ascii argparse argument support on Python 2.7.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 19 16:08:50 UTC 2015 - benoit.monin@gmx.fr
|
||||
|
||||
- update to 0.8.7:
|
||||
* register-python-argcomplete: add option to avoid default
|
||||
readline completion. Thanks to @drmalex07 (pull request #99).
|
||||
- additional changes from 0.8.6:
|
||||
* Expand tilde in script name, allowing argcomplete to work
|
||||
when invoking scripts from one's home directory. Thanks to
|
||||
@VorpalBlade (Issue 104).
|
||||
- additional changes from 0.8.5:
|
||||
* Fix issues related to using argcomplete in a REPL
|
||||
environement.
|
||||
* New helper method for custom completion display.
|
||||
* Expand test suite; formatting cleanup.
|
||||
- additional changes from 0.8.4:
|
||||
* Fix issue related to using argcomplete in a REPL
|
||||
environement. Thanks to @wapiflapi (pull request #91).
|
||||
- additional changes from 0.8.3:
|
||||
* Fix multiple issues related to using argcomplete in a REPL
|
||||
environement. Thanks to @wapiflapi (pull request #90).
|
||||
- additional changes from 0.8.2:
|
||||
* Don't strip colon prefix in completion results if
|
||||
COMP_WORDBREAKS does not contain a colon. Thanks to @berezv
|
||||
(pull request #88).
|
||||
- additional changes from 0.8.1:
|
||||
* Use complete --nospace to avoid issues with directory
|
||||
completion.
|
||||
- additional changes from 0.8.0:
|
||||
* Refactor main body of code into a class to enable
|
||||
subclassing and overriding of functionality (Issue #78).
|
||||
- additional changes from 0.7.1:
|
||||
* New keyword option "argcomplete.autocomplete(validator=...)"
|
||||
to supply a custom validator or bypass default validation.
|
||||
Thanks to @thijsdezoete (Issue #77).
|
||||
* Document debug options.
|
||||
- additional changes from 0.7.0:
|
||||
* New keyword option "argcomplete.autocomplete(exclude=[...])"
|
||||
to suppress options (Issue #74).
|
||||
* More speedups to code path for global completion hook negative
|
||||
result.
|
||||
- additional changes from 0.6.9:
|
||||
* Fix handling of development mode script wrappers. Thanks to
|
||||
@jmlopez-rod and @dcosson (Issue #69).
|
||||
* Speed up code path for global completion hook negative
|
||||
result by loading pkg_resources on demand.
|
||||
- additional changes from 0.6.8:
|
||||
* Begin tracking changes in changelog.
|
||||
* Add completion support for PBR installed scripts (PR #71).
|
||||
* Detect easy-install shims with shebang lines that contain
|
||||
Py instead of py (Issue #69).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 15:50:53 UTC 2014 - speilicke@suse.com
|
||||
|
||||
- Update to version 0.6.7:
|
||||
+ Upstream provides no changelog
|
||||
- Don't install testsuite globally
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 11:18:02 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Update to version 0.6.3:
|
||||
+ No changelog
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 24 10:58:50 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Require python-setuptools instead of distribute (upstreams merged)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 2 14:04:51 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Fix SLE builds
|
||||
- Add LICENSE.rst and README.rst
|
||||
- Run testsuite
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 29 11:10:08 UTC 2013 - darin@darins.net
|
||||
|
||||
- fixed license, set noarch for build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 26 20:49:09 UTC 2013 - darin@darins.net
|
||||
|
||||
- add files in _bindir
|
||||
- add python-distribute
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 26 20:44:08 UTC 2013 - darin@darins.net
|
||||
|
||||
- Initial packaging
|
||||
121
python-argcomplete.spec
Normal file
121
python-argcomplete.spec
Normal file
@@ -0,0 +1,121 @@
|
||||
#
|
||||
# spec file for package python-argcomplete
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2013 Darin Perusich.
|
||||
#
|
||||
# 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/
|
||||
#
|
||||
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{flavor}" == "test"
|
||||
%define psuffix -test
|
||||
%bcond_without test
|
||||
%else
|
||||
%define psuffix %{nil}
|
||||
%bcond_with test
|
||||
%endif
|
||||
Name: python-argcomplete%{psuffix}
|
||||
Version: 3.5.1
|
||||
Release: 0
|
||||
Summary: Bash tab completion for argparse
|
||||
License: Apache-2.0
|
||||
Group: Development/Languages/Python
|
||||
URL: https://github.com/kislyuk/argcomplete
|
||||
Source: https://files.pythonhosted.org/packages/source/a/argcomplete/argcomplete-%{version}.tar.gz
|
||||
BuildRequires: %{python_module base >= 3.8}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools >= 67.2}
|
||||
BuildRequires: %{python_module setuptools_scm >= 6.2}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
%if %{with test}
|
||||
BuildRequires: %{python_module argcomplete == %{version}}
|
||||
BuildRequires: %{python_module pexpect}
|
||||
BuildRequires: ca-certificates-mozilla
|
||||
BuildRequires: fish
|
||||
BuildRequires: zsh
|
||||
%endif
|
||||
Requires(post): update-alternatives
|
||||
Requires(postun): update-alternatives
|
||||
BuildArch: noarch
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
Argcomplete provides easy, extensible command line tab completion of
|
||||
arguments for your Python script.
|
||||
|
||||
It makes two assumptions:
|
||||
|
||||
* You're using bash as your shell
|
||||
* You're using argparse to manage your command line arguments/options
|
||||
|
||||
Argcomplete is particularly useful if your program has lots of options
|
||||
or subparsers, and if your program can dynamically suggest completions
|
||||
for your argument/option values (for example, if the user is browsing
|
||||
resources over the network).
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n argcomplete-%{version}
|
||||
|
||||
%build
|
||||
%if %{without test}
|
||||
%pyproject_wheel
|
||||
%endif
|
||||
|
||||
%install
|
||||
%if %{without test}
|
||||
%pyproject_install
|
||||
%python_clone -a %{buildroot}%{_bindir}/activate-global-python-argcomplete
|
||||
%python_clone -a %{buildroot}%{_bindir}/register-python-argcomplete
|
||||
%python_clone -a %{buildroot}%{_bindir}/python-argcomplete-check-easy-install-script
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
%endif
|
||||
|
||||
%check
|
||||
%if %{with test}
|
||||
export LANG=en_US.UTF-8
|
||||
export TERM=xterm-mono
|
||||
%{python_expand \
|
||||
# https://github.com/kislyuk/argcomplete/issues/255
|
||||
# https://github.com/kislyuk/argcomplete/issues/299
|
||||
sed -i -e "1s|#!.*python.*|#!%{__$python}|" test/prog test/*.py
|
||||
sed -i -e "s|python3 |$python |g" test/test.py
|
||||
PYTHONPATH=%{buildroot}%{$python_sitelib} $python ./test/test.py -v
|
||||
}
|
||||
%endif
|
||||
|
||||
%if %{without test}
|
||||
%post
|
||||
%python_install_alternative activate-global-python-argcomplete
|
||||
%python_install_alternative register-python-argcomplete
|
||||
%python_install_alternative python-argcomplete-check-easy-install-script
|
||||
|
||||
%postun
|
||||
%python_uninstall_alternative activate-global-python-argcomplete
|
||||
%python_uninstall_alternative register-python-argcomplete
|
||||
%python_uninstall_alternative python-argcomplete-check-easy-install-script
|
||||
|
||||
%files %{python_files}
|
||||
%doc README.rst
|
||||
%license LICENSE.rst
|
||||
%{python_sitelib}/argcomplete-%{version}.dist-info
|
||||
%{python_sitelib}/argcomplete
|
||||
%python_alternative %{_bindir}/activate-global-python-argcomplete
|
||||
%python_alternative %{_bindir}/python-argcomplete-check-easy-install-script
|
||||
%python_alternative %{_bindir}/register-python-argcomplete
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
126
skip-failing-tests-3_12_7.patch
Normal file
126
skip-failing-tests-3_12_7.patch
Normal file
@@ -0,0 +1,126 @@
|
||||
---
|
||||
test/test.py | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
--- a/test/test.py
|
||||
+++ b/test/test.py
|
||||
@@ -43,6 +43,7 @@ COMP_WORDBREAKS = " \t\n\"'><=;|&(:"
|
||||
BASH_VERSION = subprocess.check_output(["bash", "-c", "echo $BASH_VERSION"]).decode()
|
||||
BASH_MAJOR_VERSION = int(BASH_VERSION.split(".")[0])
|
||||
|
||||
+is_3_12_7 = sys.version_info[:2] == (3, 12) and sys.version_info[:3] >= (3, 12, 7)
|
||||
|
||||
class ArgcompleteREPLWrapper(REPLWrapper):
|
||||
def run_command(self, command, **kwargs):
|
||||
@@ -158,6 +159,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
completions = self.run_completer(p, "prog -", always_complete_options=False)
|
||||
self.assertEqual(set(completions), set(["-h", "--help", "--foo", "--bar"]))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_choices(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -274,6 +276,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_completers(self):
|
||||
self.completions = ["http://url1", "http://url2"]
|
||||
|
||||
@@ -317,6 +320,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in zsh_expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd, shell="zsh")), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_subparser_completers(self):
|
||||
def c_depends_on_positional_arg1(prefix, parsed_args, **kwargs):
|
||||
return [parsed_args.arg1]
|
||||
@@ -355,6 +359,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
fp.write("test")
|
||||
self.assertEqual(set(fc("a")), set(["abcdefж/", "abcaha/", "abcxyz"]))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_filescompleter_filetype_integration(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -404,6 +409,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
self.assertEqual(c("def/k"), set([]))
|
||||
return
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_default_completer(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser(add_help=False)
|
||||
@@ -423,6 +429,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_subparsers(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -455,6 +462,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
set(output) - set(["-h", "--help"]),
|
||||
)
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_non_ascii(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -664,6 +672,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_optional_nargs(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -696,6 +705,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_positional_remainder(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser()
|
||||
@@ -753,6 +763,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
result = self.run_completer(make_parser(), cmd, always_complete_options=always_complete_options)
|
||||
self.assertEqual(set(result), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_exclusive(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser(add_help=False)
|
||||
@@ -772,6 +783,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(make_parser(), cmd)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_mixed_optional_positional(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser(add_help=False)
|
||||
@@ -801,6 +813,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
self.assertEqual(self.run_completer(make_parser(), "prog "), ["bar "])
|
||||
self.assertEqual(self.run_completer(make_parser(), "prog ", append_space=False), ["bar"])
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_exclusive_class(self):
|
||||
parser = ArgumentParser(add_help=False)
|
||||
parser.add_argument("--foo", dest="types", action="append_const", const=str)
|
||||
@@ -821,6 +834,7 @@ class TestArgcomplete(unittest.TestCase)
|
||||
for cmd, output in expected_outputs:
|
||||
self.assertEqual(set(self.run_completer(parser, cmd, completer=completer)), set(output))
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_escape_special_chars(self):
|
||||
def make_parser():
|
||||
parser = ArgumentParser(add_help=False)
|
||||
@@ -921,6 +935,7 @@ class TestArgcompleteREPL(unittest.TestC
|
||||
completions = self.run_completer(p, c, "prog --")
|
||||
assert set(completions) == set(["--help", "--foo", "--bar"])
|
||||
|
||||
+ @unittest.skipIf(is_3_12_7, "Doesn't work with Python 3.12.7")
|
||||
def test_repl_parse_after_complete(self):
|
||||
p = ArgumentParser()
|
||||
p.add_argument("--foo", required=True)
|
||||
134
versioned_register-python-argcomplete.patch
Normal file
134
versioned_register-python-argcomplete.patch
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
test/test.py | 20 +++++++++++---------
|
||||
test/test_contrib_shells.py | 13 ++++++-------
|
||||
2 files changed, 17 insertions(+), 16 deletions(-)
|
||||
|
||||
--- a/test/test.py
|
||||
+++ b/test/test.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3.10
|
||||
import argparse
|
||||
import contextlib
|
||||
import os
|
||||
@@ -19,6 +19,8 @@ TEST_DIR = os.path.abspath(os.path.dirna
|
||||
BASE_DIR = os.path.dirname(TEST_DIR)
|
||||
sys.path.insert(0, BASE_DIR)
|
||||
|
||||
+py_ver = "%s.%s" % sys.version_info[:2]
|
||||
+
|
||||
from argparse import SUPPRESS, ArgumentParser # noqa: E402
|
||||
|
||||
import argcomplete # noqa: E402
|
||||
@@ -1254,7 +1256,7 @@ class TestBashZshBase(TestShellBase):
|
||||
init_cmd = None
|
||||
# 'dummy' argument unused; checks multi-command registration works
|
||||
# by passing 'prog' as the second argument.
|
||||
- install_cmd = 'eval "$(register-python-argcomplete dummy prog)"'
|
||||
+ install_cmd = 'eval "$(register-python-argcomplete-{} dummy prog)"'.format(py_ver)
|
||||
|
||||
def setUp(self):
|
||||
sh = self.repl_provider()
|
||||
@@ -1271,7 +1273,7 @@ class TestBashZshBase(TestShellBase):
|
||||
self.assertEqual(output, "")
|
||||
# Register a dummy completion with an external argcomplete script
|
||||
# to ensure this doesn't overwrite our previous registration.
|
||||
- output = sh.run_command('eval "$(register-python-argcomplete dummy --external-argcomplete-script dummy)"')
|
||||
+ output = sh.run_command('eval "$(register-python-argcomplete dummy-{} --external-argcomplete-script dummy)"'.format(py_ver))
|
||||
self.assertEqual(output, "")
|
||||
self.sh = sh
|
||||
|
||||
@@ -1330,7 +1332,7 @@ class TestZsh(TestBashZshBase, unittest.
|
||||
|
||||
|
||||
class TestBashZshGlobalBase(TestBashZshBase):
|
||||
- install_cmd = 'eval "$(activate-global-python-argcomplete --dest=-)"'
|
||||
+ install_cmd = 'eval "$(activate-global-python-argcomplete-{} --dest=-)"'.format(py_ver)
|
||||
|
||||
def test_redirection_completion(self):
|
||||
with TempDir(prefix="test_dir_py", dir="."):
|
||||
@@ -1343,15 +1345,15 @@ class TestBashZshGlobalBase(TestBashZshB
|
||||
|
||||
def test_python_completion(self):
|
||||
self.sh.run_command("cd " + TEST_DIR)
|
||||
- self.assertEqual(self.sh.run_command("python3 ./prog basic f\t"), "foo\r\n")
|
||||
+ self.assertEqual(self.sh.run_command("python{} ./prog basic f\t".format(py_ver)), "foo\r\n")
|
||||
|
||||
def test_python_filename_completion(self):
|
||||
self.sh.run_command("cd " + TEST_DIR)
|
||||
- self.assertEqual(self.sh.run_command("python3 ./pro\tbasic f\t"), "foo\r\n")
|
||||
+ self.assertEqual(self.sh.run_command("python{} ./pro\tbasic f\t".format(py_ver)), "foo\r\n")
|
||||
|
||||
def test_python_stuck(self):
|
||||
self.sh.run_command("cd " + TEST_DIR)
|
||||
- self.sh.run_command("python3 ./stuck no\t-input")
|
||||
+ self.sh.run_command("python{} ./stuck no\t-input".format(py_ver))
|
||||
|
||||
def test_python_not_executable(self):
|
||||
"""Test completing a script that cannot be run directly."""
|
||||
@@ -1363,7 +1365,7 @@ class TestBashZshGlobalBase(TestBashZshB
|
||||
# Ensure prog is no longer able to be run as "./prog".
|
||||
self.assertIn("<<126>>", self.sh.run_command('./prog; echo "<<$?>>"'))
|
||||
# Ensure completion still functions when run via python.
|
||||
- self.assertEqual(self.sh.run_command("python3 ./prog basic f\t"), "foo\r\n")
|
||||
+ self.assertEqual(self.sh.run_command("python{} ./prog basic f\t".format(py_ver)), "foo\r\n")
|
||||
|
||||
def test_python_module(self):
|
||||
"""Test completing a module run with python -m."""
|
||||
@@ -1373,7 +1375,7 @@ class TestBashZshGlobalBase(TestBashZshB
|
||||
open("package/__init__.py", "w").close()
|
||||
shutil.copy(prog, "package/prog.py")
|
||||
self.sh.run_command("cd " + os.getcwd())
|
||||
- self.assertEqual(self.sh.run_command("python3 -m package.prog basic f\t"), "foo\r\n")
|
||||
+ self.assertEqual(self.sh.run_command("python{} -m package.prog basic f\t".format(py_ver)), "foo\r\n")
|
||||
|
||||
def _test_console_script(self, package=False, wheel=False):
|
||||
with TempDir(prefix="test_dir_py", dir="."):
|
||||
--- a/test/test_contrib_shells.py
|
||||
+++ b/test/test_contrib_shells.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3.10
|
||||
import os
|
||||
import os.path
|
||||
import unittest
|
||||
@@ -6,8 +6,7 @@ import unittest
|
||||
import pexpect
|
||||
import pexpect.replwrap
|
||||
|
||||
-from .test import BASE_DIR, TEST_DIR, Shell, TestShellBase
|
||||
-
|
||||
+from .test import BASE_DIR, TEST_DIR, Shell, TestShellBase, py_ver
|
||||
|
||||
@unittest.skip("tcsh is not supported. Enable this test manually if needed.")
|
||||
class TestTcsh(TestShellBase, unittest.TestCase):
|
||||
@@ -28,12 +27,12 @@ class TestTcsh(TestShellBase, unittest.T
|
||||
sh.run_command("setenv PYTHONPATH {0}".format(BASE_DIR))
|
||||
# 'dummy' argument unused; checks multi-command registration works
|
||||
# by passing 'prog' as the second argument.
|
||||
- output = sh.run_command("eval `register-python-argcomplete --shell tcsh dummy prog`")
|
||||
+ output = sh.run_command("eval `register-python-argcomplete-{} --shell tcsh dummy prog`".format(py_ver))
|
||||
self.assertEqual(output, "")
|
||||
# Register a dummy completion with an external argcomplete script
|
||||
# to ensure this doesn't overwrite our previous registration.
|
||||
output = sh.run_command(
|
||||
- "eval `register-python-argcomplete --shell tcsh dummy --external-argcomplete-script dummy`"
|
||||
+ "eval `register-python-argcomplete-{} --shell tcsh dummy --external-argcomplete-script dummy`.format(py_ver)"
|
||||
)
|
||||
self.assertEqual(output, "")
|
||||
self.sh = sh
|
||||
@@ -62,12 +61,12 @@ class TestFish(TestShellBase, unittest.T
|
||||
sh.run_command("set -x PYTHONPATH {0}".format(BASE_DIR))
|
||||
# 'dummy' argument unused; checks multi-command registration works
|
||||
# by passing 'prog' as the second argument.
|
||||
- output = sh.run_command("register-python-argcomplete --shell fish dummy prog | source")
|
||||
+ output = sh.run_command("register-python-argcomplete-{} --shell fish dummy prog | source".format(py_ver))
|
||||
self.assertEqual(output, "")
|
||||
# Register a dummy completion with an external argcomplete script
|
||||
# to ensure this doesn't overwrite our previous registration.
|
||||
output = sh.run_command(
|
||||
- "register-python-argcomplete --shell fish dummy --external-argcomplete-script dummy | source"
|
||||
+ "register-python-argcomplete-{} --shell fish dummy --external-argcomplete-script dummy | source".format(py_ver)
|
||||
)
|
||||
self.assertEqual(output, "")
|
||||
self.sh = sh
|
||||
Reference in New Issue
Block a user