ChangelogΒΆ
7.8.1.dev0 (unreleased)ΒΆ
Warning
This version is not released yet and is under active development.
7.8.0 (2026-03-09)ΒΆ
Note
7.8.0 is available on π PyPI and π GitHub.
Add
config_schemaparameter toConfigOptionandExtraCommand/ExtraGroupfor typed configuration access via dataclasses or custom callables.Add
fallback_sectionsparameter for legacy configuration section name migration with deprecation warnings.Add
normalize_config_keys()utility to convert kebab-case config keys to snake_case Python identifiers.Add
get_tool_config()helper to retrieve typed configuration from context.Check more variations of local, stable and dev CLI invocations.
Adopt
RUF022rule to letruffenforce__all__sorting.Fix ruff
0.15.5lint errors.
7.7.0 (2026-03-07)ΒΆ
Note
7.7.0 is available on π PyPI and π GitHub.
Add
version_fieldsparameter toExtraCommandandExtraGroup. Forwards anyExtraVersionOptiontemplate field (e.g.prog_name,version,git_branch) from the command decorator without replacing the default params list.Lazily evaluate version metadata fields in
ctx.meta.Remove
versionparameter fromExtraCommandandExtraGroup.Add
hjson,json,json5,jsonc,toml,xmlandyamltable formats for--table-format.Add
TableFormat.is_markupproperty.Strip ANSI color codes from markup table formats (
csv,html,latex,rst, etc.) by default. Use--colorto preserve them.Add
[toml]extra dependency group for TOML table output viatomlkit.Emit native types (booleans, nulls, lists) in
--show-paramsoutput for structured serialization formats (JSON, YAML, TOML, HJSON, XML).Fix
--show-paramsignoring--table-formatwhen it appears first on the command line.Expand dotted keys in configuration files (e.g.
"subcommand.option": value) into nested dicts before merging, to allow for mixing flat dot-notation and nested structures.Only capture timer start time when
--timeis actually requested.Add
click-extraentry point souvx click-extraworks out of the box. Theclick-extra-demoalias is kept for backward compatibility.
7.6.5 (2026-03-05)ΒΆ
Note
7.6.5 is available on π PyPI and π GitHub.
Bump
tabulaterequirement from>=0.9to>=0.10.Add new
colon-gridtable format.Replace custom
githubtable renderer with tabulateβspipeformat. Backport of python-tabulate#410.
7.6.4 (2026-03-04)ΒΆ
Note
7.6.4 is available on π PyPI and π GitHub.
Fix
ExtraVersionOption.cli_frame()crashing in Nuitka-compiled binaries where all stack frames belong to the Click ecosystem.Fix
ExtraVersionOption.module_versionreturningNonein__main__entry points by checking the parent packageβs__version__.Fix test plan for Nuitka-compiled binary.
Add
@pytest.mark.oncemarker for platform-independent structural tests. Run them in a single CI job instead of across the full matrix.
7.6.3 (2026-03-02)ΒΆ
Note
7.6.3 is available on π PyPI and π GitHub.
Fix
test_default_pattern_roaming_force_posixtest failures whenXDG_CONFIG_HOMEis set. Closes #1541.
7.6.2 (2026-02-27)ΒΆ
Note
7.6.2 is available on π PyPI and π GitHub.
Add
ExtraVersionOption.prebake_version()static method to pre-bake__version__strings with Git hashes at compile time, complementing the runtimeversionproperty for Nuitka/PyInstaller binaries.
7.6.1 (2026-02-27)ΒΆ
Note
7.6.1 is available on π PyPI and π GitHub.
Fix test failures when optional config format dependencies are not installed. Closes #1538.
7.6.0 (2026-02-26)ΒΆ
Note
7.6.0 is available on π PyPI and π GitHub.
Add
_default_subcommandsreserved configuration key to auto-invoke subcommands when none are provided on the CLI. Closes #1405.Add
_prepend_subcommandsreserved configuration key to always prepend subcommands to every invocation (requireschain=True). Closes #1405.Add
--validate-configoption to validate configuration files.Add
ConfigFormat.PYPROJECT_TOMLformat for[tool.*]section support inpyproject.toml. Closes #1524.Stop parent directory walk on inaccessible directories.
Add
stop_atparameter to@config_optionto limit parent directory walking. Defaults toVCS. Closes #651.Add
VCSsentinel andVCS_DIRSconstant for VCS root detection.Resolve relative paths to absolute in
parent_patternsbefore yielding.Add
included_paramsallowlist toConfigOptionand@config_option, the inverse ofexcluded_params. Closes #1362.Add human-friendly display labels to
ConfigFormat.Switch back from
SPLITtoBRACEflag for multi-format config file patterns. Fixes a bug where only the first format received the directory prefix withSPLIT.Hard code icon workaround for Sphinx index entries.
Automatically append Git short hash as a PEP 440 local version identifier to
.devversions (e.g.,1.2.3.dev0+abc1234).Skip Git hash suffix for versions that already contain
+(pre-baked local identifiers) to avoid invalid double-suffixed versions.Recognize
LLMenvironment variable to strip ANSI codes when running under an AI agent.
7.5.3 (2026-02-22)ΒΆ
Note
7.5.3 is available on π PyPI and π GitHub.
Allow disabling of autodiscovery of configuration files by setting
default=NO_CONFIGon@config_option. Closes #1495.Implement
resolve_any_xrefinClickDomainto prevent MyST-Parser warning. Closes #1502.Fix subcommand conflict detection checking against root-level params instead of parent params. Closes #1286.
7.5.2 (2026-02-12)ΒΆ
Note
7.5.2 is available on π PyPI and π GitHub.
Fix GitHub alerts converter mangling
list-tabledirective content. Closes #1490.Replace Dependabot by Renovate.
Move
click_extra/docs_update.pytodocs/docs_update.py.Add
pygments-ansi-colortodocsdependency group for lexer table generation.
7.5.1 (2026-02-05)ΒΆ
Note
7.5.1 is available on π PyPI and π GitHub.
Add new
alignedtable format with single-space column separators and no borders.Fix parallel mode support in Sphinx extension. Closes #1482.
7.5.0 (2026-02-03)ΒΆ
Note
7.5.0 is available on π PyPI and π GitHub.
Fix
TableFormat.GITHUBto render proper alignment hints in the separator row (:---,:---:,---:).Move auto-lock time from 8:43 to 4:43.
Set cooldown period via the
pyproject.toml.Add Download link to project metadata.
Include license file in package.
Replace deprecated
codecov/test-results-actionbycodecov/codecov-action.Remove utilization workaround for
macos-15-intel.Bump requirement of
extra-platformsto 8.0.0.
7.4.0 (2025-12-08)ΒΆ
Note
7.4.0 is available on π PyPI and π GitHub.
Add cooldown period for dependabot and
uv.lockupdates.Uncap all dependencies.
Replace
tool.uvsection bybuild-system.Merge all label jobs into a single one.
Unlock a CPU core stuck at 100% utilization on
macos-15-intel.
7.3.0 (2025-12-01)ΒΆ
Note
7.3.0 is available on π PyPI and π GitHub.
Add
click:sourcedirective as an alias toclick:exampledirective in Sphinx extension.Flag
click:exampledirective as deprecated in favor ofclick:source.Add support for nested GitHub alerts.
Fix fetching version when the CLI is implemented as a standalone script and not as a package module.
7.2.0 (2025-11-26)ΒΆ
Note
7.2.0 is available on π PyPI and π GitHub.
Add support for auto-conversion of GitHub alerts into MyST admonitions in Sphinx extension.
Rename
click-extrademo CLI toclick-extra-demoto avoid confusion with the package name.Run tests on
ubuntu-slimGitHub Actions runner.Run docs update job on
ubuntu-slimrunner.
7.1.0 (2025-11-21)ΒΆ
Note
7.1.0 is available on π PyPI and π GitHub.
Add support for aliases in
EnumChoicetype.Register pre-configured
render_table()utility in the context whentable_formatis set, in the same spirit asprint_table().
7.0.1 (2025-11-18)ΒΆ
Note
7.0.1 is available on π PyPI and π GitHub.
Restore support for
@extra_command,@extra_groupand@extra_version_option, but mark them as deprecated.
7.0.0 (2025-11-18)ΒΆ
Note
7.0.0 is available on π PyPI and π GitHub.
Allow parent directories search for configuration files. Adds
search_parentsargument on@config_file. Closes #651.Allow fine-tuning of configuration file format pattern matching. Replaces
formatsargument on@config_filebyfile_format_patterns.Adds
search_pattern_flagsandfile_pattern_flagsarguments on@config_fileto allow user to tweak pattern matching behavior.Use
|as separator for multiple file patterns instead of{,}syntax. Replaceglob.BRACEbyglob.SPLITfor search pattern flags. Forceglob.SPLITfor file pattern flags.Remove
glob.IGNORECASEflag to make case-sensitivity determined by the underlying platform at runtime.Force
glob.NODIRfor search pattern flags to speed up search.Rename
click_extra.config.Formatsenum toclick_extra.config.ConfigFormat. Expose it at the rootclick_extramodule.Eat our own dog food: add a
click-extraCLI to run self-tests.Override base decorators and classes with Click Extraβs own variants:
@commandnow points to what was@extra_command.@groupnow points to what was@extra_group.Optionclass now points toclick_extra.Option, which is a subclass ofcloup.Option.Argumentclass now points toclick_extra.Argument, which is a subclass ofcloup.Argument.@optionnow instantiatesclick_extra.Optionby default.@argumentnow instantiatesclick_extra.Argumentby default.@version_optionnow points to what was@extra_version_option.Now if you want to use the previous aliases to Clickβs and Cloupβs originals, import them directly from
clickorcloupinstead ofclick_extra, which makes origination clearer.
Remove
@extra_command,@extra_groupand@extra_version_option.Remove
no_redefinedargument inclick_extra.pytest.command_decorators()method.Validates that classes passed to the
clsparameter of decorators are subclasses of the expected base classes.Normalize the default value of
EnumChoiceparameters to their string choice representation in help screens.Run tests on Python
3.14tand3.15tfree-threaded variants.
6.2.0 (2025-11-04)ΒΆ
Note
6.2.0 is available on π PyPI and π GitHub.
Add new
EnumChoicetype for fine-tunable Enum-based choices. ExposeEnumChoiceandChoiceSourceat the rootclick_extramodule.Relax dependencies to support Python 3.10. Closes #1385.
Re-introduce
tomlidependency for Python 3.10 users.Skip tests on intermediate Python versions (
3.11,3.12and3.13) to reduce CI load.
6.1.0 (2025-10-29)ΒΆ
Note
6.1.0 is available on π PyPI and π GitHub.
Add support for JSON5, JSONC and HJSON configuration files.
YAML and XML configuration support is now optional. You need to install the
click_extra[yaml]andclick_extra[xml]extra dependency groups to enable it.Add new
@lazy_groupdecorator andLazyGroupclass to create groups that only load their subcommands when invoked. Closes #1332.Move all custom types to
click_extra._typesmodule.Avoid importing all types at runtime to reduce startup time.
Upgrade tests runs from
macos-13tomacos-15-intel, and frommacos-15tomacos-26.Use
astral-sh/setup-uvaction to installuv.
6.0.3 (2025-10-13)ΒΆ
Note
6.0.3 is available on π PyPI and π GitHub.
Fix
regex_fullmatch_line_by_lineto accept compiled regex patterns as well as string patterns.
6.0.2 (2025-10-11)ΒΆ
Note
6.0.2 is available on π PyPI and π GitHub.
Add a new
regex_fullmatch_line_by_lineutility to compare a wall of text against a regex, line by line, and raise a customRegexLineMismatchexception on the first mismatch.
6.0.1 (2025-10-08)ΒΆ
Note
6.0.1 is available on π PyPI and π GitHub.
Fix
@config_optionto acceptPathobjects as default value. Closes #1356.Add official support of Python 3.14.
Run tests on Python 3.15-dev.
6.0.0 (2025-09-25)ΒΆ
Note
6.0.0 is available on π PyPI and π GitHub.
Add new variables for version string template:
{git_repo_path},{git_branch},{git_long_hash},{git_short_hash}and{git_date}.Add a new
--no-configoption on@extra_commandand@extra_groupto disable configuration files. Closes #750.Add
--table-formatoption by default on@extra_commandand@extra_group.Let
--table-formatand--no-coloraffect the rendering of--show-paramstable.Swap
ClassandSpec.columns in--show-paramsoutput.Remove the
-Cshort option associated with--config.Remove the
-tshort option associated with--table-format.Classify table formats into two categories: markup formats and plain-text formats.
Rename all table format identifiers to use dashes instead of underscores:
double_gridβdouble-griddouble_outlineβdouble-outlinefancy_gridβfancy-gridfancy_outlineβfancy-outlineheavy_gridβheavy-gridheavy_outlineβheavy-outlinelatex_booktabsβlatex-booktabslatex_longtableβlatex-longtablelatex_rawβlatex-rawmixed_gridβmixed-gridmixed_outlineβmixed-outlinerounded_gridβrounded-gridrounded_outlineβrounded-outlinesimple_gridβsimple-gridsimple_outlineβsimple-outline
Fix display in
--show-paramsfor parameters sharing the same name.Fix detection in the
--versionoption of the module in which the userβs CLI is implemented.Rename
click_extra.tabulatenamespace toclick_extra.table.Expose
click._utils.UNSETandclick.logging.LogLevelat the rootclick_extramodule.Replace unmaintained
mergedeepdependency bydeepmerge.Remove maximum capped version of all dependencies (relax all
~=specifiers to>=). This gives more freedom to downstream and upstream packagers. Document each minimal version choice.Add unit tests for Sphinx extension.
Render GitHub-Flavored Markdown admonitions in Sphinx.
5.1.1 (2025-08-24)ΒΆ
Note
5.1.1 is available on π PyPI and π GitHub.
Relax Click dependency to account for yanked release. Closes #1307.
5.1.0 (2025-08-03)ΒΆ
Note
5.1.0 is available on π PyPI and π GitHub.
Add support for MyST Markdown syntax for
click:exampleandclick:runSphinx directives.Add support for all
code-blockoptions toclick:exampleandclick:run::linenos:,:lineno-start:,:emphasize-lines:,:force:,:caption:,:name:,:class:and:dedent:.Add new
:show-source:/:hide-source:,:show-results:/:hide-results:and:language:options toclick:exampleandclick:run. Closes #719.Support non-string choices in colored help screens. Closes #1284.
Replace
LOG_LEVELSmapping withLogLevelenum.Remove
DEFAULT_LEVEL_NAMEconstants.Fix rendering of default values in
--show-paramsoutput.Fix reconciliation of flagsβ environment variables.
Force requirement on
cloup >= 3.0.7.Be more informative when error is found in
click:exampleandclick:runSphinx directives by displaying the path of the original document and the line number of the error.
5.0.2 (2025-05-31)ΒΆ
Note
5.0.2 is available on π PyPI and π GitHub.
Set
ExtraCommanddefaultprog_nameto CLIβsnameto avoid it to be namedpython -m <module_name>if invoked out of a module.Tweak exit code rendering of CLI runs.
5.0.1 (2025-05-28)ΒΆ
Note
5.0.1 is available on π PyPI and π GitHub.
Fix highlighting of deprecated messages.
Use ASCII characters instead of unicode for prompt rendering in messages.
5.0.0 (2025-05-13)ΒΆ
Note
5.0.0 is available on π PyPI and π GitHub.
Upgrade to Click 8.2.0.
Add support for custom deprecated messages on commands and parameters.
Remove
ExtraOption.get_help_default()and rely on newOption.get_help_extra().Remove dependency on
pallets-sphinx-themes.Drop supports for Python 3.10.
Add
windows-11-armto the test matrix.Remove tests on
ubuntu-22.04-arm,ubuntu-22.04andwindows-2022to keep matrix small.
4.15.0 (2025-03-05)ΒΆ
Note
4.15.0 is available on π PyPI and π GitHub.
Regroup all envronment variables-related code.
Rename
extend_envvars()tomerge_envvar_ids()and allow it to merge arbitrary-nested structures. Normalize names to uppercase on Windows.Rename
normalize_envvar()toclean_envvar_id().Rename
all_envvars()toparam_envvar_ids().Rename
auto_envvar()toparam_auto_envvar_id().Remove unused
normalizeparameter onall_envvars().Add missing line returns in
render_cli_run().Prefix all types with capital-
T.
4.14.2 (2025-02-23)ΒΆ
Note
4.14.2 is available on π PyPI and π GitHub.
Extract rendering part of the
print_cli_run()helper torender_cli_run().Remove unused
click_extra.testing.run_cmd.Relax requirement on
extra-platforms.Add tests on
windows-2025. Remove tests onwindows-2019.
4.14.1 (2025-02-02)ΒΆ
Note
4.14.1 is available on π PyPI and π GitHub.
Fix upload of Python package to GitHub release on tagging.
4.14.0 (2025-02-02)ΒΆ
Note
4.14.0 is available on π PyPI and π GitHub.
Add a new
--verboseoption on@extra_commandand@extra_groupto increase the verbosity level for each additional repetition.Add new
@verbose_optionpre-configured decorator.Reassign the short
-voption from--verbosityto--verbose.Improve logging documentation.
Align
ExtraStreamHandlerbehavior tologging.StreamHandler.Move
stream_handler_classandformatter_classarguments fromnew_extra_loggertoextraBasicConfig.Add new
file_handler_classargument toextraBasicConfig.Fix upload of Python package to GitHub release on tagging.
Remove dependency on
pytest-cases.
4.13.2 (2025-01-28)ΒΆ
Note
4.13.2 is available on π PyPI and π GitHub.
Re-release to fix Github publishing.
Reactivates some color tests on Windows.
4.13.1 (2025-01-28)ΒΆ
Note
4.13.1 is available on π PyPI and π GitHub.
Re-release to fix Github publishing.
4.13.0 (2025-01-28)ΒΆ
Note
4.13.0 is available on π PyPI and π GitHub.
Revamps logging helpers and aligns them with Pythonβs
loggingmodule.Remove
extra_basic_config.Adds new
extraBasicConfig, and aligns it with PythonβsbasicConfig.Replace
ExtraLogFormatterwithExtraFormatter.Replace
ExtraLogHandlerwithExtraStreamHandler.Add new
new_extra_loggerhelper.Rewrite the logging documentation with all use-cases and custom configuration examples. Closes #989.
Removes old platforms page from documentation.
4.12.0 (2025-01-20)ΒΆ
Note
4.12.0 is available on π PyPI and π GitHub.
Remove Click Extraβs own implementation of
HelpOptionclass now that fixes have reached Clickβs upstream.Redefine
@help_optiondecorator to default to--help/-hoptions.Add more logging examples in documentation.
Add tests on
ubuntu-24.04-armandubuntu-22.04-arm.Use
uvto install specific versions of Python.
4.11.7 (2024-12-01)ΒΆ
Note
4.11.7 is available on π PyPI and π GitHub.
Remove support for comments in JSON configuration files. Remove dependency on unmaintained
commentjson. Closesclick-extra#1152.
4.11.6 (2024-11-29)ΒΆ
Note
4.11.6 is available on π PyPI and π GitHub.
Make
--timeroption eager so it can jumps the queue of processing order.Fix configuration of help option generated by the
help_option_namescontext setting. Closesmail-deduplicate#762.Fix eagerness of help option generated by
help_option_names. Refsclick#2811.Display generated help option in
--show-paramsresults.Force UTF-8 encoding everywhere.
4.11.5 (2024-11-18)ΒΆ
Note
4.11.5 is available on π PyPI and π GitHub.
Allow
replace_content()utility method to replace any content found after the start tag.
4.11.4 (2024-11-14)ΒΆ
Note
4.11.4 is available on π PyPI and π GitHub.
Ignore hidden options when coloring help screen.
4.11.3 (2024-11-12)ΒΆ
Note
4.11.3 is available on π PyPI and π GitHub.
Aligns dependencies.
4.11.2 (2024-11-11)ΒΆ
Note
4.11.2 is available on π PyPI and π GitHub.
Aligns dependencies.
4.11.1 (2024-10-27)ΒΆ
Note
4.11.1 is available on π PyPI and π GitHub.
Fix tests against development version of Click.
4.11.0 (2024-10-08)ΒΆ
Note
4.11.0 is available on π PyPI and π GitHub.
Add support for Python 3.13.
Drop supports for Python 3.9.
Run tests on Python 3.14-dev.
Add tests on
ubuntu-24.04. Remove tests onubuntu-20.04.Upgrade tests from
macos-14tomacos-15.
4.10.0 (2024-09-05)ΒΆ
Note
4.10.0 is available on π PyPI and π GitHub.
Move all platform detection utilities to its own standalone Extra Platforms project.
Add dependency on
extra-platforms.
4.9.0 (2024-07-25)ΒΆ
Note
4.9.0 is available on π PyPI and π GitHub.
Switch from Poetry to
uv.Drop support for Python 3.8.
Mark Python 3.13-dev tests as stable.
Remove dependency on
regex.
4.8.3 (2024-05-25)ΒΆ
Note
4.8.3 is available on π PyPI and π GitHub.
Fix string interpolation in log message.
4.8.2 (2024-05-25)ΒΆ
Note
4.8.2 is available on π PyPI and π GitHub.
Do not raise error if package version cannot be fetched.
4.8.1 (2024-05-23)ΒΆ
Note
4.8.1 is available on π PyPI and π GitHub.
Do not fail on
docs_updateimport ifpygmentsis not installed.
4.8.0 (2024-05-23)ΒΆ
Note
4.8.0 is available on π PyPI and π GitHub.
Slim down package by moving unit tests out of the main package.
Allow reuse of Pytest fixures and marks by other packages.
Move dependencies extending
pygments,sphinxandpytestinto optional extra dependencies. Closes #836.Split
devdependency groups into optionaltest,typinganddocsgroups.Remove direct dependency on
mypy.Allow running tests with Python 3.8 and 3.9 on
macos-14runners.
4.7.5 (2024-04-05)ΒΆ
Note
4.7.5 is available on π PyPI and π GitHub.
Remove bypass of
cloup.Colorre-import.
4.7.4 (2024-02-23)ΒΆ
Note
4.7.4 is available on π PyPI and π GitHub.
Allow standalone
--versionoption to output its debug messages.Force closing of context before exiting CLIs to provoque callback calls and prevent state leaks.
Run tests on
macos-14. Remove tests onmacos-12.
4.7.3 (2024-01-07)ΒΆ
Note
4.7.3 is available on π PyPI and π GitHub.
Run tests on Python 3.13-dev branch.
4.7.2 (2023-11-08)ΒΆ
Note
4.7.2 is available on π PyPI and π GitHub.
Run tests on released Python 3.12 version.
4.7.1 (2023-09-29)ΒΆ
Note
4.7.1 is available on π PyPI and π GitHub.
Distinguish between parameter type and Python type in
--show-paramsoutput.Recognize custom parameter type as string-based. Closes #721.
Rely on
bump-my-versionto update citation file metadata.
4.7.0 (2023-09-04)ΒΆ
Note
4.7.0 is available on π PyPI and π GitHub.
Switch to format string style for version template.
Add new variables for version string template:
{module},{module_name},{module_file},{module_version},{package_version}and{exec_name}.Remove support for Click-specific
%(prog)and%(package)variables in version string.Print all versions string variables in debug mode.
4.6.5 (2023-09-01)ΒΆ
Note
4.6.5 is available on π PyPI and π GitHub.
Highlight required label and value range in option description. Closes #748.
4.6.4 (2023-08-23)ΒΆ
Note
4.6.4 is available on π PyPI and π GitHub.
Fix collection of subcommand parameters in
--show-paramsoutput. Closes #725.Set
%(package_name)in--versionto file name for CLI that are standalone scripts and not packaged. Fix #729.Allow standalone scripts to define a local
__version__variable to set the%(version)element in--versionoutput.Allow building of documentation with Sphinx 7.
Run tests on
macos-13. Remove tests onmacos-11.Ignore unstable tests on upcoming Click
8.2.x/mainbranch.
4.6.3 (2023-07-16)ΒΆ
Note
4.6.3 is available on π PyPI and π GitHub.
Forces
ExtraContextto properly close itself before exiting the program, to trigger all callbacks.
4.6.2 (2023-07-15)ΒΆ
Note
4.6.2 is available on π PyPI and π GitHub.
Remove workaround for Cloup handling of
command_classdefault on custom groups.Force
@extra_groupto produce sub-groups of the same class.
4.6.1 (2023-07-13)ΒΆ
Note
4.6.1 is available on π PyPI and π GitHub.
Inspect in
--versionthe whole execution stack to find the package in which the userβs CLI is implemented.
4.6.0 (2023-07-12)ΒΆ
Note
4.6.0 is available on π PyPI and π GitHub.
Keep the promise of drop-in replacement for
@version_optionwhich is now a proxy to Clickβs original.Rename the colored, enhanced
--versionoption to@extra_version_optionfor its decorator, andExtraVersionOptionfor its class.Activate colors on
@extra_commandand@extra_groupby default, even if stripped of all their default parameters. Closes #534 and #543.Expose location and content of userβs configuration file in the Contextβs
metaproperty. Closes #673.Render specs of hidden parameters in
--show-paramsoutput. Fixes #689.Swap
ExposedandAllowed in conf?columns in--show-paramsoutput.Add a
hiddencolumn to--show-paramsoutput. Refs #689.
4.5.0 (2023-07-06)ΒΆ
Note
4.5.0 is available on π PyPI and π GitHub.
Expose verbosity level name, table format ID and CLI start timestamp in the Contextβs
metaproperty.Refactor
VersionOption. Introduce internal caching.Expose version string elements in the Contextβs
metaproperty. Closes #325.Remove
print_env_infooption fromVersionOptionclass andversion_optiondecorators.Add new
%(env_info)element. Default value is the same as what the removedprint_env_infoproduced (i.e. a JSON dump of the environment).Allow
%(env_info)value to be set by user on--version.Rename in version string formatting the
%(prog)element to%(prog_name), and%(package)to%(package_name).Detect Click-specific
%(prog)and%(package)and raise a deprecated warning.Do not print environment info in
--versionby default. Change default message from%(prog)s, version %(version)s\n%(env_info)to%(prog_name)s, version %(version)s.Automaticcaly augment version string with environment info in
DEBUGlog level.Expose
click_extra.search_paramsutility.
4.4.0 (2023-06-16)ΒΆ
Note
4.4.0 is available on π PyPI and π GitHub.
Add a
reduce()utility to reduce a collection ofGroupandPlatformto a minimal set.Remove
@destructiveand@non_destructivepytest markers.Rename the
exclude_paramsargument ofParamStructureandConfigOptiontoexcluded_params.Fix over-styling of usage heading in help screen.
Move
bump-my-versionconfiguration topyproject.toml.Remove
bump2versionfrom dev dependencies, and let the external workflows install it.Remove workaround for
pallets-sphinx-themesβs outdated reference to oldclickβs Python 2 compatibility hack.
4.3.0 (2023-06-02)ΒΆ
Note
4.3.0 is available on π PyPI and π GitHub.
Colorize envvars and default values in
--show-paramsoption.Keep
<stdout>and<stderr>streams independent inExtraCliRunner.Always collect
<stderr>output and never raise an exception.Add a new
<output>stream to simulate what the user sees in its terminal.Only mix
<stdout>and<stderr>in<output>whenmix_stderr=True.Print detailed CLI execution trace in logs.
Document inline tests in Sphinx CLI execution blocks.
Improve Pygments ANSI formatter and lexers documentation.
Document usage of
pygmentizecommand line.Regroup all parameter-related code.
Regroup all testing and CLI execution utilities.
Activate zoom on big Mermaid graphs.
4.2.0 (2023-05-24)ΒΆ
Note
4.2.0 is available on π PyPI and π GitHub.
Add support for dedicated styling of environment variables, defaults, command aliases, aliases punctuation, subcommands and deprecated tag in help screen.
Update default colors of help screen to improve readability.
Change default style of critical log messagesβ prefix to bold red.
Document the full matrix of colors and styles.
Render bright variants of ANSI colors in documentation.
Dynamically patch the style provided to
AnsiHtmlFormatterto augment it with ANSI colors.Remove main dependency on
furo, make it a development dependency.Remove the custom
ansi-click-extra-furo-stylePygments style for Furo and itsAnsiClickExtraFuroStyleclass.
4.1.0 (2023-05-12)ΒΆ
Note
4.1.0 is available on π PyPI and π GitHub.
Add new global
show_envvaroption to display all environment variables in help screens.Global
show_choicessetting to show or hide choices when prompting a user for input.Populate the
Allowed in conf?column in--show-paramsoutput if there is a--configoption in the command.Print all modified loggers and their levels in
DEBUGmode.Directly download Pygments source code from GitHub to check for candidates for ANSI-coloring in unittests.
Test continuously against Click and Cloup development version. Closes #525.
Move
click_extra.commands.TimerOptiontoclick_extra.timer.TimerOption.
4.0.0 (2023-05-08)ΒΆ
Note
4.0.0 is available on π PyPI and π GitHub.
Drop support for Python 3.7.
Add a simple
--telemetry/--no-telemetryoption flag which respects theDO_NOT_TRACKenvironment variable.Add new
populate_auto_envvarsparameter to@extra_command/@extra_groupdecorators to allow auto-generated environment variables to be displayed in help screens.Display all environment variables in
--show-paramsoutput, including those auto-generated by the way of theauto_envvar_prefixcontext parameter.Allow user to override hard-coded context defaults on
@extra_command/@extra_group.Change default log level from
INFOtoWARNINGto aligns with Pythonβs global root logger.Force resetting of log level on
--verbosityβs context closing to the hard-coded default.Use a dedicated
click_extralogger for all internal messages, instead of sending them to the user-defined one.Aligns
click_extralogger level to--verbosityoption level.Set default logger of
--verbosityto Pythonβs globalrootlogger, instead a local wrapped logger. Closes #318.Allow user to provide a string as the default logger to
--verbositythat will be used to fetch the global logger singleton of that name. Closes #318.Only colorize the
%(levelname)sfield during log record formatting, not the:message separator.Prefix
INFO-level log message withinfo:prefix by default.Raise an error if multiple
--versionoptions are defined in the same command. Closes #317.Remove dependency on
click-log.Remove supports for
Pallets-Sphinx-Themes < 2.1.0.Force closing of the context before stopping the execution flow, to make sure all callbacks are called.
Fix rendering of GitHub-Flavored Markdown tables in canonical format.
3.10.0 (2023-04-04)ΒΆ
Note
3.10.0 is available on π PyPI and π GitHub.
Colorize help screens of subcommands spawned out of an
@extra_group. Closes #479.Remove deprecated
click_extra.platform.
3.9.0 (2023-04-01)ΒΆ
Note
3.9.0 is available on π PyPI and π GitHub.
Allow
@color_option,@command,@config_option,@extra_command,@extra_group,@group,@help_option,@show_params_option,@table_format_option,@timer_option,@verbosity_optionand@version_optiondecorators to be used without parenthesis.Fix wrapping of Cloup decorators by
@extra_group/@extra_commanddecorators. Closes #489.Add main dependency on
furowhich is referenced in ANSI-aware Pygment styles.Move all documentation assets to
assetssubfolder.
3.8.3 (2023-02-25)ΒΆ
Note
3.8.3 is available on π PyPI and π GitHub.
Let
--versionoption output system details when run onpython >= 3.10.
3.8.2 (2023-02-20)ΒΆ
Note
3.8.2 is available on π PyPI and π GitHub.
Fix overlapping detection of
linuxandwsl2platforms.Renders platform groups in documentation in Mermaid format instead of Graphviz. Add new dependency on
sphinxcontrib-mermaid, removed dependency ongraphviz.Produce dependency graph in Mermaid instead of Graphviz.
3.8.1 (2023-02-15)ΒΆ
Note
3.8.1 is available on π PyPI and π GitHub.
Code, comments and documentation style change to conform to new QA workflows based on
ruff.
3.8.0 (2023-01-25)ΒΆ
Note
3.8.0 is available on π PyPI and π GitHub.
Rename
click_extra.platformtoclick_extra.platforms.Refactor platforms and their groups with dataclasses instead of string IDs.
Add new
LINUX_LAYERS,ALL_WINDOWS,BSD_WITHOUT_MACOS,EXTRA_GROUPSandALL_GROUPSgroups.Add new dependency on
graphviz.Activate Graphviz extension in Sphinx.
Let Sphinx produce the dependency graph from Graphviz file.
Produce platform graph dynamically.
Rename
docs.pytodocs_update.pyand allow this module to be called directly.
3.7.0 (2023-01-03)ΒΆ
Note
3.7.0 is available on π PyPI and π GitHub.
Add support for new ANSI-capable lexers:
ansi-gap-consoleandansi-gap-repl.Auto-update table of supported lexers in documentation.
Add test to search in Pygmentsβ test data for REPL/terminal-like lexers, as candidates for ANSI-coloring.
Depends on
importlib_metadataforPython < 3.8.
3.6.0 (2022-12-28)ΒΆ
Note
3.6.0 is available on π PyPI and π GitHub.
Add new constants to group platforms by family.
Add heuristics to recognize new platforms: IBM AIX, Cygwin, FreeBSD, GNU/Hurd, NetBSD, OpenBSD, Oracle Solaris, SunOS, Windows Subsystem for Linux v1 and v2.
Document version option usage.
Split version code to its own file and tests.
Run tests on Python
3.12-dev.
3.5.0 (2022-12-09)ΒΆ
Note
3.5.0 is available on π PyPI and π GitHub.
Print fully qualified class of options in
--show-paramsoutput.Add new columns in
--show-paramstable to show option specifications, configuration exclusion and exposed attribute.Rename
ignored_paramsargument toexclude_paramson theConfigOptionclass.Blocking parameters from configuration files now requires the fully qualified ID. Which adds support for selectively blocking parameters at any subcommand level.
3.4.1 (2022-12-08)ΒΆ
Note
3.4.1 is available on π PyPI and π GitHub.
3.4.0 (2022-12-01)ΒΆ
Note
3.4.0 is available on π PyPI and π GitHub.
Streamline setup of Sphinx extensions.
Document
click:exampleandclick:runSphinx extensions.
3.3.4 (2022-11-14)ΒΆ
Note
3.3.4 is available on π PyPI and π GitHub.
Fix some types.
3.3.3 (2022-11-14)ΒΆ
Note
3.3.3 is available on π PyPI and π GitHub.
Fix release workflow.
3.3.2 (2022-11-14)ΒΆ
Note
3.3.2 is available on π GitHub.
Warning
3.3.2 is not available on π PyPI.
Remove use of deprecated
::set-outputdirectives and replace them by environment files.
3.3.1 (2022-11-11)ΒΆ
Note
3.3.1 is available on π PyPI and π GitHub.
Keep a copy of the table format ID in the context when set.
3.3.0 (2022-11-11)ΒΆ
Note
3.3.0 is available on π PyPI and π GitHub.
Use
tabulatedependency instead ofcli-helpersfor all the table rendering utilities.Remove dependency on
cli-helpers.Re-implement locally the
verticaltable rendering format fromcli-helpers.Add new table rendering formats:
asciidoc,fancy_outline,heavy_grid,heavy_outline,latex_longtable,latex_raw,mixed_grid,mixed_outline,presto,pretty,unsafehtmlandyoutrack.Remove
minimaltable rendering formats, which was an alias ofplain.Add new
csv-excel,csv-excel-tabandcsv-unixformats based on Python defaults dialects.Remove
csv-tabrendering format.Make
csvformat an alias ofcsv-excel.Deactivate number alignment and extra-spacing in table rendering by default.
Remove tests on Pypy. Nobody asked for it and I need to speed up tests.
3.2.5 (2022-09-30)ΒΆ
Note
3.2.5 is available on π PyPI and π GitHub.
Fix argumentβs property getter in
--show-params.Remove GitHub edit link workaround in documentation.
3.2.4 (2022-09-27)ΒΆ
Note
3.2.4 is available on π PyPI and π GitHub.
Add citation file.
Fix type casting.
3.2.3 (2022-09-27)ΒΆ
Note
3.2.3 is available on π PyPI and π GitHub.
Increase type coverage.
3.2.2 (2022-09-26)ΒΆ
Note
3.2.2 is available on π PyPI and π GitHub.
Fix bad typing import.
3.2.1 (2022-09-26)ΒΆ
Note
3.2.1 is available on π PyPI and π GitHub.
Move some command utility from test machinery to
runsubmodule.
3.2.0 (2022-09-25)ΒΆ
Note
3.2.0 is available on π PyPI and π GitHub.
New
--show-paramsoption to debug parameters defaults, values, environment variables and provenance.Rename
ignored_optionstoignored_paramsonConfigOption.Highlight commandβs metavars, default values and deprecated flag in help.
Finer highlighting of options, subcommands and their aliases in help screens.
Fix highlight of dynamic metavars and secondary option in help screen.
New custom
ExtraContextwhich allows populatingmetaat instantiation.Use the
Formatsenum to encode for default configuration file extensions.Re-introduce
*.ymlas a possible extension for YAML files.
3.1.0 (2022-09-20)ΒΆ
Note
3.1.0 is available on π PyPI and π GitHub.
Add support for pattern matching to search for configuration file.
Add a new
formatsoption to specify which dialects the configuration file is written in, regardless of its name or file extension. Closes #197.Set default configuration folder according each OS preferred location. Closes #211.
Add
roamingandforce_posixoption to influence default application directory of configuration file.Add a
ignored_optionsparameter to the configuration file instead of hard-coding them.Add dependency on
wcmatch.Remove tests on deprecated
ubuntu-18.04.Document preset options overriding. Closes #232.
Document configuration option pattern matching and default folder. Closes #197 and #211.
3.0.1 (2022-08-07)ΒΆ
Note
3.0.1 is available on π PyPI and π GitHub.
Fix wrong dependency bump on
pytest-covproduced by major release.
3.0.0 (2022-08-07)ΒΆ
Note
3.0.0 is available on π PyPI and π GitHub.
Make default extra features optional, so
click_extracan act as a drop-in replacement forclickandcloup(closes #173):Rename
click_extra.grouptoclick_extra.extra_group.Rename
click_extra.commandtoclick_extra.extra_command.Alias
click_extra.grouptocloup.group.Alias
click_extra.commandtocloup.group.
Use declarative
params=argument to set defaults options onextra_commandandextra_group.Move the implementation of options to classes.
Hard-copy
version_optioncode fromclickto allow for more flexibility. Addresses #176.All custom options inherits from
ExtraOptionclass.New
extra_option_at_endtoextra_commandto force position of all extra options (on by default).Replace theme styles inherited from
click-logby Python standardloggingmodule. Addsinfoand removesexceptionstyles.Add a tutorial in documentation.
Add support for
click:exampleandclick:rundirectives in documentation.Add ANSI session and console lexers for Pygments.
Add a Pygments filter to transform tokens into ANSI tokens.
Add custom Pygment style to render ANSI tokens in
furotheme.Add dependency on
pygments,pygments-ansi-colorandPallets-Sphinx-Themes.Allow translation of short help in extra options.
Add minimal type hints.
Pre-compute test matrix to allow for a subset of jobs to fail if flagged as unstable.
Run tests on
ubuntu-22.04andmacos-12.Remove tests on deprecated
macos-10.15.
2.1.3 (2022-07-08)ΒΆ
Note
2.1.3 is available on π PyPI and π GitHub.
Do not render
Nonecells in tables with<null>string.Disable workflow grouping and concurrency management.
2.1.2 (2022-06-27)ΒΆ
Note
2.1.2 is available on π PyPI and π GitHub.
Fix auto-mapping and recognition of all missing Click option types in config module. Closes #170.
Fix CI workflow grouping.
2.1.1 (2022-05-22)ΒΆ
Note
2.1.1 is available on π PyPI and π GitHub.
Fix compatibility with
cloup >= 0.14.0.Group workflow jobs so new commits cancels in-progress execution triggered by previous commits.
Run tests on early Python 3.11 releases.
2.1.0 (2022-04-22)ΒΆ
Note
2.1.0 is available on π PyPI and π GitHub.
Add a
highlightutility to style substrings.Add
regexdependency.
2.0.2 (2022-04-14)ΒΆ
Note
2.0.2 is available on π PyPI and π GitHub.
Fix and unittest derivation of configuration template and types from CLI options.
Fix dependency requirements induced by overzealous automatic post-release version bump workflow.
Replace
sphinx_tabsbysphinx-design.Add edit link to documentation pages.
2.0.1 (2022-04-13)ΒΆ
Note
2.0.1 is available on π PyPI and π GitHub.
Fix mapping of file arguments in configuration files.
Fix Sphinx documentation update and publishing.
Run tests on
pypy-3.7.
2.0.0 (2022-04-11)ΒΆ
Note
2.0.0 is available on π PyPI and π GitHub.
Add support for XML configuration file. Closes #122.
Add strict mode to fail on unrecognized configuration options.
Support the
NO_COLORenvironment variable convention fromno-color.org.Recognize a subset of
(FORCE_)(CLI)(NO_)COLOR(S)(_FORCE)variations as color-sensitive environment variables.Print version and environment details in logs at the
DEBUGlevel.Add Sphinx-based documentation.
Add a logo.
Outsource documentation publishing to external workflow.
1.9.0 (2022-04-08)ΒΆ
Note
1.9.0 is available on π PyPI and π GitHub.
Add supports for
.iniconfiguration files.Add supports for commented JSON configuration files.
Fix identification of TOML and JSON configuration files.
Fix leak of local environment variable update on
extend_env()usage.Ignore
helpboolean in configuration files.Add new dependency on
mergedeep.
1.8.0 (2022-04-03)ΒΆ
Note
1.8.0 is available on π PyPI and π GitHub.
Split the
print_cli_outputmethod to expose the simplerformat_cliutility.
1.7.0 (2022-03-31)ΒΆ
Note
1.7.0 is available on π PyPI and π GitHub.
Refactor global logging management.
Remove
click_extra.run.runand rebase all run utilities aroundsubprocess.run.Use the
tomllibfrom the standard library starting with Python 3.11.
1.6.4 (2022-03-04)ΒΆ
Note
1.6.4 is available on π PyPI and π GitHub.
Fix extension of default environment variables.
1.6.3 (2022-03-04)ΒΆ
Note
1.6.3 is available on π PyPI and π GitHub.
Add support for environment variables to run utilities.
1.6.2 (2022-03-03)ΒΆ
Note
1.6.2 is available on π PyPI and π GitHub.
Temporarily skip displaying environment details in
--versionoption results forpython >= 3.10.Reactivate all tests on Python 3.10.
1.6.1 (2022-03-02)ΒΆ
Note
1.6.1 is available on π PyPI and π GitHub.
Expose some
cloupversions ofclickutilities at the root ofclick_extra.
1.6.0 (2022-03-02)ΒΆ
Note
1.6.0 is available on π PyPI and π GitHub.
Allow
click_extrato be imported as a drop-in replacement forclick.Share the same set of default options between
click_extra.commandandclick_extra.group.Document default help screen comparison between simple
clickCLI and enhancedclick-extraCLI.
1.5.0 (2022-02-21)ΒΆ
Note
1.5.0 is available on π PyPI and π GitHub.
Add support for JSON configuration file.
Search all supported formats in default location if configuration file not provided.
Print configuration file default location in help screens.
1.4.1 (2022-02-13)ΒΆ
Note
1.4.1 is available on π PyPI and π GitHub.
Add new external workflow to modernize Python code.
Use external workflow suite to manage changelog and build & publish packages on PyPi on release.
Use external workflow to label sponsored issues and PRs.
Replace local workflow by external one to label issues and PRs.
Reuse externnal workflow to produce dependency graph.
Remove dev dependencies on
check-wheel-contents,graphviz,pipdeptreeandtwine.
1.4.0 (2022-01-08)ΒΆ
Note
1.4.0 is available on π PyPI and π GitHub.
Allow downloading of a remote config URL.
Add new dependencies on
requestsandpytest-httpserver.Fix inference of config file top-level section name.
Document usage of
click_extra.config.config_option.Use external workflows for GitHub actions.
Automate version and changelog management.
1.3.0 (2021-11-28)ΒΆ
Note
1.3.0 is available on π PyPI and π GitHub.
Add support for YAML configuration file. Closes #13.
Auto-detect configuration file on loading.
Add
pyyamldependency.
1.2.2 (2021-11-04)ΒΆ
Note
1.2.2 is available on π PyPI and π GitHub.
Evaluate format option dynamically at use to let third-party register new rendering formats.
1.2.1 (2021-11-04)ΒΆ
Note
1.2.1 is available on π PyPI and π GitHub.
Fix creation of post-release version bump PR on tagging.
1.2.0 (2021-11-03)ΒΆ
Note
1.2.0 is available on π PyPI and π GitHub.
Extend
cli-helper.TabularOutputFormatterwith new formats:simple_grid,rounded_grid,double_grid,outline,simple_outline,rounded_outlineanddouble_outline. Address astanin/python-tabulate#151.Add a new
--table-format/-toption to select table format rendering mode.Add new dependency on
cli-helperandtabulate.Automate post-release version bump.
1.1.1 (2021-11-01)ΒΆ
Note
1.1.1 is available on π PyPI and π GitHub.
Fix printing of additional non-grouped default options in help screen.
1.1.0 (2021-10-28)ΒΆ
Note
1.1.0 is available on π PyPI and π GitHub.
Add a
--config/-Coption to load CLI configuration from a TOML file.
1.0.1 (2021-10-27)ΒΆ
Note
1.0.1 is available on π PyPI and π GitHub.
Re-release previous version with fixed dependency.
1.0.0 (2021-10-27)ΒΆ
Note
1.0.0 is available on π GitHub.
Warning
1.0.0 is not available on π PyPI.
Add colorization of options, choices and metavars in help screens.
Add
--color/--no-coloroption flag (aliased to--ansi/--no-ansi).Add colored
--versionoption.Add colored
--verbosityoption and logs.Add dependency on
click-log.--time/--no-timeflag to measure duration of command execution.Add platform recognition utilities.
Add new conditional markers for
pytest:@skip_{linux,macos,windows},@unless_{linux,macos,windows},@destructiveand@non_destructive.
0.0.1 (2021-10-18)ΒΆ
Note
0.0.1 is the first version available on π PyPI and π GitHub.
Initial public release.