forked from pool/python-argcomplete
* 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 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argcomplete?expand=0&rev=72
99 lines
3.4 KiB
RPMSpec
99 lines
3.4 KiB
RPMSpec
#
|
|
# 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}
|
|
Name: python-argcomplete
|
|
Version: 3.4.0
|
|
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 pexpect}
|
|
BuildRequires: %{python_module pip}
|
|
BuildRequires: %{python_module setuptools >= 67.2}
|
|
BuildRequires: %{python_module setuptools_scm >= 6.2}
|
|
BuildRequires: %{python_module wheel}
|
|
BuildRequires: ca-certificates
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
BuildRequires: zsh
|
|
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
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
%pyproject_install
|
|
%python_clone -a %{buildroot}%{_bindir}/register-python-argcomplete
|
|
%python_clone -a %{buildroot}%{_bindir}/python-argcomplete-check-easy-install-script
|
|
rm %{buildroot}%{_bindir}/activate-global-python-argcomplete
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%check
|
|
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 scripts/*
|
|
sed -i -e "s|python3 |$python |g" test/test.py
|
|
PYTHONPATH=%{buildroot}%{$python_sitelib} $python ./test/test.py -v
|
|
}
|
|
|
|
%post
|
|
%python_install_alternative register-python-argcomplete
|
|
%python_install_alternative python-argcomplete-check-easy-install-script
|
|
|
|
%postun
|
|
%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}/python-argcomplete-check-easy-install-script
|
|
%python_alternative %{_bindir}/register-python-argcomplete
|
|
|
|
%changelog
|