Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-argcomplete for openSUSE:Factory checked in at 2025-07-15 16:42:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-argcomplete (Old) and /work/SRC/openSUSE:Factory/.python-argcomplete.new.7373 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-argcomplete" Tue Jul 15 16:42:57 2025 rev:43 rq:1292430 version:3.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-argcomplete/python-argcomplete.changes 2025-06-18 15:53:57.602773314 +0200 +++ /work/SRC/openSUSE:Factory/.python-argcomplete.new.7373/python-argcomplete.changes 2025-07-15 16:43:33.483206697 +0200 @@ -1,0 +2,250 @@ +Sat Jul 12 17:20:18 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 3.6.2: + * Revert “zsh: skip repeat Python runs in the same completion + run” This reverts a regression introduced in zsh tab + completion configurations utilizing multiple matchers. + * zsh: add global completion system install dir to user fpath + if not present + * Update shell_integration.py to support spaces in script file + path. + * Fix completion when wordbreak is first character + * Support namespace package traversal when completing Python + entry points + * zsh: skip repeat Python runs in the same completion run + * Make _parse_known_args signature more general for future API + changes + * Use interactive shells and bind to make environment variable + name completions work in older Bash versions + * Fix _parse_known_args monkeypatching Note: This fix is + required to restore compatibility with Python 3.12.8 and + 3.13.1. + * Note: This fix is required to restore compatibility with + Python 3.12.8 and 3.13.1. + * CI improvements + * Restore compatibility with argparse in Python 3.12.7+ + * Use project.scripts instead of setuptools scripts + * Test infrastructure improvements + * 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. + * 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+. + * Allow register-python-argcomplete output to be used as lazy- + loaded zsh completion module + * Move debug_stream initialization to helper method to allow fd + 9 behavior to be overridden in subclasses + * Allow explicit zsh global completion activation + * Fix and test global completion in zsh + * Add –yes option to activate-global-python-argcomplete + * Test suite improvements + * Respect user choice in activate-global-python-argcomplete + * Escape colon in zsh completions. Fixes #456 + * Call _default as a fallback in zsh global completion + * Use homebrew prefix by default + * zsh: Allow to use external script + * Add support for Python 3.12 and drop EOL 3.6 and 3.7 + * Use homebrew prefix by default + * zsh: Allow to use external script + * Add support for Python 3.12 and drop EOL 3.6 and 3.7 + * Ensure Python 3.12+ compatibility in check_console_script + * Search through asdf shims + * Use ` as escape character in PowerShell + * setup.py -> pyproject.toml migration start + * Improve user install logic in activate-global-python- + argcomplete + * Ensure Python 3.7 compatibility in check_console_script + * ZSH implementation fixes + * Documentation improvements + * Test suite shell wrapper: Accept OSError on exit + * Test suite: Use general regex to cut zsh reset ANSI sequences + * Allow importlib-metadata 6.x; skip test failures on Python + 3.7 + * Note completers can return iterables of strings, not just + lists + * Documentation and test improvements + * Call _default as fallback in zsh global completion hook + * Begin support for mapping-emitting completers + * 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 + * Re-add split_line to API + * Fix zsh autoload issues + * Fully support zsh. Argcomplete now supports completion + descriptions and global completion in zsh. + * Clean up top level namespace. + * Documentation and test improvements. + * Test infrastructure improvements + * Indicate that there is no support commitment for fish and + tcsh shells + * Documentation and test improvements + * Remove scripts for contrib-supported shells from global + namespace + * setup.py: exclude test.* subpackages from find_packages + * Support PowerShell + * CI updates + * Revert “Support powershell (#392)” + * Fix interrupted release (v2.0.1) + * Fix interrupted release (v2.0.1) + * Fix interrupted release (v2.0.1) + * Support powershell + * Update importlib-metadata dependency to include versions 5.x + * Test and documentation improvements + * Truncate input after cursor. Fixes #351 + * Support of path completion in fish #327 + * Drop support for Python 2.7 and 3.5 + * Add support for Python 3.10 + * Test, documentation, and release infrastructure improvements + * Update importlib-metadata version pin + * Display script debug output in tcsh + * Fish support improvements + * Print warn() message from beginning of line + * Test infrastructure improvements + * Update importlib-metadata dependency pin + * Add change log project URL + * Replace Travis CI with GitHub Actions + * Update importlib-metadata dependency version range + * Bash nounset mode fixes + * 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 + * Catch exceptions in _check_module + * Documentation and test improvements + * Do not suggest options after – (end-of-options delimiter) + * Include all test directory contents in source distribution + * Trigger completers on –optional=PARTIAL_VALUE + * Complete console scripts installed from wheels + * Fish support #68 (#260), thanks to @volkov + * check_module: Don’t crash, exit with error instead + * Register completion for multiple commands + * Use the correct interpreter when checking wrappers + * Provide shellcode as a module function + * Fix handling of COMP_POINT + * Fix crash when writing unicode to debug_stream in Python 2 + * Fix release + * Fix release + * Add SuppressCompleter to skip completion for specific + arguments while allowing help text + * Redirect all output to debug stream in debug mode + * Complete python -m module + * Fix bug introduced in v0.7.1 where completers would not + receive the parser keyword argument. + * Documentation improvements. + * Fix completion after tokens with wordbreak chars + * Simplify nospace handling in global completion + * Specially handle all characters in COMP_WORDBREAKS + * Use setuptools tests-require directive, fixes #186 + * Complete files using the specified interpreter + * Fix completion for scripts run via python + * Clarify argument to register-python-argcomplete + * Fix handling of commas and other special chars (#172); handle + more special characters + * Fix handling of special characters in tcsh + * Update my_shlex to Python 3.6 version + * Fix additional trailing space in exact matches + * Adjust tests to handle development environments + * Fix tcsh tests on OSX (#177); Update bash on OSX (#176); + Check output of test setup command + * Optionally disable duplicated flags + * Add default_completer option to CompletionFinder.call + * Let bash add or suppress trailing space + * Restore parser to its original state to allow reuse after + completion (#150). + * Expose COMP_TYPE environment variable (#157). Thanks to Matt + Clay (@mattclay). + * Test infrastructure and documentation improvements. + * Add support for tcsh + * Fix handling of unquoted completions containing $ + * Don't insert unnecessary leading quote char in completions + * Fix parser reuse with positional arguments + * Tests: Add simple pexpect tests for bash (#153); Add test + case to verify #20 is fixed + * Thanks to @davvid and @evanunderscore for their work on this + release. + * Packaging fix + * Do not suggest options from mutually exclusive groups (#145). + * activate-global-python-argcomplete runs on Homebrew out of + the box + * Correctly handle suggestions for positionals with variable- + length nargs. Thanks to @evanunderscore (#132, #133). + * Correctly handle suggestions with custom nargs for optionals. + Thanks to @evanunderscore (#131). + * Fix propagation of partially parsed subparser namespace into + parent parser namespace upon subparser failure due to partial + args. This allows completers to access partial parse results + for subparser optionals in parsed_args (#114). + * The default completer can now be specified when manually + instantiating CompletionFinder. Thanks to @avylove (#130). + * Use FilesCompleter as default completer fallback (#120). + * Recognize subclasses of argparse._SubParsersAction. Thanks to + Stephen Koo (#118). + * Support parsed_args in custom completers with missing args. + Thanks to Dan Kilman (#124). + * Non-ASCII support in FilesCompleter. + * Automatically enable FilesCompleter for argparse.FileType + arguments. + * Don't print args with suppressed help by default; add + argcomplete.autocomplete(print_suppressed=True) to control + this behavior (#113). + * Fix always_complete_options=False support (#115). + * Correct doc filename in setup.cfg (fixes bdist_rpm failure, + Issue 111). + * Make context managers exception-safe. Thanks to Mikołaj + Siedlarek (pull request #110). + * Build and upload universal wheel packages in release. + * Fix issue with non-string choices for arguments. Thanks to + @neizod (pull request #107). + * Improve non-ascii argparse argument support on Python 2.7. + * register-python-argcomplete: add option to avoid default + readline completion. Thanks to @drmalex07 (pull request #99). + * Expand tilde in script name, allowing argcomplete to work + when invoking scripts from one's home directory. Thanks to + @VorpalBlade (Issue 104). + * Fix issues related to using argcomplete in a REPL + environment. + * New helper method for custom completion display. + * Expand test suite; formatting cleanup. + * Fix issue related to using argcomplete in a REPL environment. + Thanks to @wapiflapi (pull request #91). + * Fix multiple issues related to using argcomplete in a REPL + environment. Thanks to @wapiflapi (pull request #90). + * Don't strip colon prefix in completion results if + COMP_WORDBREAKS does not contain a colon. Thanks to @berezv + (pull request #88). + * Use complete --nospace to avoid issues with directory + completion. + * Refactor main body of code into a class to enable subclassing + and overriding of functionality (Issue #78). + * New keyword option "argcomplete.autocomplete(validator=...)" + to supply a custom validator or bypass default validation. + Thanks to @thijsdezoete (Issue #77). + * Document debug options. + * New keyword option "argcomplete.autocomplete(exclude=[...])" + to suppress options (Issue #74). + * More speedups to code path for global completion hook + negative result. + * 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. + * 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). + +------------------------------------------------------------------- Old: ---- argcomplete-3.5.3.tar.gz New: ---- argcomplete-3.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-argcomplete.spec ++++++ --- /var/tmp/diff_new_pack.c7s7sy/_old 2025-07-15 16:43:34.011226334 +0200 +++ /var/tmp/diff_new_pack.c7s7sy/_new 2025-07-15 16:43:34.015226482 +0200 @@ -28,7 +28,7 @@ %bcond_without libalternatives %{?sle15_python_module_pythons} Name: python-argcomplete%{psuffix} -Version: 3.5.3 +Version: 3.6.2 Release: 0 Summary: Bash tab completion for argparse License: Apache-2.0 ++++++ argcomplete-3.5.3.tar.gz -> argcomplete-3.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/.github/workflows/release.yml new/argcomplete-3.6.2/.github/workflows/release.yml --- old/argcomplete-3.5.3/.github/workflows/release.yml 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/.github/workflows/release.yml 2020-02-02 01:00:00.000000000 +0100 @@ -14,7 +14,7 @@ id-token: write steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 - run: pip install build - run: python -m build - name: Publish package distributions to PyPI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/Changes.rst new/argcomplete-3.6.2/Changes.rst --- old/argcomplete-3.5.3/Changes.rst 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/Changes.rst 2020-02-02 01:00:00.000000000 +0100 @@ -1,3 +1,31 @@ +Changes for v3.6.2 (2025-04-02) +=============================== + +- Revert “zsh: skip repeat Python runs in the same completion run” This + reverts a regression introduced in zsh tab completion configurations + utilizing multiple matchers. + +Changes for v3.6.1 (2025-03-22) +=============================== + +- zsh: add global completion system install dir to user fpath if not + present + +- Update shell_integration.py to support spaces in script file path. + (#525) + +- Fix completion when wordbreak is first character (#526) + +Changes for v3.6.0 (2025-03-05) +=============================== + +- Support namespace package traversal when completing Python entry + points + +- zsh: skip repeat Python runs in the same completion run + +- Make \_parse_known_args signature more general for future API changes + Changes for v3.5.3 (2024-12-31) =============================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/PKG-INFO new/argcomplete-3.6.2/PKG-INFO --- old/argcomplete-3.5.3/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: argcomplete -Version: 3.5.3 +Version: 3.6.2 Summary: Bash tab completion for argparse Project-URL: Homepage, https://github.com/kislyuk/argcomplete Project-URL: Documentation, https://kislyuk.github.io/argcomplete @@ -9,6 +9,8 @@ Project-URL: Change Log, https://github.com/kislyuk/argcomplete/blob/develop/Changes.rst Author: Andrey Kislyuk Author-email: kisl...@gmail.com +Maintainer: Andrey Kislyuk +Maintainer-email: kisl...@gmail.com License: Apache Software License License-File: LICENSE.rst License-File: NOTICE @@ -20,12 +22,12 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development @@ -296,7 +298,7 @@ Python Support -------------- -Argcomplete requires Python 3.7+. +Argcomplete requires Python 3.9+. Support for other shells ------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/README.rst new/argcomplete-3.6.2/README.rst --- old/argcomplete-3.5.3/README.rst 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/README.rst 2020-02-02 01:00:00.000000000 +0100 @@ -253,7 +253,7 @@ Python Support -------------- -Argcomplete requires Python 3.7+. +Argcomplete requires Python 3.9+. Support for other shells ------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/_check_module.py new/argcomplete-3.6.2/argcomplete/_check_module.py --- old/argcomplete-3.5.3/argcomplete/_check_module.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/_check_module.py 2020-02-02 01:00:00.000000000 +0100 @@ -10,30 +10,7 @@ import os import sys import tokenize - -try: - from importlib.util import find_spec # type:ignore -except ImportError: - import typing as t - from collections import namedtuple - from imp import find_module # type:ignore - - ModuleSpec = namedtuple("ModuleSpec", ["origin", "has_location", "submodule_search_locations"]) - - def find_spec( # type:ignore - name: str, - package: t.Optional[str] = None, - ) -> t.Optional[ModuleSpec]: - """Minimal implementation as required by `find`.""" - try: - f, path, _ = find_module(name) - except ImportError: - return None - has_location = path is not None - if f is None: - return ModuleSpec(None, has_location, [path]) - f.close() - return ModuleSpec(path, has_location, None) +from importlib.util import find_spec class ArgcompleteMarkerNotFound(RuntimeError): @@ -42,7 +19,12 @@ def find(name, return_package=False): names = name.split(".") - spec = find_spec(names[0]) + # Look for the first importlib ModuleSpec that has `origin` set, indicating it's not a namespace package. + for package_name_boundary in range(len(names)): + spec = find_spec(".".join(names[: package_name_boundary + 1])) + if spec is not None and spec.origin is not None: + break + if spec is None: raise ArgcompleteMarkerNotFound('no module named "{}"'.format(names[0])) if not spec.has_location: @@ -53,7 +35,7 @@ return spec.origin if len(spec.submodule_search_locations) != 1: raise ArgcompleteMarkerNotFound("expecting one search location") - path = os.path.join(spec.submodule_search_locations[0], *names[1:]) + path = os.path.join(spec.submodule_search_locations[0], *names[package_name_boundary + 1 :]) if os.path.isdir(path): filename = "__main__.py" if return_package: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/completers.py new/argcomplete-3.6.2/argcomplete/completers.py --- old/argcomplete-3.5.3/argcomplete/completers.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/completers.py 2020-02-02 01:00:00.000000000 +0100 @@ -63,13 +63,22 @@ # that was fixed in bash 5.3 but affects older versions. Environment variables are not treated # correctly in older versions and calling bind makes them available. For details, see # https://savannah.gnu.org/support/index.php?111125 - files = _call(["bash", "-c", "bind; compgen -A directory -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL) + files = _call( + ["bash", "-c", "bind; compgen -A directory -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL + ) completion += [f + "/" for f in files] for x in self.allowednames: - completion += _call(["bash", "-c", "bind; compgen -A file -X '!*.{0}' -- '{p}'".format(x, p=prefix)], stderr=subprocess.DEVNULL) + completion += _call( + ["bash", "-c", "bind; compgen -A file -X '!*.{0}' -- '{p}'".format(x, p=prefix)], + stderr=subprocess.DEVNULL, + ) else: - completion += _call(["bash", "-c", "bind; compgen -A file -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL) - anticomp = _call(["bash", "-c", "bind; compgen -A directory -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL) + completion += _call( + ["bash", "-c", "bind; compgen -A file -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL + ) + anticomp = _call( + ["bash", "-c", "bind; compgen -A directory -- '{p}'".format(p=prefix)], stderr=subprocess.DEVNULL + ) completion = list(set(completion) - set(anticomp)) if self.directories: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/finders.py new/argcomplete-3.6.2/argcomplete/finders.py --- old/argcomplete-3.5.3/argcomplete/finders.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/finders.py 2020-02-02 01:00:00.000000000 +0100 @@ -515,7 +515,7 @@ # Bash mangles completions which contain characters in COMP_WORDBREAKS. # This workaround has the same effect as __ltrim_colon_completions in bash_completion # (extended to characters other than the colon). - if last_wordbreak_pos: + if last_wordbreak_pos is not None: completions = [c[last_wordbreak_pos + 1 :] for c in completions] special_chars += "();<>|&!`$* \t\n\"'" elif cword_prequote == '"': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/packages/_argparse.py new/argcomplete-3.6.2/argcomplete/packages/_argparse.py --- old/argcomplete-3.5.3/argcomplete/packages/_argparse.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/packages/_argparse.py 2020-02-02 01:00:00.000000000 +0100 @@ -75,7 +75,7 @@ except for the lines that contain the string "Added by argcomplete". ''' - def _parse_known_args(self, arg_strings, namespace, intermixed=False): + def _parse_known_args(self, arg_strings, namespace, intermixed=False, **kwargs): _num_consumed_args.clear() # Added by argcomplete self._argcomplete_namespace = namespace self.active_actions: List[Action] = [] # Added by argcomplete diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/packages/_shlex.py new/argcomplete-3.6.2/argcomplete/packages/_shlex.py --- old/argcomplete-3.5.3/argcomplete/packages/_shlex.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/packages/_shlex.py 2020-02-02 01:00:00.000000000 +0100 @@ -36,7 +36,7 @@ else: self.eof = '' self.commenters = '#' - self.wordchars = 'abcdfeghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_' + self.wordchars = 'abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_' # Modified by argcomplete: 2/3 compatibility # if self.posix: # self.wordchars += ('ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' @@ -177,6 +177,9 @@ elif self.whitespace_split: self.token = nextchar self.state = 'a' + # Modified by argcomplete: Record last wordbreak position + if nextchar in self.wordbreaks: + self.last_wordbreak_pos = len(self.token) - 1 else: self.token = nextchar if self.token or (self.posix and quoted): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/scripts/activate_global_python_argcomplete.py new/argcomplete-3.6.2/argcomplete/scripts/activate_global_python_argcomplete.py --- old/argcomplete-3.5.3/argcomplete/scripts/activate_global_python_argcomplete.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/scripts/activate_global_python_argcomplete.py 2020-02-02 01:00:00.000000000 +0100 @@ -122,15 +122,36 @@ print("Added.", file=sys.stderr) -def link_user_rcfiles(): - # TODO: warn if running as superuser +def link_zsh_user_rcfile(zsh_fpath=None): zsh_rcfile = os.path.join(os.path.expanduser(os.environ.get("ZDOTDIR", "~")), ".zshenv") - append_to_config_file(zsh_rcfile, zsh_shellcode.format(zsh_fpath=get_activator_dir())) + append_to_config_file(zsh_rcfile, zsh_shellcode.format(zsh_fpath=zsh_fpath or get_activator_dir())) + +def link_bash_user_rcfile(): bash_completion_user_file = os.path.expanduser("~/.bash_completion") append_to_config_file(bash_completion_user_file, bash_shellcode.format(activator=get_activator_path())) +def link_user_rcfiles(): + # TODO: warn if running as superuser + link_zsh_user_rcfile() + link_bash_user_rcfile() + + +def add_zsh_system_dir_to_fpath_for_user(): + if "zsh" not in os.environ.get("SHELL", ""): + return + try: + zsh_system_dir = get_zsh_system_dir() + fpath_output = subprocess.check_output([os.environ["SHELL"], "-c", 'printf "%s\n" "${fpath[@]}"']) + for fpath in fpath_output.decode().splitlines(): + if fpath == zsh_system_dir: + return + link_zsh_user_rcfile(zsh_fpath=zsh_system_dir) + except (FileNotFoundError, subprocess.CalledProcessError): + pass + + def main(): global args args = parser.parse_args() @@ -160,6 +181,8 @@ for destination in destinations: install_to_destination(destination) + add_zsh_system_dir_to_fpath_for_user() + if args.dest is None: print("Please restart your shell or source the installed file to activate it.", file=sys.stderr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/scripts/python_argcomplete_check_easy_install_script.py new/argcomplete-3.6.2/argcomplete/scripts/python_argcomplete_check_easy_install_script.py --- old/argcomplete-3.5.3/argcomplete/scripts/python_argcomplete_check_easy_install_script.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/scripts/python_argcomplete_check_easy_install_script.py 2020-02-02 01:00:00.000000000 +0100 @@ -33,7 +33,7 @@ lines = head.split("\n", 12) for line in lines: if line.startswith("# EASY-INSTALL-SCRIPT"): - import pkg_resources + import pkg_resources # type: ignore re_match = re.match("# EASY-INSTALL-SCRIPT: '(.+)','(.+)'", line) assert re_match is not None @@ -48,7 +48,7 @@ dist, group, name = re_match.groups() import pkgutil - import pkg_resources + import pkg_resources # type: ignore entry_point_info = pkg_resources.get_distribution(dist).get_entry_info(group, name) assert entry_point_info is not None @@ -71,7 +71,7 @@ module = re_match.groups()[0] import pkgutil - import pkg_resources + import pkg_resources # type: ignore with open(pkgutil.get_loader(module).get_filename()) as mod_fh: # type: ignore if "PYTHON_ARGCOMPLETE_OK" in mod_fh.read(1024): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/argcomplete/shell_integration.py new/argcomplete-3.6.2/argcomplete/shell_integration.py --- old/argcomplete-3.5.3/argcomplete/shell_integration.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/argcomplete/shell_integration.py 2020-02-02 01:00:00.000000000 +0100 @@ -160,7 +160,8 @@ executables_list = " ".join(quoted_executables) script = argcomplete_script if script: - function_suffix = "_" + script + # If the script path contain a space, this would generate an invalid function name. + function_suffix = "_" + script.replace(" ", "_SPACE_") else: script = "" function_suffix = "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/common.mk new/argcomplete-3.6.2/common.mk --- old/argcomplete-3.5.3/common.mk 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/common.mk 2020-02-02 01:00:00.000000000 +0100 @@ -18,7 +18,6 @@ @if ! type -P pandoc; then echo "Please install pandoc"; exit 1; fi @if ! type -P sponge; then echo "Please install moreutils"; exit 1; fi @if ! type -P gh; then echo "Please install gh"; exit 1; fi - @if ! type -P twine; then echo "Please install twine"; exit 1; fi git pull git clean -x --force argcomplete TAG_MSG=$$(mktemp); \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/docs/conf.py new/argcomplete-3.6.2/docs/conf.py --- old/argcomplete-3.5.3/docs/conf.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/docs/conf.py 2020-02-02 01:00:00.000000000 +0100 @@ -21,7 +21,7 @@ autodoc_typehints = "description" autodoc_typehints_description_target = "documented_params" intersphinx_mapping = { - "https://docs.python.org/3": None, + "python": ("https://docs.python.org/3", None), } templates_path = [""] ogp_site_url = "https://kislyuk.github.io/" + project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/pyproject.toml new/argcomplete-3.6.2/pyproject.toml --- old/argcomplete-3.5.3/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 @@ -5,7 +5,7 @@ requires-python = ">=3.8" license = { text = "Apache Software License" } authors = [{ name = "Andrey Kislyuk"}, {email = "kisl...@gmail.com" }] -maintainers = [] +maintainers = [{ name = "Andrey Kislyuk"}, {email = "kisl...@gmail.com" }] dynamic = ["version"] classifiers = [ "Environment :: Console", @@ -15,12 +15,12 @@ "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Development Status :: 5 - Production/Stable", @@ -64,6 +64,8 @@ [tool.ruff] line-length = 120 + +[tool.ruff.lint] per-file-ignores = {"argcomplete/__init__.py" = ["F401"]} [tool.ruff.format] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/argcomplete-3.5.3/test/test.py new/argcomplete-3.6.2/test/test.py --- old/argcomplete-3.5.3/test/test.py 2020-02-02 01:00:00.000000000 +0100 +++ new/argcomplete-3.6.2/test/test.py 2020-02-02 01:00:00.000000000 +0100 @@ -1041,10 +1041,12 @@ def test_last_wordbreak_pos(self): self.assertEqual(self.wordbreak("a"), None) + self.assertEqual(self.wordbreak("a :b"), 0) self.assertEqual(self.wordbreak("a b:c"), 1) self.assertEqual(self.wordbreak("a b:c=d"), 3) self.assertEqual(self.wordbreak("a b:c=d "), None) self.assertEqual(self.wordbreak("a b:c=d e"), None) + self.assertEqual(self.wordbreak('":b'), None) self.assertEqual(self.wordbreak('"b:c'), None) self.assertEqual(self.wordbreak('"b:c=d'), None) self.assertEqual(self.wordbreak('"b:c=d"'), None)