CHANGES.rst
.. currentmodule:: click
Released 2026-04-20
shlex.split to split pager and editor commands into argv
lists for :class:subprocess.Popen, removing shell=True.
:issue:1026 :pr:1477 :pr:2775TypeError when rendering help for an option whose default value is
an object that doesn't support equality comparison with strings, such as
semver.Version. :issue:3298 :pr:3299tmp_path fixture instead of a shared temporary file path. :pr:3238Sentinel.UNSET values in a default_map as absent, so they fall
through to the next default source instead of being used as the value.
:issue:3224 :pr:3240pdb.Pdb in CliRunner isolation so pdb.set_trace(),
breakpoint(), and debuggers subclassing pdb.Pdb (ipdb, pdbpp) can
interact with the real terminal instead of the captured I/O streams.
:issue:654 :issue:824 :issue:843 :pr:951 :pr:3235pytest-randomly and
pytest-xdist to detect test pollution and race conditions. :pr:31513151 :pr:3177show_default string in prompts, matching the existing
help text behavior. :issue:2836 :pr:2837 :pr:3165 :pr:3262 :pr:3280
:pr:3328default=True with boolean flag_value always returning the
flag_value instead of True. The default=True to flag_value
substitution now only applies to non-boolean flags, where True acts as a
sentinel meaning "activate this flag by default". For boolean flags,
default=True is returned as a literal value. :issue:3111 :pr:3239make_default_short_help as private API. :issue:3189 :pr:3250CliRunner's redirected streams now expose the original file descriptor
via fileno(), so that faulthandler, subprocess, and other
C-level consumers no longer crash with io.UnsupportedOperation.
:issue:2865ParameterSource to an :class:~enum.IntEnum and reorder
its members from most to least explicit, so values can be compared to
check whether a parameter was explicitly provided. :issue:2879 :pr:3248Released 2026-04-02
flag_value when is_flag=False to allow such options to be
used without an explicit value. :issue:3084 :pr:3152Sentinel.UNSET values as None when using lookup_default().
:issue:3136 :pr:3199 :pr:3202 :pr:3209 :pr:3212 :pr:3224_NamedTextIOWrapper from closing streams owned by StreamMixer.
:issue:824 :issue:2991 :issue:2993 :issue:3110 :pr:3139 :pr:3140CliRunner stream lifecycle, covering
logging interaction, multi-threaded safety, and sequential invocation
isolation. Add high-iteration stress tests behind a stress marker
with a dedicated CI job. :pr:3139flag_value being instantiated when used as a default via
default=True. :issue:3121 :pr:3201 :pr:3213 :pr:3225Released 2025-11-15
subprocess.Popen. :issue:3039
:pr:3055Sentinel.UNSET default values by None as they're passed through
the Context.invoke() method. :issue:3066 :issue:3065 :pr:3068Sentinel.UNSET happening too early, which caused incorrect
behavior for multiple parameters using the same name. :issue:3071 :pr:3079Sentinel.UNSET values as None when looking up for other parameters
through the context inside parameter callbacks. :issue:3136 :pr:3137prompt and confirm parameter prompt_suffix is
empty. :issue:3019 :pr:3021Sentinel.UNSET is found during parsing, it will skip calls to
type_cast_value. :issue:3069 :pr:3090Released 2025-09-17
Improved flag option handling: Reworked the relationship between flag_value
and default parameters for better consistency:
default parameter value is now preserved as-is and passed directly
to CLI functions (no more unexpected transformations)default=True maintain backward compatibility
by defaulting to their flag_valuedefault parameter can now be any type (bool, None, etc.)1992 :issue:2514 :issue:2610
:issue:3024 :pr:3030Allow default to be set on Argument for nargs = -1. :issue:2164
:pr:3030
Show correct auto complete value for nargs option in combination with flag
option :issue:2813
Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:2995 :pr:3013
Lazily import shutil. :pr:3023
Properly forward exception information to resources registered with
click.core.Context.with_resource(). :issue:2447 :pr:3058
Fix regression related to EOF handling in CliRunner. :issue:2939 :pr:2940
Released 2025-07-31
default, flag_value and type parameters for
flag options, as well as parsing and normalization of environment variables.
:issue:2952 :pr:2956BadParameter and MissingParameter exceptions for the
parameter param_hint that did not allow for a sequence of string where the
underlying function _join_param_hints allows for it. :issue:2777 :pr:2990Enum choices to render their default value in help
screen. Refs :issue:2911 :pr:3004zsh) for completion items containing
colons. :issue:2703 :pr:28462971 :pr:2972click.testing.StreamMixer's finalization that manifested
as a ValueError on close in a multi-threaded test session.
:issue:2993 :pr:2991Released 2025-05-20
2894
:issue:2897 :pr:29302906 :pr:2907sys.stderr at the end of CliRunner.invoke. :issue:26822787Released 2025-05-10
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
Add get_help_extra method on Option to fetch the generated extra
items used in get_help_record to render help text. :issue:2516
:pr:2517
Keep stdout and stderr streams independent in CliRunner. Always
collect stderr output and never raise an exception. Add a new
output stream to simulate what the user sees in its terminal. Removes
the mix_stderr parameter in CliRunner. :issue:2522 :pr:2523
Option.show_envvar now also shows environment variable in error messages.
:issue:2695 :pr:2696
Context.close will be called on exit. This results in all
Context.call_on_close callbacks and context managers added via
Context.with_resource to be closed on exit as well. :pr:2680
Add ProgressBar(hidden: bool) to allow hiding the progressbar. :issue:2609
A UserWarning will be shown when multiple parameters attempt to use the
same name. :issue:2396
When using Option.envvar with Option.flag_value, the flag_value
will always be used instead of the value of the environment variable.
:issue:2746 :pr:2788
Add Choice.get_invalid_choice_message method for customizing the
invalid choice message. :issue:2621 :pr:2622
If help is shown because no_args_is_help is enabled (defaults to True
for groups, False for commands), the exit code is 2 instead of 0.
:issue:1489 :pr:1489
Contexts created during shell completion are closed properly, fixing
a ResourceWarning when using click.File. :issue:2644 :pr:2800
:pr:2767
click.edit(filename) now supports passing an iterable of filenames in
case the editor supports editing multiple files at once. Its return type
is now also typed: AnyStr if text is passed, otherwise None.
:issue:2067 :pr:2068
Specialized typing of progressbar(length=...) as ProgressBar[int].
:pr:2630
Improve echo_via_pager behaviour in face of errors.
:issue:2674
echo_via_pager
raises an exception.echo_via_pager will not ignore KeyboardInterrupt anymore. This
allows the user to search for future output of the generator when
using less and then aborting the program using ctrl-c.deprecated: bool | str can now be used on options and arguments. This
previously was only available for Command. The message can now also be
customised by using a str instead of a bool. :issue:2263 :pr:2271
Command.deprecated formatting in --help changed from
(Deprecated) help to help (DEPRECATED).Add a catch_exceptions parameter to CliRunner. If
catch_exceptions is not passed to CliRunner.invoke, the value
from CliRunner is used. :issue:2817 :pr:2818
Option.flag_value will no longer have a default value set based on
Option.default if Option.is_flag is False. This results in
Option.default not needing to implement __bool__. :pr:2829
Incorrect click.edit typing has been corrected. :pr:2804
Choice is now generic and supports any iterable value.
This allows you to use enums and other non-str values. :pr:2796
:issue:605
Fix setup of help option's defaults when using a custom class on its
decorator. Removes HelpOption. :issue:2832 :pr:2840
Released 2024-12-19
click.open_file(). :issue:2717click.Path displays on
multiple lines. :issue:2697"" from being displayed in
the help for an option. :issue:25002705default_map.
:issue:2632click.echo(color=...) passing color to coloroma so it can be
forced on Windows. :issue:2606.2638help_option_names setting to
respect its eagerness. :pr:2811os.system with subprocess.Popen. :issue:1476color
setting when being displayed. :issue:21932452--help option to deduplicate code.
:pr:2563CLIRunner resets patched _compat.should_strip_ansi.
:issue:2732Released 2023-08-17
258125742567Released 2023-07-18
@click.group(). :issue:2558Released 2023-07-13
@click.command(), @click.option(), and
other decorators. Introduce typing tests. :issue:2558Released 2023-07-06
typing.Dict occurrences to typing.MutableMapping for
parameter hints. :issue:22552398shell_completion.add_completion_class
function. :pr:24212461.) in the program name. :issue:21662268click.clear(). :issue:228423322368fpath. :issue:2344.EOFError and KeyboardInterrupt tracebacks are not suppressed when
standalone_mode is disabled. :issue:2380@group.command does not fail if the group was created with a custom
command_class. :issue:2416multiple=True is allowed for flag options again and does not require
setting default=(). :issue:2246, 2292, 2295@argument() and @option() reusable when the
cls parameter is used. :issue:2294�). :issue:239523552554echo() does not fail when no streams are attached, such as with pythonw on
Windows. :issue:2415expose_value=False do not cause completion to fail. :issue:2336Released 2022-04-28
typing.Callable for @command and
@group. :issue:2255multiple=True, is_flag=True. Use count instead.
:issue:2246Released 2022-03-31
2236Path, placing the executable
parameter at the end. It is recommended to use keyword arguments
instead of positional arguments. :issue:2235Released 2022-03-30
2227Released 2022-03-28
Drop support for Python 3.6. :pr:2129
Remove previously deprecated code. :pr:2130
Group.resultcallback is renamed to result_callback.autocompletion parameter to Command is renamed to
shell_complete.get_terminal_size is removed, use
shutil.get_terminal_size instead.get_os_args is removed, use sys.argv[1:] instead.Rely on :pep:538 and :pep:540 to handle selecting UTF-8 encoding
instead of ASCII. Click's locale encoding detection is removed.
:issue:2198
Single options boolean flags with show_default=True only show
the default if it is True. :issue:1971
The command and group decorators can be applied with or
without parentheses. :issue:1359
The Path type can check whether the target is executable.
:issue:1961
Command.show_default overrides Context.show_default, instead
of the other way around. :issue:1963
Parameter decorators and @group handles cls=None the same as
not passing cls. @option handles help=None the same as
not passing help. :issue:#1959
A flag option with required=True requires that the flag is
passed instead of choosing the implicit default value. :issue:1978
Indentation in help text passed to Option and Command is
cleaned the same as using the @option and @command
decorators does. A command's epilog and short_help are also
processed. :issue:1985
Store unprocessed Command.help, epilog and short_help
strings. Processing is only done when formatting help text for
output. :issue:2149
Allow empty str input for prompt() when
confirmation_prompt=True and default="". :issue:2157
Windows glob pattern expansion doesn't fail if a value is an invalid
pattern. :issue:2195
It's possible to pass a list of params to @command. Any
params defined with decorators are appended to the passed params.
:issue:2131.
@command decorator is annotated as returning the correct type if
a cls argument is used. :issue:2211
A Group with invoke_without_command=True and chain=False
will invoke its result callback with the group function's return
value. :issue:2124
to_info_dict will not fail if a ParamType doesn't define a
name. :issue:2168
Shell completion prioritizes option values with option prefixes over
new options. :issue:2040
Options that get an environment variable value using
autoenvvar_prefix treat an empty value as None, consistent
with a direct envvar. :issue:2146
Released 2022-02-18
open_file recognizes Path("-") as a standard stream, the
same as the string "-". :issue:2106option and argument decorators preserve the type
annotation of the decorated function. :pr:2155__str__ instead of always showing (dynamic). :issue:20992163echo and secho file argument.
:issue:2174, 2185Released 2021-10-10
Path(resolve_path=True) type creating invalid
paths. :issue:2088readline does not cause the confirm() prompt to
disappear when pressing backspace. :issue:2092invoke() are cast to the
corresponding parameter's type. :issue:2089, 2090Released 2021-10-08
is_bool_flag is not set to True if is_flag is False.
:issue:19251940default value is not shown for multiple=True.
:issue:19691929Path type with resolve_path=True resolves relative symlinks
to be relative to the containing directory. :issue:19211738, 2017type argument in prompt function.
:issue:20622058count=True will not show "[x>=0]" in help text.
:issue:20722085multiple and flag_value use the flag value
instead of leaving an internal placeholder. :issue:2001Released 2021-05-19
1879Context.obj as Any so type checking allows all
operations on the arbitrary object. :issue:18851882ProgressBar object.
:issue:1892importlib_metadata backport package is installed on Python <
3.8. :issue:1889nargs=-1 only use env var value if no command
line values are given. :issue:1903flag_value if given, like
regular options do from default. :issue:18861898command.name, fixing an unintended change to help text and
default_map lookups. When using patterns like AliasedGroup,
override resolve_command to change the name that is returned if
needed. :issue:18951889windows_expand_args=False when calling the main command to
disable 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:1901Released 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:1784
Adds a repr to Command, showing the command name for friendlier
debugging. :issue:1267, :pr:1295
Add support for distinguishing the source of a command line
parameter. :issue:1264, :pr:1329
Add an optional parameter to ProgressBar.update to set the
current_item. :issue:1226, :pr:1332
version_option uses importlib.metadata (or the
importlib_metadata backport) instead of pkg_resources. The
version 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:1582
If validation fails for a prompt with hide_input=True, the value
is not shown in the error message. :issue:1460
An IntRange or FloatRange option shows the accepted range in
its help text. :issue:1525, :pr:1303
IntRange and FloatRange bounds can be open (<) instead
of closed (<=) by setting min_open and max_open. Error
messages have changed to reflect this. :issue:1100
An option defined with duplicate flag names ("--foo/--foo")
raises a ValueError. :issue:1465
echo() will not fail when using pytest's capsys fixture on
Windows. :issue:1590
Resolving commands returns the canonical command name instead of the
matched name. This makes behavior such as help text and
Context.invoked_subcommand consistent when using patterns like
AliasedGroup. :issue:1422
The BOOL type accepts the values "on" and "off". :issue:1629
A Group with invoke_without_command=True will always invoke
its result callback. :issue:1178
nargs == -1 and nargs > 1 is parsed and validated for
values from environment variables and defaults. :issue:729
Detect the program name when executing a module or package with
python -m name. :issue:1603
Include required parent arguments in help synopsis of subcommands.
:issue:1475
Help for boolean flags with show_default=True shows the flag
name instead of True or False. :issue:1538
Non-string objects passed to style() and secho() will be
converted to string. :pr:1146
edit(require_save=True) will detect saves for editors that exit
very fast on filesystems with 1 second resolution. :pr:1050
New class attributes make it easier to use custom core objects
throughout an entire application. :pr:938
Command.context_class controls the context created when
running the command.Context.invoke creates new contexts of the same type, so a
custom type will persist to invoked subcommands.Context.formatter_class controls the formatter used to
generate help and usage.Group.command_class changes the default type for
subcommands with @group.command().Group.group_class changes the default type for subgroups
with @group.group(). Setting it to type will create
subgroups of the same type as the group itself.super() consistently for better support of
subclassing.Use Context.with_resource() to manage resources that would
normally be used in a with statement, allowing them to be used
across subcommands and callbacks, then cleaned up when the context
ends. :pr:1191
The result object returned by the test runner's invoke() method
has a return_value attribute with the value returned by the
invoked command. :pr:1312
Required arguments with the Choice type show the choices in
curly braces to indicate that one is required ({a|b|c}).
:issue:1272
If only a name is passed to option(), Click suggests renaming it
to --name. :pr:1355
A context's show_default parameter defaults to the value from
the parent context. :issue:1565
click.style() can output 256 and RGB color codes. Most modern
terminals support these codes. :pr:1429
When using CliRunner.invoke(), the replaced stdin file has
name and mode attributes. This lets File options with
the - value match non-testing behavior. :issue:1064
When creating a Group, allow passing a list of commands instead
of a dict. :issue:1339
When a long option name isn't valid, use difflib to make better
suggestions for possible corrections. :issue:1446
Core objects have a to_info_dict() method. This gathers
information 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:461
Redesign the shell completion system. :issue:1484, :pr:1622
autocompletion parameter for options and arguments is
renamed to shell_complete. The function must take
ctx, param, incomplete, must do matching rather than return
all values, and must return a list of strings or a list of
CompletionItem. The old name and behavior is deprecated and
will be removed in 8.1.{shell}_source rather
than source_{shell}, and is always required.Completion correctly parses command line strings with incomplete
quoting or escape sequences. :issue:1708
Extra context settings (obj=..., etc.) are passed on to the
completion system. :issue:942
Include --help option in completion. :pr:1504
ParameterSource is an enum.Enum subclass. :issue:1530
Boolean and UUID types strip surrounding space before converting.
:issue:1605
Adjusted error message from parameter type validation to be more
consistent. Quotes are used to distinguish the invalid value.
:issue:1605
The default value for a parameter with nargs > 1 and
multiple=True must be a list of tuples. :issue:1649
When getting the value for a parameter, the default is tried in the
same section as other sources to ensure consistent processing.
:issue:1649
All parameter types accept a value that is already the correct type.
:issue:1649
For shell completion, an argument is considered incomplete if its
value did not come from the command line args. :issue:1649
Added ParameterSource.PROMPT to track parameter values that were
prompted for. :issue:1649
Options with nargs > 1 no longer raise an error if a default is
not given. Parameters with nargs > 1 default to None, and
parameters with multiple=True or nargs=-1 default to an
empty tuple. :issue:472
Handle 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:1285
Parameter.get_default() checks Context.default_map to
handle overrides consistently in help text, invoke(), and
prompts. :issue:1548
Add prompt_required param to Option. When set to False,
the user will only be prompted for an input if no value was passed.
:issue:736
Providing the value to an option can be made optional through
is_flag=False, and the value can instead be prompted for or
passed in as a default value.
:issue:549, 736, 764, 921, 1015, 1618
Fix formatting when Command.options_metavar is empty. :pr:1551
Revert adding space between option help text that wraps.
:issue:1831
The default value passed to prompt will be cast to the correct
type like an input value would be. :pr:1517
Automatically generated short help messages will stop at the first
ending of a phrase or double linebreak. :issue:1082
Skip progress bar render steps for efficiency with very fast
iterators by setting update_min_steps. :issue:676
Respect case_sensitive=False when doing shell completion for
Choice :issue:1692
Use mkstemp() instead of mktemp() in pager implementation.
:issue:1752
If Option.show_default is a string, it is displayed even if
default is None. :issue:1732
click.get_terminal_size() is deprecated and will be removed in
8.1. Use :func:shutil.get_terminal_size instead. :issue:1736
Control the location of the temporary directory created by
CLIRunner.isolated_filesystem by passing temp_dir. A custom
directory will not be removed automatically. :issue:395
click.confirm() will prompt until input is given if called with
default=None. :issue:1381
Option prompts validate the value with the option's callback in
addition to its type. :issue:457
confirmation_prompt can be set to a custom string. :issue:723
Allow styled output in Jupyter on Windows. :issue:1271
style() supports the strikethrough, italic, and
overline styles. :issue:805, 1821
Multiline marker is removed from short help text. :issue:1597
Restore progress bar behavior of echoing only the label if the file
is not a TTY. :issue:1138
Progress bar output is shown even if execution time is less than 0.5
seconds. :issue:1648
Progress bar item_show_func shows the current item, not the
previous item. :issue:1353
The Path param type can be passed path_type=pathlib.Path to
return a path object instead of a string. :issue:405
TypeError is raised when parameter with multiple=True or
nargs > 1 has non-iterable default. :issue:1749
Add a pass_meta_key decorator for passing a key from
Context.meta. This is useful for extensions using meta to
store information. :issue:1739
Path resolve_path resolves symlinks on Windows Python < 3.8.
:issue:1813
Command 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:1791
When taking arguments from sys.argv on Windows, glob patterns,
user dir, and env vars are expanded. :issue:1096
Marked messages shown by the CLI with gettext() to allow
applications to translate Click's built-in strings. :issue:303
Writing invalid characters to stderr when using the test runner
does not raise a UnicodeEncodeError. :issue:848
Fix an issue where readline would clear the entire prompt()
line instead of only the input when pressing backspace. :issue:665
Add all kwargs passed to Context.invoke() to ctx.params.
Fixes an inconsistency when nesting Context.forward() calls.
:issue:1568
The MultiCommand.resultcallback decorator is renamed to
result_callback. The old name is deprecated. :issue:1160
Fix issues with CliRunner output when using echo_stdin=True.
:issue:1101
Fix a bug of click.utils.make_default_short_help for which the
returned string could be as long as max_width + 3. :issue:1849
When defining a parameter, default is validated with
multiple and nargs. More validation is done for values being
processed as well. :issue:1806
HelpFormatter.write_text uses the full line width when wrapping
text. :issue:1871
Released 2020-04-27
echo_with_pager
and edit. This was intended to allows spaces in commands, but
caused issues if the string was actually a command and arguments, or
on Windows. Instead, the string must be quoted manually as it should
appear on the command line. :issue:1514Released 2020-03-09
ClickException output going to stdout instead of stderr.
:issue:1495Released 2020-03-09
unicode_literals error message. :pr:115111851216bytes. :pr:119511161342OSError when running in MSYS2. :issue:1338OSError when redirecting to NUL stream on Windows.
:issue:106511361462click.Choice
:issue:1277, :pr:1318no_args_is_help option to click.Command, defaults to
False :pr:1167show_default parameter to Context to enable showing
defaults globally. :issue:1018env MYPATH='' as though the option were not passed.
:issue:1196next(bar) on an active
progress bar instance. :issue:1125open_file with atomic=True retains permissions of existing
files and respects the current umask for new files. :issue:1376CliRunner with mix_stderr=False, if
result.stderr is empty it will not raise a ValueError.
:issue:1193mix_stderr parameter from
CliRunner.invoke. :issue:1435TypeError raised when using bool flags and specifying
type=bool. :issue:1287834MissingParameter exceptions are printable in the Python
interpreter. :issue:1139914-. :issue:1253834, 1066, 13971075sensible-editor when determining the editor to use for
click.edit(). :pr:1469click.edit can contains spaces. :pr:14701348Command, Group, Option, and Argument,
showing the name for friendlier debugging. :issue:1267- after the -- separator. :issue:12471418142314681492Released 2018-09-25
967, 976click.Choice's missing message. :issue:202, :pr:1000323, :pr:865334CliRunner. :issue:334,
:pr:1010--help option. :issue:393,
:pr:557409, :pr:889414DateTime type for converting input in given date time
formats. :pr:423secho's first argument can now be None, like in echo.
:pr:424ZeroDivisionError in ProgressBar.make_step, when the
arg passed to the first call of ProgressBar.update is 0.
:issue:447, :pr:1012487500required=True. :issue:514,
:pr:1022Context.exit return the exit code,
rather than calling sys.exit. :issue:667, :pr:533, 1098click.getchar() returns Unicode in Python 3 on Windows,
consistent with other platforms. :issue:537, 821, 822, 1088,
:pr:1108FloatRange type. :pr:538, 553type=click.Choice for
Options and Arguments. :issue:535, :pr:681Argument parameter
declaration. :issue:568, 574, :pr:1014case_sensitive=False as an option to Choice. :issue:569click.getchar() correctly raises KeyboardInterrupt on "^C"
and EOFError on "^D" on Linux. :issue:583, :pr:1115click.getchar(echo=True) on Linux.
:pr:1115param_hint in errors now derived from param itself.
:issue:598, 704, :pr:709612prog_name as extra in CliRunner.invoke.
:issue:616, :pr:999\f form feed
character, useful for hiding Sphinx-style parameter documentation.
:pr:629, 1091launch now works properly under Cygwin. :pr:650651, :pr:706CliRunner.invoke now may receive args as a string
representing a Unix shell command. :pr:664Argument.make_metavar() default to type metavar. :pr:675ignore_unknown_options. :pr:684click.style and fix the reset
option for parameters fg and bg. :issue:703, :pr:809show_envvar for showing environment variables in help.
:pr:710BrokenPipeError during interpreter shutdown when stdout or
stderr is a closed pipe. :issue:712, :pr:1106725, :pr:1016sys._getframes() on Python interpreters that don't
support it. :pr:728sys.exit with None.
:pr:739741,
:pr:1003744754, :pr:774755773790,
:pr:806793, :pr:794795, :pr:1020Option naming: functionality.
:pr:799path_type. :pr:801807click.echo on Windows. :issue:816,
:pr:819825, :pr:830842NoSuchOption errors take ctx so that --help hint gets
printed in error output. :pr:860862863866,
:pr:869CliRunner to separate stdout and stderr. :pr:868873, :pr:874877ResourceWarning that occurs during some tests. :pr:878locale
command fails. :pr:880case_sensitive=False as an option to Choice types.
:pr:887918919, :pr:930_AtomicFile now uses the realpath of the original filename
so that changing the working directory does not affect it. :pr:920925,
:pr:930926, :pr:994"-".
:pr:929__all__ list. :pr:935949, :pr:1009954962fcntl import. :pr:965ImportError. :pr:995996get_winter_size() so it correctly returns (0,0).
:pr:9971001100210041005fd was undefined. :pr:10071008auto_envvar_prefix works with command groups.
:pr:101110131047,
:pr:10591055my_command it becomes my-command in the command line
interface.1058,
:pr:10611068, :pr:1069auto_envvar_prefix would not be
converted to uppercase. :pr:1105Released 2017-01-06
click.progressbar work with codecs.open files.
:pr:63763964462711Released 2016-04-04
click.Path where it would crash when passed a -.
:issue:551Released 2016-03-24
471Released 2016-02-22
-m and -c on
Windows.Released 2015-11-27
Released 2015-11-27
MissingParameter not working without parameters passed.Released 2015-11-24, codename "pow pow"
nargs=-1 with a set default.Path type which means that this can
introduce small bugs for code not aware of this.type parameter to Path to force a specific string
type on the value.echo and prompt
functions now work with full unicode functionality in the Python
windows console by emulating an output stream. This also applies to
getting the virtual output and input streams via
click.get_text_stream(...).Path type.Released 2015-08-17
pass_obj that would accidentally pass the context
too.Released 2015-08-16, codename "tok tok"
w mode.CliRunner.get_current_context.meta dictionary to the context which is shared across
the linked list of contexts to allow click utilities to place state
there.Context.scope.echo function is now threadsafe: It calls the write
method of the underlying object only once.prompt(hide_input=True) now prints a newline on ^C.unicode_literals.PAGER environment variable if it is
empty or contains only whitespace.click-contrib GitHub organization was created.Released 2015-07-14
None
string.None on Python 3 by barfing
with a better error.None from sys.getfilesystemencodingclick.echo.Released 2015-03-31, codename "zoom zoom"
color parameters to lots of interfaces that directly or
indirectly call into echoing. This previously was always
autodetection (with the exception of the echo_via_pager
function). Now you can forcefully enable or disable it, overriding
the auto detection of Click.UNPROCESSED type which does not perform any type
changes which simplifies text handling on 2.x / 3.x in some special
advanced usecases.NoSuchOption and BadOptionUsage exceptions for more
generic handling of errors.max_content_width parameter to the context which can be
used to change the maximum width of help output. By default Click
will not format content for more than 80 characters width.option and argument.clear() on Windows when colorama is installed.nargs=-1 for options properly. Options cannot be
variadic.Released 2014-09-08
Released 2014-08-22
err parameter forwarding to the secho
function.invoked_subcommands attribute largely. It is not
possible to provide it to work error free due to how the parsing
works so this API has been deprecated.invoked_subcommand which was
broken as a regression in 3.1.Released 2014-08-13
Released 2014-08-12, codename "clonk clonk"
multiple and options
and arguments with nargs != 1.progressbar is no longer rendered with
whitespace stripped.main method on
a Click command to be able to handle errors better.echo.open_file.Released 2014-08-11
Released 2014-07-28
Released 2014-07-04
Released 2014-07-03
Released 2014-06-26
Released 2014-06-14
launch function on windows.Released 2014-06-06, codename "tap tap tap"
BadParameter which can be used to easily perform
custom validation with the same error messages as in the type
system.progressbar; a function to show progress bars.get_app_dir; a function to calculate the home folder
for configs.echo
function through colorama.clear function.style, :func:unstyle and :func:secho for ANSI
styles.edit function that invokes the default editor.launch function that launches browsers and
applications.getchar to fetch a single character from the terminal.pause which works similar to the Windows pause cmd
built-in but becomes an automatic noop if the application is not run
through a terminal.Released 2014-05-23
Released 2014-05-21