12 Commits

Author SHA256 Message Date
a9aedef41a 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)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=64
2025-08-09 07:10:28 +00:00
cf928ff2b3 Accepting request 1298502 from devel:languages:python
revert

OBS-URL: https://build.opensuse.org/request/show/1298502
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=63
2025-08-09 07:08:18 +00:00
2e57123d7f - Update to 8.2.2:
- Fix reconciliation of default, flag_value and type parameters
    for flag options, as well as parsing and normalization of
    environment variables. #2952 #2956
  - Fix typing issue in BadParameter and MissingParameter
    exceptions for the parameter param_hint that did not allow
    for a sequence of string where the underlying functino
    _join_param_hints allows for it. #2777 #2990
  - Use the value of Enum choices to render their default value
    in help screen. #2911 #3004
  - Fix completion for the Z shell (zsh) for completion items
    containing colons. #2703 #2846
  - Don't include envvar in error hint when not configured. #2971
    #2972
  - Fix a rare race in click.testing.StreamMixer's finalization
    that manifested as a ValueError on close in a multi-threaded
    test session. #2993 #2991

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=62
2025-08-08 19:05:29 +00:00
6a97cf7226 Accepting request 1298127 from devel:languages:python
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/

OBS-URL: https://build.opensuse.org/request/show/1298127
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=61
2025-08-07 11:42:35 +00:00
14cdb619da Accepting request 1297475 from home:nkrapp:branches:devel:languages:python
- Update to 8.2.2
  * Fix reconciliation of default, flag_value and type parameters for
    flag options, as well as parsing and normalization of environment variables.
    #2952 #2956
  * Fix typing issue in BadParameter and MissingParameter exceptions for the
    parameter param_hint that did not allow for a sequence of string where the
    underlying functino _join_param_hints allows for it. #2777 #2990
  * Use the value of Enum choices to render their default value in help
    screen. #2911 #3004
  * Fix completion for the Z shell (zsh) for completion items containing
    colons. #2703 #2846
  * Don't include envvar in error hint when not configured. #2971 #2972
  * Fix a rare race in click.testing.StreamMixer's finalization that manifested
    as a ValueError on close in a multi-threaded test session.
    #2993 #2991
- drop upstream changelog entry from patch

OBS-URL: https://build.opensuse.org/request/show/1297475
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=60
2025-08-05 18:43:12 +00:00
b5d80ba23f Accepting request 1291320 from home:hsk17:branches:devel:languages:python
add click-8.2.1-clirunner.patch to fix clirunner breaking other modules' tests, cf. github.com/pallets/click/issues/2939.  e.g. python-mercantile fails tests since click-8.2.1.

OBS-URL: https://build.opensuse.org/request/show/1291320
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=58
2025-07-09 08:31:43 +00:00
b91e29f19d - Update to 8.2.1:
* Fix flag value handling for flag options with a provided type.
    #2894 #2897
  * Fix shell completion for nested groups. #2906
  * Flush sys.stderr at the end of CliRunner.invoke. #2682
  * Fix EOF handling for stdin input in CliRunner. #2787
- Update URL.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=56
2025-05-21 07:16:56 +00:00
2167b5b588 Accepting request 1276957 from home:sebix:branches:devel:languages:python
re-format changelog as requested in request#1276563

OBS-URL: https://build.opensuse.org/request/show/1276957
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=55
2025-05-13 06:23:34 +00:00
a6ffe2387a Accepting request 1276563 from home:sebix:branches:devel:languages:python
- Update to version 8.2.0:
 -   Drop support for Python 3.7, 3.8, and 3.9. :pr:`2588` :pr:`2893`
 -   Use modern packaging metadata with ``pyproject.toml`` instead of ``setup.cfg``.
     :pr:`2438`
 -   Use ``flit_core`` instead of ``setuptools`` as build backend. :pr:`2543`
 -   Deprecate the ``__version__`` attribute. Use feature detection, or
     ``importlib.metadata.version("click")``, instead. :issue:`2598`
 -   ``BaseCommand`` is deprecated. ``Command`` is the base class for all
     commands. :issue:`2589`
 -   ``MultiCommand`` is deprecated. ``Group`` is the base class for all group
     commands. :issue:`2590`
 -   The current parser and related classes and methods, are deprecated.
     :issue:`2205`
     -   ``OptionParser`` and the ``parser`` module, which is a modified copy of
         ``optparse`` in the standard library.
     -   ``Context.protected_args`` is unneeded. ``Context.args`` contains any
         remaining arguments while parsing.
     -   ``Parameter.add_to_parser`` (on both ``Argument`` and ``Option``) is
         unneeded. Parsing works directly without building a separate parser.
     -   ``split_arg_string`` is moved from ``parser`` to ``shell_completion``.
 -   Enable deferred evaluation of annotations with
     ``from __future__ import annotations``. :pr:`2270`
 -   When generating a command's name from a decorated function's name, the
     suffixes ``_command``, ``_cmd``, ``_group``, and ``_grp`` are removed.
     :issue:`2322`
 -   Show the ``types.ParamType.name`` for ``types.Choice`` options within
     ``--help`` message if ``show_choices=False`` is specified.
     :issue:`2356`
 -   Do not display default values in prompts when ``Option.show_default`` is
     ``False``. :pr:`2509`

OBS-URL: https://build.opensuse.org/request/show/1276563
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=54
2025-05-12 06:35:29 +00:00
d42c5a370f Accepting request 1244737 from devel:languages:python
Revert to rev 51

OBS-URL: https://build.opensuse.org/request/show/1244737
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=53
2025-02-10 12:08:16 +00:00
5cb755798f Accepting request 1243308 from home:mcalabkova:branches:devel:languages:python
- Update to 8.2.0
  * Drop support for Python 3.7.
  * BaseCommand is deprecated. Command is the base class for all commands.
  * MultiCommand is deprecated. Group is the base class for all group commands.
  * The current parser and related classes and methods, are deprecated.
  * Enable deferred evaluation of annotations with from __future__ import annotations.
  * When generating a command's name from a decorated function's name, the suffixes 
    _command, _cmd, _group, and _grp are removed.
  * Add a catch_exceptions parameter to CliRunner. If catch_exceptions is not passed 
    to CliRunner.invoke, the value from CliRunner.
  * Option.flag_value will no longer have a default value set based on Option.default 
    if Option.is_flag is False.
  * Choice is now generic and supports any iterable value. This allows you to use 
    enums and other non-str values.

OBS-URL: https://build.opensuse.org/request/show/1243308
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=52
2025-02-05 15:41:13 +00:00
0edfa43350 Accepting request 1236118 from home:glaubitz:branches:devel:languages:python
- Update to 8.1.8
  * Fix an issue with type hints for ``click.open_file()``. :issue:`2717`
  * Fix issue where error message for invalid ``click.Path`` displays on
    multiple lines. :issue:`2697`
  * Fixed issue that prevented a default value of ``""`` from being displayed in
    the help for an option. :issue:`2500`
  * The test runner handles stripping color consistently on Windows.
    :issue:`2705`
  * Show correct value for flag default when using ``default_map``.
    :issue:`2632`
  * Fix ``click.echo(color=...)`` passing ``color`` to coloroma so it can be
    forced on Windows. :issue:`2606`.
- Switch build system from setuptools to pyproject.toml
  * Add python-pip and python-wheel to BuildRequires
  * Replace %python_build with %pyproject_wheel
  * Replace %python_install with %pyproject_install
  * Update name for dist directory in %files section
- Update BuildRequires from pyproject.toml

OBS-URL: https://build.opensuse.org/request/show/1236118
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-click?expand=0&rev=50
2025-01-09 10:00:31 +00:00
5 changed files with 112 additions and 33 deletions

106
click-8.2.1-clirunner.patch Normal file
View File

@@ -0,0 +1,106 @@
github.com/pallets/click/issues/2939
github.com/pallets/click/pull/2940
From 93c6966eb3a575c2b600434d1cc9f4b3aee505ac Mon Sep 17 00:00:00 2001
From: Antoine Lambert <anlambert@softwareheritage.org>
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):

BIN
click-8.2.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a
size 295065

View File

@@ -1,32 +1,3 @@
-------------------------------------------------------------------
Mon Nov 17 08:34:57 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 8.3.1
* Dont discard pager arguments by correctly using subprocess.Popen.
* Replace Sentinel.UNSET default values by None as theyre 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 <steven.kowalik@suse.com>
- 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 <mcepl@cepl.eu>

View File

@@ -18,12 +18,14 @@
%{?sle15_python_module_pythons}
Name: python-click
Version: 8.3.1
Version: 8.2.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}