15
0
Files
python-argcomplete/python-argcomplete.spec
Dirk Mueller cfbc2acb0d - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argcomplete?expand=0&rev=94
2025-07-12 17:20:29 +00:00

119 lines
3.8 KiB
RPMSpec

#
# spec file for package python-argcomplete
#
# Copyright (c) 2025 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/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%bcond_without libalternatives
%{?sle15_python_module_pythons}
Name: python-argcomplete%{psuffix}
Version: 3.6.2
Release: 0
Summary: Bash tab completion for argparse
License: Apache-2.0
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 hatchling}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 67.2}
BuildRequires: %{python_module setuptools_scm >= 6.2}
BuildRequires: %{python_module wheel}
BuildRequires: alts
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: alts
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module argcomplete == %{version}}
BuildRequires: %{python_module pexpect}
BuildRequires: ca-certificates-mozilla
BuildRequires: fish
BuildRequires: zsh
%endif
%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}
%python_expand chmod -x %{buildroot}%{$python_sitelib}/argcomplete/scripts/*.py
%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
$python ./test/test.py -v
}
%endif
%if %{without test}
%pre
%python_libalternatives_reset_alternative activate-global-python-argcomplete
%python_libalternatives_reset_alternative register-python-argcomplete
%python_libalternatives_reset_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