From 9c0809271b5b69e1613c088cc3809cb8911965850f6950090fba7b4267826274 Mon Sep 17 00:00:00 2001 From: Daniel Garcia Moreno Date: Wed, 18 Feb 2026 12:16:09 +0100 Subject: [PATCH] Sync with factory --- .gitattributes | 3 +- .gitignore | 5 +- _multibuild | 3 + click-8.2.1-clirunner.patch | 106 ------------------------------------ click-8.2.1.tar.gz | 3 - click-8.3.1.tar.gz | 3 + python-click.changes | 48 ++++++++++++++++ python-click.spec | 30 ++++++++-- 8 files changed, 84 insertions(+), 117 deletions(-) create mode 100644 _multibuild delete mode 100644 click-8.2.1-clirunner.patch delete mode 100644 click-8.2.1.tar.gz create mode 100644 click-8.3.1.tar.gz diff --git a/.gitattributes b/.gitattributes index 9b03811..37a8eaa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,4 @@ -## Default LFS +*.changes merge=merge-changes *.7z filter=lfs diff=lfs merge=lfs -text *.bsp filter=lfs diff=lfs merge=lfs -text *.bz2 filter=lfs diff=lfs merge=lfs -text @@ -12,6 +12,7 @@ *.pdf filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text *.rpm filter=lfs diff=lfs merge=lfs -text +*.tar 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 diff --git a/.gitignore b/.gitignore index 57affb6..8b731c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -.osc +*.obscpio +*.osc +_build.* +.pbuild diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/click-8.2.1-clirunner.patch b/click-8.2.1-clirunner.patch deleted file mode 100644 index 3663ded..0000000 --- a/click-8.2.1-clirunner.patch +++ /dev/null @@ -1,106 +0,0 @@ - -github.com/pallets/click/issues/2939 -github.com/pallets/click/pull/2940 - - -From 93c6966eb3a575c2b600434d1cc9f4b3aee505ac Mon Sep 17 00:00:00 2001 -From: Antoine Lambert -Date: Thu, 22 May 2025 22:14:23 +0200 -Subject: [PATCH] testing/CliRunner: Fix regression related to EOF introduced - in 262bdf0 - -Commit 262bdf0 ensured to raise an EOFError exception on end of input -to simulate tty behavior and avoid blocking prompt during tests when -no more input is available. - -However the introduced implementation has a side effect when testing a -click command having a File type option or argument and when it is set -to stdin: the command ends up with error due to the Abort exception -being raised when the stdin EOFError exception is caught. - -To prevent this undesirable side effect, prefer to raise the EOFError -exceptions directly from the prompts functions inside the CliRunner -class instead of doing it in the method overriding the iterator protcol -for the _NamedTextIOWrapper class. - -Restore previous implementation of a test broken by changes of 262bdf0. - -Fixes #2939. ---- - CHANGES.rst | 5 +++++ - src/click/testing.py | 17 ++++++++--------- - tests/test_chain.py | 4 ++-- - 3 files changed, 15 insertions(+), 11 deletions(-) - -diff --git a/CHANGES.rst b/CHANGES.rst -index 1b8af9a5f..decdc2d91 100644 ---- a/CHANGES.rst -+++ b/CHANGES.rst -@@ -1,5 +1,10 @@ - .. currentmodule:: click - -+Version 8.2.2 -+------------- -+ -+- Fix regression related to EOF handling in CliRunner. :issue:`2939` -+ - Version 8.2.1 - ------------- - -diff --git a/src/click/testing.py b/src/click/testing.py -index 7c0e8741e..e57eacc5d 100644 ---- a/src/click/testing.py -+++ b/src/click/testing.py -@@ -116,13 +116,6 @@ def name(self) -> str: - def mode(self) -> str: - return self._mode - -- def __next__(self) -> str: # type: ignore -- try: -- line = super().__next__() -- except StopIteration as e: -- raise EOFError() from e -- return line -- - - def make_input_stream( - input: str | bytes | t.IO[t.Any] | None, charset: str -@@ -348,7 +341,10 @@ def isolation( - @_pause_echo(echo_input) # type: ignore - def visible_input(prompt: str | None = None) -> str: - sys.stdout.write(prompt or "") -- val = next(text_input).rstrip("\r\n") -+ try: -+ val = next(text_input).rstrip("\r\n") -+ except StopIteration as e: -+ raise EOFError() from e - sys.stdout.write(f"{val}\n") - sys.stdout.flush() - return val -@@ -357,7 +353,10 @@ def visible_input(prompt: str | None = None) -> str: - def hidden_input(prompt: str | None = None) -> str: - sys.stdout.write(f"{prompt or ''}\n") - sys.stdout.flush() -- return next(text_input).rstrip("\r\n") -+ try: -+ return next(text_input).rstrip("\r\n") -+ except StopIteration as e: -+ raise EOFError() from e - - @_pause_echo(echo_input) # type: ignore - def _getchar(echo: bool) -> str: -diff --git a/tests/test_chain.py b/tests/test_chain.py -index ba11b7e2a..702eaaa3e 100644 ---- a/tests/test_chain.py -+++ b/tests/test_chain.py -@@ -163,8 +163,8 @@ def processor(iterator): - return processor - - result = runner.invoke(cli, args, input=input) -- # last two lines are '' and 'Aborted!' -- assert result.output.splitlines()[:-2] == expect -+ assert not result.exception -+ assert result.output.splitlines() == expect - - - def test_args_and_chain(runner): diff --git a/click-8.2.1.tar.gz b/click-8.2.1.tar.gz deleted file mode 100644 index e5429d5..0000000 --- a/click-8.2.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202 -size 286342 diff --git a/click-8.3.1.tar.gz b/click-8.3.1.tar.gz new file mode 100644 index 0000000..1d6cd31 --- /dev/null +++ b/click-8.3.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a +size 295065 diff --git a/python-click.changes b/python-click.changes index de41918..ce438d6 100644 --- a/python-click.changes +++ b/python-click.changes @@ -1,3 +1,51 @@ +------------------------------------------------------------------- +Wed Feb 4 10:40:58 UTC 2026 - Daniel Garcia + +- Add pythons_for_pypi macro + +------------------------------------------------------------------- +Thu Jan 29 09:04:24 UTC 2026 - Daniel Garcia + +- Run tests in a subpackage, this allows to exclude build in different + distributions + +------------------------------------------------------------------- +Mon Nov 17 08:34:57 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 8.3.1 + * Don’t discard pager arguments by correctly using subprocess.Popen. + * Replace Sentinel.UNSET default values by None as they’re passed + through the Context.invoke() method. + * Fix conversion of Sentinel.UNSET happening too early, which caused + incorrect behavior for multiple parameters using the same name. + * Hide Sentinel.UNSET values as None when looking up for other + parameters through the context inside parameter callbacks. + * Fix rendering when prompt and confirm parameter prompt_suffix is empty. + * When Sentinel.UNSET is found during parsing, it will skip calls to + type_cast_value. + +------------------------------------------------------------------- +Fri Sep 26 04:26:21 UTC 2025 - Steve Kowalik + +- Update to 8.3.0: + * Improved flag option handling: Reworked the relationship between + flag_value and default parameters for better consistency. + * Show correct auto complete value for nargs option in combination with + flag option. + * Fix handling of quoted and escaped parameters in Fish autocompletion. + * Properly forward exception information to resources registered with + click.core.Context.with_resource(). + * Fix regression related to EOF handling in CliRunner. +- Drop patch click-8.2.1-clirunner.patch, included upstream. + +------------------------------------------------------------------- +Sat Aug 9 07:09:03 UTC 2025 - Matej Cepl + +Revert to 8.2.1, version 8.2.2 was yanked because Unintended change in +behavior of boolean options and None +https://pypi.org/project/click/8.2.2/ +(and if I read `osc log` I would know dgarcia did this already) + ------------------------------------------------------------------- Tue Jun 8 15:09:58 UTC 2025 - Friedrich Haubensak diff --git a/python-click.spec b/python-click.spec index 0dfb2df..eb3e5cf 100644 --- a/python-click.spec +++ b/python-click.spec @@ -1,7 +1,7 @@ # # spec file for package python-click # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,22 +16,32 @@ # +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?pythons_for_pypi} %{?sle15_python_module_pythons} -Name: python-click -Version: 8.2.1 +Name: python-click%{psuffix} +Version: 8.3.1 Release: 0 Summary: A wrapper around optparse for command line utilities License: BSD-3-Clause URL: https://github.com/pallets/click Source: https://files.pythonhosted.org/packages/source/c/click/click-%{version}.tar.gz -## see github.com/pallets/click/issues/2939, github.com/pallets/click/pull/2940 -Patch0: click-8.2.1-clirunner.patch BuildRequires: %{python_module base >= 3.10} BuildRequires: %{python_module flit-core} BuildRequires: %{python_module pip} -BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} +%if %{with test} +BuildRequires: %{python_module click == %{version}} +BuildRequires: %{python_module pytest} +%endif BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch @@ -47,20 +57,28 @@ defaults out of the box. %autosetup -p1 -n click-%{version} %build +%if %{without test} %pyproject_wheel +%endif %install +%if %{without test} %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif %check +%if %{with test} export LANG=en_US.UTF-8 %pytest -rs --tb=short +%endif +%if %{without test} %files %{python_files} %license LICENSE.txt %doc CHANGES.rst README.md %{python_sitelib}/click %{python_sitelib}/click-%{version}.dist-info +%endif %changelog