Update dependency click to v8 #15
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
~=7.1.2->~=8.3.1Release Notes
pallets/click (click)
v8.3.1Compare Source
Released 2025-11-15
subprocess.Popen. :issue:3039:pr:
3055Sentinel.UNSETdefault values byNoneas they're passed throughthe
Context.invoke()method. :issue:3066:issue:3065:pr:3068Sentinel.UNSEThappening too early, which caused incorrectbehavior for multiple parameters using the same name. :issue:
3071:pr:3079Sentinel.UNSETvalues asNonewhen looking up for other parametersthrough the context inside parameter callbacks. :issue:
3136:pr:3137promptandconfirmparameterprompt_suffixisempty. :issue:
3019:pr:3021Sentinel.UNSETis found during parsing, it will skip calls totype_cast_value. :issue:3069:pr:3090v8.3.0Compare Source
Released 2025-09-17
Improved flag option handling: Reworked the relationship between
flag_valueand
defaultparameters for better consistency:defaultparameter value is now preserved as-is and passed directlyto CLI functions (no more unexpected transformations)
default=Truemaintain backward compatibilityby defaulting to their
flag_valuedefaultparameter can now be any type (bool,None, etc.)1992:issue:2514:issue:2610:issue:
3024:pr:3030Allow
defaultto be set onArgumentfornargs = -1. :issue:2164:pr:
3030Show correct auto complete value for
nargsoption in combination with flagoption :issue:
2813Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:
2995:pr:3013Lazily import
shutil. :pr:3023Properly forward exception information to resources registered with
click.core.Context.with_resource(). :issue:2447:pr:3058Fix regression related to EOF handling in
CliRunner. :issue:2939:pr:2940v8.2.2Compare Source
Released 2025-07-31
default,flag_valueandtypeparameters forflag options, as well as parsing and normalization of environment variables.
:issue:
2952:pr:2956BadParameterandMissingParameterexceptions for theparameter
param_hintthat did not allow for a sequence of string where theunderlying function
_join_param_hintsallows for it. :issue:2777:pr:2990Enumchoices to render their default value in helpscreen. Refs :issue:
2911:pr:3004zsh) for completion items containingcolons. :issue:
2703:pr:28462971:pr:2972click.testing.StreamMixer's finalization that manifestedas a
ValueErroron close in a multi-threaded test session.:issue:
2993:pr:2991v8.2.1Compare Source
Released 2025-05-20
2894:issue:
2897:pr:29302906:pr:2907sys.stderrat the end ofCliRunner.invoke. :issue:26822787v8.2.0Compare Source
Released 2025-05-10
Drop support for Python 3.7, 3.8, and 3.9. :pr:
2588:pr:2893Use modern packaging metadata with
pyproject.tomlinstead ofsetup.cfg.:pr:
2438Use
flit_coreinstead ofsetuptoolsas build backend. :pr:2543Deprecate the
__version__attribute. Use feature detection, orimportlib.metadata.version("click"), instead. :issue:2598BaseCommandis deprecated.Commandis the base class for allcommands. :issue:
2589MultiCommandis deprecated.Groupis the base class for all groupcommands. :issue:
2590The current parser and related classes and methods, are deprecated.
:issue:
2205OptionParserand theparsermodule, which is a modified copy ofoptparsein the standard library.Context.protected_argsis unneeded.Context.argscontains anyremaining arguments while parsing.
Parameter.add_to_parser(on bothArgumentandOption) isunneeded. Parsing works directly without building a separate parser.
split_arg_stringis moved fromparsertoshell_completion.Enable deferred evaluation of annotations with
from __future__ import annotations. :pr:2270When generating a command's name from a decorated function's name, the
suffixes
_command,_cmd,_group, and_grpare removed.:issue:
2322Show the
types.ParamType.namefortypes.Choiceoptions within--helpmessage ifshow_choices=Falseis specified.:issue:
2356Do not display default values in prompts when
Option.show_defaultisFalse. :pr:2509Add
get_help_extramethod onOptionto fetch the generated extraitems used in
get_help_recordto render help text. :issue:2516:pr:
2517Keep stdout and stderr streams independent in
CliRunner. Alwayscollect stderr output and never raise an exception. Add a new
output stream to simulate what the user sees in its terminal. Removes
the
mix_stderrparameter inCliRunner. :issue:2522:pr:2523Option.show_envvarnow also shows environment variable in error messages.:issue:
2695:pr:2696Context.closewill be called on exit. This results in allContext.call_on_closecallbacks and context managers added viaContext.with_resourceto be closed on exit as well. :pr:2680Add
ProgressBar(hidden: bool)to allow hiding the progressbar. :issue:2609A
UserWarningwill be shown when multiple parameters attempt to use thesame name. :issue:
2396When using
Option.envvarwithOption.flag_value, theflag_valuewill always be used instead of the value of the environment variable.
:issue:
2746:pr:2788Add
Choice.get_invalid_choice_messagemethod for customizing theinvalid choice message. :issue:
2621:pr:2622If help is shown because
no_args_is_helpis enabled (defaults toTruefor groups,
Falsefor commands), the exit code is 2 instead of 0.:issue:
1489:pr:1489Contexts created during shell completion are closed properly, fixing
a
ResourceWarningwhen usingclick.File. :issue:2644:pr:2800:pr:
2767click.edit(filename)now supports passing an iterable of filenames incase the editor supports editing multiple files at once. Its return type
is now also typed:
AnyStriftextis passed, otherwiseNone.:issue:
2067:pr:2068Specialized typing of
progressbar(length=...)asProgressBar[int].:pr:
2630Improve
echo_via_pagerbehaviour in face of errors.:issue:
2674echo_via_pagerraises an exception.
to terminate.
echo_via_pagerwill not ignoreKeyboardInterruptanymore. Thisallows the user to search for future output of the generator when
using less and then aborting the program using ctrl-c.
deprecated: bool | strcan now be used on options and arguments. Thispreviously was only available for
Command. The message can now also becustomised by using a
strinstead of abool. :issue:2263:pr:2271Command.deprecatedformatting in--helpchanged from(Deprecated) helptohelp (DEPRECATED).Add a
catch_exceptionsparameter toCliRunner. Ifcatch_exceptionsis not passed toCliRunner.invoke, the valuefrom
CliRunneris used. :issue:2817:pr:2818Option.flag_valuewill no longer have a default value set based onOption.defaultifOption.is_flagisFalse. This results inOption.defaultnot needing to implement__bool__. :pr:2829Incorrect
click.edittyping has been corrected. :pr:2804Choiceis now generic and supports any iterable value.This allows you to use enums and other non-
strvalues. :pr:2796:issue:
605Fix setup of help option's defaults when using a custom class on its
decorator. Removes
HelpOption. :issue:2832:pr:2840v8.1.8Compare Source
Released 2024-12-19
click.open_file(). :issue:2717click.Pathdisplays onmultiple lines. :issue:
2697""from being displayed inthe help for an option. :issue:
2500:issue:
2705default_map.:issue:
2632click.echo(color=...)passingcolorto coloroma so it can beforced on Windows. :issue:
2606.:issue:
2638help_option_namessetting torespect its eagerness. :pr:
2811os.systemwithsubprocess.Popen. :issue:1476colorsetting when being displayed. :issue:
2193:issue:
2452--helpoption to deduplicate code.:pr:
2563CLIRunnerresets patched_compat.should_strip_ansi.:issue:
2732v8.1.7Compare Source
Released 2023-08-17
258125742567v8.1.6Compare Source
Released 2023-07-18
@click.group(). :issue:2558v8.1.5Compare Source
Released 2023-07-13
@click.command(),@click.option(), andother decorators. Introduce typing tests. :issue:
2558v8.1.4Compare Source
Released 2023-07-06
typing.Dictoccurrences totyping.MutableMappingforparameter hints. :issue:
2255:issue:
2398shell_completion.add_completion_classfunction. :pr:
24212461.) in the program name. :issue:21662268click.clear(). :issue:228423322368fpath. :issue:2344.EOFErrorandKeyboardInterrupttracebacks are not suppressed whenstandalone_modeis disabled. :issue:2380@group.commanddoes not fail if the group was created with a customcommand_class. :issue:2416multiple=Trueis allowed for flag options again and does not requiresetting
default=(). :issue:2246, 2292, 2295@argument()and@option()reusable when theclsparameter is used. :issue:2294bytes with the replacement character (
�). :issue:239523552554echo()does not fail when no streams are attached, such as withpythonwonWindows. :issue:
2415expose_value=Falsedo not cause completion to fail. :issue:2336v8.1.3Compare Source
Released 2022-04-28
typing.Callablefor@commandand@group. :issue:2255multiple=True, is_flag=True. Usecountinstead.:issue:
2246v8.1.2Compare Source
Released 2022-03-31
executable check. :pr:
2236Path, placing theexecutableparameter at the end. It is recommended to use keyword arguments
instead of positional arguments. :issue:
2235v8.1.1Compare Source
Released 2022-03-30
report that a command was not callable. :issue:
2227v8.1.0Compare Source
Released 2022-03-28
Drop support for Python 3.6. :pr:
2129Remove previously deprecated code. :pr:
2130Group.resultcallbackis renamed toresult_callback.autocompletionparameter toCommandis renamed toshell_complete.get_terminal_sizeis removed, useshutil.get_terminal_sizeinstead.get_os_argsis removed, usesys.argv[1:]instead.Rely on :pep:
538and :pep:540to handle selecting UTF-8 encodinginstead of ASCII. Click's locale encoding detection is removed.
:issue:
2198Single options boolean flags with
show_default=Trueonly showthe default if it is
True. :issue:1971The
commandandgroupdecorators can be applied with orwithout parentheses. :issue:
1359The
Pathtype can check whether the target is executable.:issue:
1961Command.show_defaultoverridesContext.show_default, insteadof the other way around. :issue:
1963Parameter decorators and
@grouphandlescls=Nonethe same asnot passing
cls.@optionhandleshelp=Nonethe same asnot passing
help. :issue:#1959A flag option with
required=Truerequires that the flag ispassed instead of choosing the implicit default value. :issue:
1978Indentation in help text passed to
OptionandCommandiscleaned the same as using the
@optionand@commanddecorators does. A command's
epilogandshort_helpare alsoprocessed. :issue:
1985Store unprocessed
Command.help,epilogandshort_helpstrings. Processing is only done when formatting help text for
output. :issue:
2149Allow empty str input for
prompt()whenconfirmation_prompt=Trueanddefault="". :issue:2157Windows glob pattern expansion doesn't fail if a value is an invalid
pattern. :issue:
2195It's possible to pass a list of
paramsto@command. Anyparams defined with decorators are appended to the passed params.
:issue:
2131.@commanddecorator is annotated as returning the correct type ifa
clsargument is used. :issue:2211A
Groupwithinvoke_without_command=Trueandchain=Falsewill invoke its result callback with the group function's return
value. :issue:
2124to_info_dictwill not fail if aParamTypedoesn't define aname. :issue:2168Shell completion prioritizes option values with option prefixes over
new options. :issue:
2040Options that get an environment variable value using
autoenvvar_prefixtreat an empty value asNone, consistentwith a direct
envvar. :issue:2146v8.0.4Compare Source
Released 2022-02-18
open_filerecognizesPath("-")as a standard stream, thesame as the string
"-". :issue:2106optionandargumentdecorators preserve the typeannotation of the decorated function. :pr:
2155__str__instead of always showing(dynamic). :issue:2099directory completion. If this script was generated by a previous
version, it should be regenerated. :issue:
2163echoandsechofile argument.:issue:
2174, 2185v8.0.3Compare Source
Released 2021-10-10
Path(resolve_path=True)type creating invalidpaths. :issue:
2088readlinedoes not cause theconfirm()prompt todisappear when pressing backspace. :issue:
2092invoke()are cast to thecorresponding parameter's type. :issue:
2089, 2090v8.0.2Compare Source
Released 2021-10-08
is_bool_flagis not set toTrueifis_flagisFalse.:issue:
19251940defaultvalue is not shown formultiple=True.:issue:
1969such as absolute file paths. :issue:
1929Pathtype withresolve_path=Trueresolves relative symlinksto be relative to the containing directory. :issue:
1921avoiding some unexpected warning output. :issue:
1738, 2017typeargument inpromptfunction.:issue:
2062adding underline. :pr:
2058count=Truewill not show "[x>=0]" in help text.:issue:
2072processing. :issue:
2085multipleandflag_valueuse the flag valueinstead of leaving an internal placeholder. :issue:
2001v8.0.1Compare Source
Released 2021-05-19
in user projects. :issue:
1879Context.objasAnyso type checking allows alloperations on the arbitrary object. :issue:
18851882ProgressBarobject.:issue:
1892importlib_metadatabackport package is installed on Python <3.8. :issue:
1889nargs=-1only use env var value if no commandline values are given. :issue:
1903flag_valueif given, likeregular options do from
default. :issue:1886already valid values in addition to strings. :issue:
1898command.name, fixing an unintended change to help text anddefault_maplookups. When using patterns likeAliasedGroup,override
resolve_commandto change the name that is returned ifneeded. :issue:
1895text. :issue:
1889windows_expand_args=Falsewhen calling the main command todisable pattern expansion on Windows. There is no way to escape
patterns in CMD, so if the program needs to pass them on as-is then
expansion must be disabled. :issue:
1901v8.0.0Compare Source
Released 2021-05-11
Drop support for Python 2 and 3.5.
Colorama is always installed on Windows in order to provide style
and color support. :pr:
1784Adds a repr to Command, showing the command name for friendlier
debugging. :issue:
1267, :pr:1295Add support for distinguishing the source of a command line
parameter. :issue:
1264, :pr:1329Add an optional parameter to
ProgressBar.updateto set thecurrent_item. :issue:1226, :pr:1332version_optionusesimportlib.metadata(or theimportlib_metadatabackport) instead ofpkg_resources. Theversion is detected based on the package name, not the entry point
name. The Python package name must match the installed package
name, or be passed with
package_name=. :issue:1582If validation fails for a prompt with
hide_input=True, the valueis not shown in the error message. :issue:
1460An
IntRangeorFloatRangeoption shows the accepted range inits help text. :issue:
1525, :pr:1303IntRangeandFloatRangebounds can be open (<) insteadof closed (
<=) by settingmin_openandmax_open. Errormessages have changed to reflect this. :issue:
1100An option defined with duplicate flag names (
"--foo/--foo")raises a
ValueError. :issue:1465echo()will not fail when using pytest'scapsysfixture onWindows. :issue:
1590Resolving commands returns the canonical command name instead of the
matched name. This makes behavior such as help text and
Context.invoked_subcommandconsistent when using patterns likeAliasedGroup. :issue:1422The
BOOLtype accepts the values "on" and "off". :issue:1629A
Groupwithinvoke_without_command=Truewill always invokeits result callback. :issue:
1178nargs == -1andnargs > 1is parsed and validated forvalues from environment variables and defaults. :issue:
729Detect the program name when executing a module or package with
python -m name. :issue:1603Include required parent arguments in help synopsis of subcommands.
:issue:
1475Help for boolean flags with
show_default=Trueshows the flagname instead of
TrueorFalse. :issue:1538Non-string objects passed to
style()andsecho()will beconverted to string. :pr:
1146edit(require_save=True)will detect saves for editors that exitvery fast on filesystems with 1 second resolution. :pr:
1050New class attributes make it easier to use custom core objects
throughout an entire application. :pr:
938Command.context_classcontrols the context created whenrunning the command.
Context.invokecreates new contexts of the same type, so acustom type will persist to invoked subcommands.
Context.formatter_classcontrols the formatter used togenerate help and usage.
Group.command_classchanges the default type forsubcommands with
@group.command().Group.group_classchanges the default type for subgroupswith
@group.group(). Setting it totypewill createsubgroups of the same type as the group itself.
super()consistently for better support ofsubclassing.
Use
Context.with_resource()to manage resources that wouldnormally be used in a
withstatement, allowing them to be usedacross subcommands and callbacks, then cleaned up when the context
ends. :pr:
1191The result object returned by the test runner's
invoke()methodhas a
return_valueattribute with the value returned by theinvoked command. :pr:
1312Required arguments with the
Choicetype show the choices incurly braces to indicate that one is required (
{a|b|c}).:issue:
1272If only a name is passed to
option(), Click suggests renaming itto
--name. :pr:1355A context's
show_defaultparameter defaults to the value fromthe parent context. :issue:
1565click.style()can output 256 and RGB color codes. Most modernterminals support these codes. :pr:
1429When using
CliRunner.invoke(), the replacedstdinfile hasnameandmodeattributes. This letsFileoptions withthe
-value match non-testing behavior. :issue:1064When creating a
Group, allow passing a list of commands insteadof a dict. :issue:
1339When a long option name isn't valid, use
difflibto make bettersuggestions for possible corrections. :issue:
1446Core objects have a
to_info_dict()method. This gathersinformation about the object's structure that could be useful for a
tool generating user-facing documentation. To get the structure of
an entire CLI, use
Context(cli).to_info_dict(). :issue:461Redesign the shell completion system. :issue:
1484, :pr:1622extensions to add support for other shells.
completions suggestions.
can differ from the name they were created with.
autocompletionparameter for options and arguments isrenamed to
shell_complete. The function must takectx, param, incomplete, must do matching rather than returnall values, and must return a list of strings or a list of
CompletionItem. The old name and behavior is deprecated andwill be removed in 8.1.
The shell now comes first, such as
{shell}_sourceratherthan
source_{shell}, and is always required.Completion correctly parses command line strings with incomplete
quoting or escape sequences. :issue:
1708Extra context settings (
obj=..., etc.) are passed on to thecompletion system. :issue:
942Include
--helpoption in completion. :pr:1504ParameterSourceis anenum.Enumsubclass. :issue:1530Boolean and UUID types strip surrounding space before converting.
:issue:
1605Adjusted error message from parameter type validation to be more
consistent. Quotes are used to distinguish the invalid value.
:issue:
1605The default value for a parameter with
nargs> 1 andmultiple=Truemust be a list of tuples. :issue:1649When getting the value for a parameter, the default is tried in the
same section as other sources to ensure consistent processing.
:issue:
1649All parameter types accept a value that is already the correct type.
:issue:
1649For shell completion, an argument is considered incomplete if its
value did not come from the command line args. :issue:
1649Added
ParameterSource.PROMPTto track parameter values that wereprompted for. :issue:
1649Options with
nargs> 1 no longer raise an error if a default isnot given. Parameters with
nargs> 1 default toNone, andparameters with
multiple=Trueornargs=-1default to anempty tuple. :issue:
472Handle empty env vars as though the option were not passed. This
extends the change introduced in 7.1 to be consistent in more cases.
:issue:
1285Parameter.get_default()checksContext.default_maptohandle overrides consistently in help text,
invoke(), andprompts. :issue:
1548Add
prompt_requiredparam toOption. When set toFalse,the user will only be prompted for an input if no value was passed.
:issue:
736Providing the value to an option can be made optional through
is_flag=False, and the value can instead be prompted for orpassed in as a default value.
:issue:
549, 736, 764, 921, 1015, 1618Fix formatting when
Command.options_metavaris empty. :pr:1551Revert adding space between option help text that wraps.
:issue:
1831The default value passed to
promptwill be cast to the correcttype like an input value would be. :pr:
1517Automatically generated short help messages will stop at the first
ending of a phrase or double linebreak. :issue:
1082Skip progress bar render steps for efficiency with very fast
iterators by setting
update_min_steps. :issue:676Respect
case_sensitive=Falsewhen doing shell completion forChoice:issue:1692Use
mkstemp()instead ofmktemp()in pager implementation.:issue:
1752If
Option.show_defaultis a string, it is displayed even ifdefaultisNone. :issue:1732click.get_terminal_size()is deprecated and will be removed in8.1. Use :func:
shutil.get_terminal_sizeinstead. :issue:1736Control the location of the temporary directory created by
CLIRunner.isolated_filesystemby passingtemp_dir. A customdirectory will not be removed automatically. :issue:
395click.confirm()will prompt until input is given if called withdefault=None. :issue:1381Option prompts validate the value with the option's callback in
addition to its type. :issue:
457confirmation_promptcan be set to a custom string. :issue:723Allow styled output in Jupyter on Windows. :issue:
1271style()supports thestrikethrough,italic, andoverlinestyles. :issue:805, 1821Multiline marker is removed from short help text. :issue:
1597Restore progress bar behavior of echoing only the label if the file
is not a TTY. :issue:
1138Progress bar output is shown even if execution time is less than 0.5
seconds. :issue:
1648Progress bar
item_show_funcshows the current item, not theprevious item. :issue:
1353The
Pathparam type can be passedpath_type=pathlib.Pathtoreturn a path object instead of a string. :issue:
405TypeErroris raised when parameter withmultiple=Trueornargs > 1has non-iterable default. :issue:1749Add a
pass_meta_keydecorator for passing a key fromContext.meta. This is useful for extensions usingmetatostore information. :issue:
1739Pathresolve_pathresolves symlinks on Windows Python < 3.8.:issue:
1813Command deprecation notice appears at the start of the help text, as
well as in the short help. The notice is not in all caps.
:issue:
1791When taking arguments from
sys.argvon Windows, glob patterns,user dir, and env vars are expanded. :issue:
1096Marked messages shown by the CLI with
gettext()to allowapplications to translate Click's built-in strings. :issue:
303Writing invalid characters to
stderrwhen using the test runnerdoes not raise a
UnicodeEncodeError. :issue:848Fix an issue where
readlinewould clear the entireprompt()line instead of only the input when pressing backspace. :issue:
665Add all kwargs passed to
Context.invoke()toctx.params.Fixes an inconsistency when nesting
Context.forward()calls.:issue:
1568The
MultiCommand.resultcallbackdecorator is renamed toresult_callback. The old name is deprecated. :issue:1160Fix issues with
CliRunneroutput when usingecho_stdin=True.:issue:
1101Fix a bug of
click.utils.make_default_short_helpfor which thereturned string could be as long as
max_width + 3. :issue:1849When defining a parameter,
defaultis validated withmultipleandnargs. More validation is done for values beingprocessed as well. :issue:
1806HelpFormatter.write_textuses the full line width when wrappingtext. :issue:
1871Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.