ChangelogΒΆ
8.2.1.dev0 (unreleased)ΒΆ
Warning
This version is not released yet and is under active development.
8.2.0 (2026-07-01)ΒΆ
Add a
--export-config FORMAToption to every@commandand@group: it renders the resolved configuration on<stdout>in any writable format (toml,yaml,json,json5,jsonc,hjson,xml), then exits. AddsExportConfigOption,@export_config_optionandSERIALIZABLE_FORMATSto the public API.Add
--theme=auto: it selects thedarkorlightpalette from the terminal background, detected fromCLITHEME,COLORFGBGor a live OSC 11 query; the default staysdark. Addsresolve_backgroundandquery_osc_backgroundtoclick_extra.color,resolve_auto_themeandAUTO_THEMEtoclick_extra.theme.Add
run_lanes(func, lanes)andresolve_jobs(ctx, count)toclick_extra.execution: run each lane serially while distinct lanes run concurrently, sized by--jobs; expose the worker-count policy shared withrun_jobs. Aserial_at_debugkeyword collapses both fan-outs to sequential atDEBUGverbosity.Add the always-on
matrixSphinx directive, rendering a packageβs release compatibility matrix from its git tags, for the Python interpreter ({matrix} python) or a dependency ({matrix} <distribution>) axis; a comment-marker form renders the embedded table on GitHub too.Add the
click-extra refresh-directivescommand (wrappingclick_extra.sphinx.matrix.update_matrix_blocks) to regenerate the tables embedded in{matrix}directive blocks and<!-- matrix β¦ -->marker regions; its--checkmode flags stale tables in CI.Publish
format_cli_promptinclick_extra.testing(was the private_format_cli_prompt): render a themed, copy-pasteable prompt simulating a CLI invocation.Fix Carapace dynamic completion: an optionβs value or a subcommand argument with a custom
shell_completenow resolves through the generated spec, instead of returning empty or root-level candidates.Fix
EnumChoiceshell completion on Click 8.4.0: completion candidates are now normalized, so they match the optionβs accepted values instead of appearing as raw uppercase enum names.Fix
run_jobsblocking on Ctrl+C during parallel execution: an interrupt now drops queued items and returns immediately, instead of waiting for every in-flight task to finish.Add a documentation page on Typer compatibility, explaining why click-extra cannot be combined with Typer and how to get the same options natively.
8.1.4 (2026-06-27)ΒΆ
Note
8.1.4 is available on π PyPI and π GitHub.
Skip the
EnumChoiceshell-completion case-folding test on Click 8.3.
8.1.3 (2026-06-27)ΒΆ
Note
8.1.3 is available on π PyPI and π GitHub.
Mark test as network-dependent.
8.1.2 (2026-06-27)ΒΆ
Note
8.1.2 is available on π PyPI and π GitHub.
The
runnerpytest fixture now pinsHOMEand its platform equivalents inside its isolated filesystem, making configuration-file discovery independent of the ambient environment.The Sphinx, MkDocs and Carapace tests now self-skip when their optional dependencies are missing, so downstream packagers no longer need to
--ignorethem.
8.1.1 (2026-06-24)ΒΆ
Note
8.1.1 is available on π PyPI and π GitHub.
Fix
multipleand variadic (nargs=-1) options typed withEnumChoice: their tuple default was stringified as a whole (str((MyEnum.FOO,))) instead of per member, so the default tripped ClickβsValue must be an iterablecheck when the option was left unset.Fix
decorator_factoryleaking options across reuses of a pre-instantiated decorator: applying the samecommand()orgroup()decorator to several functions accumulated duplicate parameters, because Click extended its sharedparamslist in place on each use.
8.1.0 (2026-06-24)ΒΆ
Note
8.1.0 is available on π PyPI and π GitHub.
Breaking: Rename the
test-plansubcommand totest-suite, its--plan-file/--plan-envvaroptions to--suite-file/--suite-envvar, its[tool.<cli>.test-plan]config section to[tool.<cli>.test-suite], theclick_extra.test_planmodule toclick_extra.test_suite, and theTestPlanConfig/parse_test_plan/run_test_plan/DEFAULT_TEST_PLANAPI toTestSuiteConfig/parse_test_suite/run_test_suite/DEFAULT_TEST_SUITE. TheCLITestCaseclass and the[[cases]]file structure keep their names.Breaking: Replace the test-suite configβs
inlinefield with a nativecasesarray under[tool.<cli>.test-suite.cases](or setfileto a suite path). Adds thecasesfield toTestSuiteConfigand thecases_from_datahelper.Breaking:
ClickExtraConfig,TestSuiteConfig, andPrebakeConfigare no longer re-exported from the top-levelclick_extranamespace; import them fromclick_extra.config.Add a Carapace completion exporter: the
click_extra.carapacemodule serializes a Click command tree to carapace-spec YAML for native shell completion, behind a newcarapaceextra. Theto_carapace_spec,dump_carapace_spec,write_carapace_specandinstall_carapace_specAPI answersclick#3188.Add a
--carapacemode to thewrapcommand:click-extra wrap --carapace SCRIPTprints the target CLIβs spec, and--installwrites it into Carapaceβs user spec directory. Mutually exclusive with--manand--show-params.The
wrapcommand now accepts a local project directory, reading its console-script entry point frompyproject.tomlorsetup.cfgso a checked-out project can be wrapped without installing it first.Add the
@sort_by_optiondecorator for the--sort-bytable option, composing with option groups and constraints; it acceptsColumnSpecdefinitions and acolumns=registry so one column tuple drives both--columnsand--sort-by. Closesclick-extra#1777.Decorators built by
decorator_factorycarry proper signatures: their option classβs constructor surfaces inhelp(), the REPL and autodoc, and overloaded type hints let basedpyright, pyright and mypy infer the produced command or decorated callback. Closesclick-extra#1781.@version_optionaccepts an explicit version string as its first positional argument (@version_option("1.2.3")), for drop-in compatibility with Click.A test-suite file may now be in any list-capable config format detected from its extension: TOML and JSON (built-in), plus YAML, JSON5, JSONC and Hjson (with their extras). Adds the
load_test_suitehelper andSUITE_FORMATSconstant.Accept a bare integer
timeoutin a test-suite case, coercing it to a float instead of rejecting it.Default the test-suite config file to
./tests/cli-test-suite.toml, which parses with the built-intomlliband so needs no optional extra.Add an
allextra that pulls in every optional feature at once.Centralize config format reading, serialization, and detection in
click_extra.configwith the newserialize_content,read_file, andformat_from_pathhelpers, joining the existingparse_content.Add
iter_subcommandsandmake_resilient_contexttoclick_extra.parametersfor enumerating a groupβs visible subcommands and building a parse-free introspection context.Add the
CONFIG_PATH_METADATA_KEYandNORMALIZE_KEYS_METADATA_KEYnamed constants for the schema field-metadata keys, alongside the existingEXTENSION_METADATA_KEY.Man pages now render optional-value options like
--coloras--color[=auto|always|never]and drop the spurious value metavar on repeatable count options like-v/--verbose.When introspection (
--man,--show-params,--carapace) cannot find a Click command in the resolved module, the error now explains that an entry point importing its command lazily must be addressed withmodule:functionnotation.Unify the βmissing optional dependencyβ error messages behind a shared
missing_extra_messagehelper, pointing at the canonicalpip install click-extra[<extra>]install target.Restrict pytest collection to the
testsfolder and switch toimportlibimport mode, fixingimport file mismatcherrors when building from a packaged source tree alongside an installed copy. Closesclick-extra#1779.Show the same configuration across all eight supported formats (TOML, YAML, JSON, JSON5, JSONC, Hjson, INI, XML) in a tabbed block in the configuration docs.
Silence ambiguous cross-reference warnings in the Sphinx documentation build for the
ColumnSpec,ConfigFormat,ConfigValidatorandLogLevelclasses re-exported at the package root.
8.0.1 (2026-06-22)ΒΆ
Note
8.0.1 is available on π PyPI and π GitHub.
Redo a proper release.
8.0.0 (2026-06-22)ΒΆ
Note
8.0.0 is available on π PyPI.
Warning
8.0.0 is not available on π GitHub.
Breaking: Drop the
Extraprefix from public classes (ExtraCommandtoCommand,ExtraGrouptoGroup,ExtraContexttoContext,ExtraVersionOptiontoVersionOption, and eight more);ExtraOptionkeeps its prefix.Breaking: Remove the deprecated
extra_command,extra_groupandextra_version_optionaliases; usecommand,groupandversion_optioninstead.Breaking:
VersionOptionand@version_optionnow takefields={...}andstyles={...}mappings instead of per-field value and*_styleparameters;message/message_styleare unchanged.Breaking: Replace the
--color/--no-colorboolean with the GNU tri-state--color[=WHEN](auto,always,never), defaulting toauto; a bare--colormeansalways.Breaking: Remove the
--ansi/--no-ansialiases of--color/--no-color.Breaking: Remove the
show-paramsandmansubcommands; useclick-extra wrap --show-paramsandclick-extra wrap --maninstead.Breaking: Rename the
click_extra.wrapmodule toclick_extra.cli_wrapper; update anyfrom click_extra.wrap import ...accordingly.Breaking: Reorganize the configuration subsystem into a
click_extra.configpackage withschema,formats, andoptionsubmodules; public symbols stay importable fromclick_extra.config.Breaking: Split
click_extra.colorizeintoclick_extra.highlight(help-screen highlighting) andclick_extra.color(color-mode resolution); root re-exports unchanged, update deeper imports.Breaking: Split the theme palette and HTML renderer into
click_extra.theme_docsand the spinner preset catalog intoclick_extra.spinner_presets; root re-exports unchanged, update deeper imports.Breaking: Remove
print_sorted_table;SortByOptionnow bakes the sort key intoctx.print_tablefor use with or without--sort-by.Breaking: Remove dead
ParamStructureinternals: the unusedflatten_tree_dict/_flatten_tree_dict_genmethods, the__init__, and the redundantSEPattribute (use the module-levelclick_extra.parameters.PARAM_PATH_SEP).Breaking: Remove the unused
click_extra.styling.cascade_fieldshelper.Add a
Spinnerwidget for long blocking work as a context manager or decorator, with 90 presets inSPINNERSand TTY auto-disable; includes aspinnerdemo subcommand on theclick-extraCLI.Add
click_extra.test_planand aclick-extra test-plansubcommand for YAML-driven black-box subprocess testing of any CLI; YAML parsing needs theyamlextra.Add
--progress/--no-progress(ProgressOption) andclick_extra.progressbar, a drop-in forclick.progressbarthat hides under--no-progressor--accessible.Add
-q/--quiet(QuietOption), the counterpart to-v/--verbose: each-qlowers the log level towardCRITICAL, the two cancelling out.Under
--accessible,click_extra.clearis a no-op andclick_extra.echo_via_pagerstreams to stdout instead of spawning a pager.Add
no_color_option/NoColorOption, a standalone--no-colorflag for plainclick.commandCLIs.Add
{author},{license},{git_distance}, and{git_dirty}version-string template variables; git ones support pre-baking viaclick-extra prebake all.VersionOptiongit fields fall back to.git_archival.jsonwhen running from agit archiveexport without a.gitdirectory.--jobs(JobsOption) now acceptsautoandmaxkeywords in addition to an integer, with shell completion;run_jobs(func, items)executes items against the resolved count.Add
make_schema_callable(schema), a callable that coerces a raw config dict into a validated dataclass.Add
require_sibling_paramandlast_paramhelpers toclick_extra.parametersfor locating sibling and typed parameters at call time.Re-type
pass_contextfor the enhancedContext, so@pass_context def cmd(ctx: Context)type-checks.Add
click_extra.prebakehosting build-time version pre-baking helpers (prebake_version,prebake_dunder,discover_package_init_files); still importable fromclick_extra.version.Speed up
import click_extraby deferring heavy imports, cutting startup time by roughly a third.Drop
requestsas a runtime dependency; the configuration-from-URL loader now usesurllib.request.click-extra wraphonors the tri-state color resolution, colorizing the wrapped CLI underautoonly when the output is a terminal.--colorand--no-colorcolorize eager--helpand--versionscreens regardless of their position on the command line. Closesclick-extra#137.--color[=WHEN]acceptsyes/force,no/none, andtty/if-ttyas hidden aliases; configuration files also accept native booleans (true/false).Under
auto, adumborunknownTERMstrips ANSI color even on a terminal; an explicit--colororFORCE_COLORoverrides.Branded 24-bit themes (
dracula,monokai,nord,solarized_dark) downsample to 256 colors when the terminal does not advertise truecolor.click-extra wrap --show-paramsnow reports the targetβs environment variables and resolves parameter values and their source from arguments passed after SCRIPT.Lower the Click floor from
8.4.1to8.3.1, restoring support for Click8.3.1and later.The
click:runandclick:treeSphinx directives now capture at the file-descriptor level by default (Click8.4+); setclick_extra_run_capture = "sys"to opt out.Tolerate a missing
click_extra/themes.tomldata file: log a warning and fall back to the no-color theme.Fix
from click_extra import *raisingAttributeErrordue toVersionOptionmissing from the bound namespace.Fix the dim bracket styling of an
IntRangeoptionβs[x>=N]constraint leaking across the next option in colored help.Fix inconsistent highlighting of the
--jobs [auto|max|INTEGER]metavar in colored help.Fix the
assert_output_regextesting fixture raisingTypeErroron a failed match under pytest 9.Fix
context_settings={"show_choices": True}being ignored on aCommandorGroup.Fix
click-extra manandwrite_manpagesauthor and version resolution when the import name differs from the installed distribution name.--validate-confignow raisesRuntimeErrorinstead ofTypeErrorwhen used on a command with no sibling--configoption, matching--no-config.Fix broken documentation links for the GNU
--colorreference,click.ParameterAPI anchor, and parameters page cross-references.
7.20.1 (2026-06-18)ΒΆ
Note
7.20.1 is available on π PyPI and π GitHub.
Fix the MkDocs plugin and Sphinx directives leaving Rich-based CLIs (such as
rich-click) colorless in rendered documentation.
7.20.0 (2026-06-17)ΒΆ
Note
7.20.0 is available on π PyPI and π GitHub.
Add
MultiChoicetoclick_extra.types: a ClickParamTypefor comma-separated multi-pick from a fixed set of values, the pick-many counterpart toclick.Choice.Extend the
--show-paramstable with seven new columns (Is flag,Flag value,Is bool flag,Multiple,Nargs,Prompt,Confirmation prompt).Add the
--columnsoption (ColumnsOption,@columns_option) for SQLSELECT-style column selection on both--show-paramsand the standaloneclick-extra show-paramssubcommand.Add a
click:treeSphinx directive that walks a Click command tree and expands into a summary table plus one{click:run}--helpblock per command. MyST-only.Fix
click-extra show-paramsignoring the top-level--table-formatoption and rendering its default as the enum name instead of the kebab-case ID.Fix
click-extra show-paramsandclick-extra manresolving auto-generated environment variables as empty; theenvvarscolumn now matches what Click reads at runtime.Fix the MkDocs plugin stripping ANSI escape codes but rendering no colors: it now generates the ANSI Pygments stylesheet and registers it through
extra_css, so the-Ansi-*classes it emits are styled.Drop duplicate and dead CSS classes from ANSI HTML rendering: compound tokens like
Token.Ansi.Bold.Cyannow emit-Ansi -Ansi-Bold -Ansi-Cyaninstead of repeating-Ansi-Boldand adding an unstyled-Ansi-Bold-Cyan.
7.19.0 (2026-06-12)ΒΆ
Note
7.19.0 is available on π PyPI and π GitHub.
Add an
--output-dir DIRoption toclick-extra man, writing one.1file per command intoDIRinstead of printing a single page to stdout.Add a
click_extra_manpagesSphinx config value and aclick-extra-manpagesdirective to emit Click command trees as roff.1files (and browser-viewable.htmlsiblings whenmandocorgroffis available) on every HTML build.Fix
ExtraVersionOption.package_versionresolving toNonewhen the top-level module name differs from the installed distribution name (PILvsPillow); passpackage_nameexplicitly to disambiguate.
7.18.0 (2026-05-29)ΒΆ
Note
7.18.0 is available on π PyPI and π GitHub.
Breaking: Consolidate
--time,--jobs, and-0/--zero-exitinto a singleclick_extra.executionmodule; theclick_extra.jobsandclick_extra.timersubmodules are removed (their decorators and classes remain importable from theclick_extraroot).Breaking: Unify configuration-loading errors under
ValidationError. Unknown CLI-parameter keys (strict=True) and unknown schema fields (schema_strict=True) now exit with code 1 instead of raising an uncaughtValueError; catch theSystemExitor use--validate-config/run_config_validation()to inspect errors.Add a
--manoption to@extra_commandand@extra_group(and the@man_optiondecorator) that prints the commandβs man page to stdout and exits.Add an
--accessibleoption (and@accessible_optiondecorator,AccessibleOptionclass) to@extra_commandand@extra_group; it or theACCESSIBLEenvironment variable is equivalent to--no-color --table-format plainfor screen readers. Explicit--coloror--table-formatkeeps precedence.Add a
mansubcommand to theclick-extraCLI:click-extra man SCRIPT [SUBCOMMAND]...renders any external Click CLIβs man page. Bothmanandshow-paramsnow also accept.pyfile targets.Add the
click_extra.man_pagemodule to generate man pages programmatically:render_manpage(),render_manpages(), andwrite_manpages().Add a
-0/--zero-exitoption (@zero_exit_optiondecorator,ZeroExitOptionclass) that records intent inctx.metaunder theZERO_EXITkey for downstream code to read.Honor the standard
POSIXLY_CORRECTenvironment variable: when present,ExtraContextforcesallow_interspersed_argstoFalse, stopping option parsing at the first positional argument.Add
run_config_validation()and theValidationReportdataclass toclick_extra.config, running the CLI-parameter check, schema build, and every registeredConfigValidatorin one pass;collect_alltoggles between gathering all errors or stopping at the first.Fix
schema_strict=Truewrongly rejecting a configuration field marked withEXTENSION_METADATA_KEYwhen its Python type is not a mapping.
7.17.2 (2026-05-26)ΒΆ
Note
7.17.2 is available on π PyPI and π GitHub.
Add Mermaid diagrams throughout the documentation for configuration source selection and precedence, class layering and default-option bundles,
--color/--no-colorenablement,{version}/{exec_name}fallback chains, thedecorator_factoryguardrail, and environment-variable id resolution.
7.17.1 (2026-05-25)ΒΆ
Note
7.17.1 is available on π GitHub.
Warning
7.17.1 is not available on π PyPI.
Fix the Nuitka standalone binaries aborting at startup with
FileNotFoundError: themes.tomlby bundlingclick_extra/themes.tomlvia a new[tool.nuitka]include-package-datasetting.
7.17.0 (2026-05-25)ΒΆ
Note
7.17.0 is available on π GitHub.
Warning
7.17.0 is not available on π PyPI.
Breaking: Bump the Click floor to
8.4.1, required for correct parameter-source detection in eager callbacks (ColorOptionprecedence,ConfigOptionbranching,ShowParamsOptionβsSourcecolumn).Breaking: Bump the
requestsfloor to2.34; it now ships inline type annotations, so thetypes-requestsstub package is removed from thetypingdependency group.All built-in themes now follow the man-pages(7) font convention: literal tokens (commands, aliases, option flags, choice values) render bold and replaceable tokens (metavars, argument names) render italic. Declared by the new
LITERAL_STYLES/REPLACEABLE_STYLESfrozensets inclick_extra.theme.Add a colorless
manpagebuilt-in theme that renders the bold-literal / italic-replaceable convention with no color, selectable via--theme manpage.HelpCommandnow raisesclick.NoSuchCommandinstead ofclick.UsageErrorfor an unknown subcommand, so the user sees did-you-mean suggestions.Remove the
HelpExtraFormatter.write_usageoverride, no longer needed now that Click measures visible width when wrapping.Drop the explicit
type=UNPROCESSEDfromNoConfigOption.__init__, now auto-detected by Click forflag_valuewith non-basic types.Bump the
myst-parserfloor in thedocsdependency group to5.1; doc builds now use its native"alert"syntax extension instead of the in-tree converter.Drop the
coloramatest-matrix variation.
7.16.1 (2026-05-15)ΒΆ
Note
7.16.1 is available on π PyPI and π GitHub.
Fix
ConfigOptionleaking keys from an earlier--configinto later invocations of the same CLI in one process (Sphinx builds, test runners, REPLs).
7.16.0 (2026-05-14)ΒΆ
Note
7.16.0 is available on π PyPI and π GitHub.
Breaking: Remove the
click_extra.themesmodule and the per-theme constantsDARK,DRACULA,LIGHT,MONOKAI,NORD,SOLARIZED_DARK; useBUILTIN_THEMES["<name>"]instead.Breaking: Replace the
default_thememodule attribute withget_default_theme()/set_default_theme(theme)accessors that always observe the current value.Breaking: Remove the pre-rendered
OKandKOconstants; use the rawOK_GLYPH/KO_GLYPHstrings styled at the call site so they follow the active theme.Breaking:
theme_registryno longer accepts aCallable[[], HelpExtraTheme]value; onlyHelpExtraThemeinstances are valid entries.Breaking: Move telemetry storage to
ctx.meta[context.TELEMETRY]; consumers readingctx.telemetrymust switch tocontext.get(ctx, context.TELEMETRY).Add four branded built-in themes:
solarized_dark,dracula,nord, andmonokai. The full catalog now ships asclick_extra/themes.toml;BUILTIN_THEMESis the single public{name: HelpExtraTheme}dict.Add a
ThemeChoiceclick.ParamType(no longer aclick.Choicesubclass) whose choices read the live registry, so themes loaded from--configappear as valid--themechoices and in the--helpmetavar.Add the
click_extra.stylingmodule with a feature-richStylesubclass (hex constructor,a | bcomposition,cascade,to_dict/from_dict,to_css,from_ansi, WCAGcontrast_ratio), exposed asfrom click_extra import Style.Add
to_dict()/from_dict()/cascade(base)toHelpExtraThemefor sparse theme overrides layered on a full palette.Read user-defined theme palettes from the config file: every
[<cli>.themes.<name>]table is parsed and available to--theme, cascading on the matching built-in or registered as a stand-alone theme, without mutating the global registry.Add an app-defined configuration-validation hook: new
ConfigValidator,ValidationError, andEXTENSION_METADATA_KEYtypes, registered via aconfig_validators=kwarg onExtraCommand/ExtraGroup(and@command/@group/@config_option).--validate-confignow collects every error before exiting.Flip the
AnsiColorLexer.true_colordefault toTrue: 24-bit RGB sequences render as inlinestyle="color: #rrggbb"spans by default. Restore the old behavior withAnsiColorLexer(true_color=False).Add the
:emphasize-result-lines:option to theclick:runandpython:runSphinx directives to highlight lines in the captured output.Fix
pyproject.tomlCWD discovery skipping files lacking a[tool.<cli_name>]section, so an unrelatedpyproject.tomlno longer shadows the userβs app-dir config.Fix
ExtraVerbosity.set_level()changing the logger level during help rendering and shell completion, and fixreset_loggersdouble-registration when both--verbosityand-vare passed.Inner bracket-field slots (
envvar,default,required,range_label) now fall back to thebracketslotβs style, so a minimal palette colours the whole bracket field uniformly.Deprecate
click_extra.sphinx.alertsnow thatmyst-parser5.1.0ships a native"alert"extension; the regex converter is registered only on oldermyst-parser.
7.15.0 (2026-05-03)ΒΆ
Note
7.15.0 is available on π PyPI and π GitHub.
Breaking: Code importing theme symbols from
click_extra.colorizemust switch toclick_extra.theme(thefrom click_extra import HelpExtraThemepath is unaffected).Breaking:
from click_extra.commands import ExtraContextandfrom click_extra import ctx_metamust becomefrom click_extra.context import ExtraContextandfrom click_extra import context(thefrom click_extra import ExtraContextpath is unaffected).Breaking: Disable the
click:*andpython:*Sphinx directives by default, since they execute arbitrary Python at build time. Re-enable withclick_extra_enable_exec_directives = Trueinconf.py.Add opt-in 24-bit true-color rendering to the ANSI Pygments stack via
true_color=TrueonAnsiColorLexer,AnsiFilter, or any session lexer;AnsiHtmlFormatterrenders the preserved RGB tokens as inlinestyle="color: #rrggbb"spans. Default 256-color quantization is unchanged.Add a
click_extra.thememodule centralizing all theme machinery (HelpExtraTheme,ThemeOption,theme_option,theme_registry,register_theme(), β¦). Every command now accepts--theme [dark|light], extensible viaregister_theme(); the active theme is read withget_current_theme().Add a
click_extra.contextmodule consolidatingExtraContextand a documented registry of everyctx.metakey, withget()/set()helpers. Replacesclick_extra.ctx_meta.Add
python:source,python:run,python:render,python:render-myst, andpython:render-rstSphinx directives under a newpythondomain, mirroringclick:source/click:runfor arbitrary Python; therenderfamily turns captured stdout into live document content.Tighten the Click floor to
8.3.1, the minimum shipping the parameter-name fix this depends on.
7.14.1 (2026-04-26)ΒΆ
Note
7.14.1 is available on π PyPI and π GitHub.
Relax the Click floor back to
8.1by replacingParameterSourceordered comparisons inConfigOptionwith set membership.Relax the tabulate floor back to
0.9by aliasingcolon_gridtogridwhen tabulate< 0.10is installed.
7.14.0 (2026-04-24)ΒΆ
Note
7.14.0 is available on π PyPI and π GitHub.
Add a
wrapsubcommand:click-extra wrap SCRIPT [ARGS]...applies help colorization to any installed Click CLI without modifying it. Supports--themeand[tool.click-extra.wrap.<script>]config sections; unknown subcommands fall through towrapautomatically.runis kept as an alias.Add a
show-paramssubcommand:click-extra show-params SCRIPT [SUBCOMMAND]...introspects any external Click CLIβs parameters as a table, honoring all--table-formatrenderings and drilling into nested subcommands.Add
get_param_spec()andformat_param_row()as public API inclick_extra.parameters, the shared spec extractor and cell renderer for both--show-paramsandshow-params.Make
ParamStructure.get_param_type()a@staticmethodthat returnsstrfor unrecognised custom types instead of raising.Replace the
render-matrixsubcommand with individualcolors,styles,palette,8color, andgradientsubcommands under a Demo section, and remove theclick-extra-demoentry point.Bump the Click floor to
8.3.3.
7.13.0 (2026-04-16)ΒΆ
Note
7.13.0 is available on π PyPI and π GitHub.
Add a MkDocs plugin for ANSI color rendering in code blocks: install with
pip install click-extra[mkdocs], then addclick-extrato yourmkdocs.ymlplugins list.Automatically patch
mkdocs-clickcode blocks to use theansi-outputlexer when the plugin is enabled, so CLI help text with ANSI codes renders with colors.Fix API reference sections rendering as raw RST instead of formatted documentation by wrapping
automoduleandautoclasstreedirectives ineval-rstblocks.Add OSC 8 hyperlink support to
AnsiColorLexerandAnsiHtmlFormatter, rendering terminal hyperlinks as clickable HTML<a>tags; other OSC sequences are now fully stripped.
7.12.0 (2026-04-16)ΒΆ
Note
7.12.0 is available on π PyPI and π GitHub.
Breaking: change
render-matrix --matrix=<choice>to a positional argumentrender-matrix <choice>. Addpalette,8color, andgradientchoices.Add
JobsOptionand the@jobs_optiondecorator for parallel execution control. Defaults to available CPUs minus one, and warns when the count is clamped.Improve error messages for single-dash multi-character tokens like
-dbgwrong: report the full token with close-match suggestions instead ofNo such option: -d.Replace the
pygments-ansi-colordependency with an inline ANSI SGR parser, adding italic, underline, reverse video, strikethrough, and 24-bit RGB colors. The token namespace moves fromToken.Color.*/Token.C.*toToken.Ansi.*and CSS classes from.-Color-*/.-C-*to.-Ansi-*.Rename
lexer_maptoLEXER_MAP.Fix
render-matrix colorsstyling background color column headers as foreground colors.
7.11.0 (2026-04-13)ΒΆ
Note
7.11.0 is available on π PyPI and π GitHub.
Add
serialize_data()andprint_data()to serialize arbitrary nested Python data to JSON, HJSON, TOML, YAML, and XML, complementingrender_table()/print_table().Add a
sort_keyparameter torender_table()andprint_table()for pre-render row sorting.Catch
ImportErrorfrom missing optional dependencies inprint_table()andprint_data(), emitting a clean one-line error instead of a traceback.print_data()takes apackageparameter to customize install instructions.Add
print_sorted_table()andSortByOption, which generates a--sort-byCLI option from column definitions and wiresctx.print_tableto the sorted variant.Add an auto-injected
helpsubcommand toExtraGroup:mycli help [subcommand]shows help and--search termsearches all subcommands. Disable withhelp_command=False.Expose the
HelpKeywordsdataclass andcollect_keywords()(renamed from_collect_keywords()) as public API for extending help-screen highlighting.Add
extra_keywordsandexcluded_keywordsparameters toExtraCommandandExtraGroupto inject or suppress highlighted strings. Both accept aHelpKeywordsinstance.Highlight manually-added deprecation markers like
(Deprecated)or(deprecated: reason)alongside Click-native(DEPRECATED)markers.Style individual choices inside their own metavar (
[json|csv|xml]) as structural elements, always styled even when free-text highlighting is suppressed.Propagate
excluded_keywordsfrom parent groups to subcommands.Fix command aliases rendered by Cloup in parenthetical groups (like
backup (save, freeze)) not being highlighted in help screens.Fix choice cross-reference highlighting bleeding into bracket fields when a default value contained a choice keyword (like
outlineinrounded-outline).Fix parent-context choice collection lowercasing case-insensitive choices that define a custom metavar.
7.10.1 (2026-04-07)ΒΆ
Note
7.10.1 is available on π PyPI and π GitHub.
Fix the
pipeandgithubtable formats to produce mdformat-compatible separator rows, preventing a formatting cycle between tabulate and mdformat.Compute the test matrix dynamically via
repomatic metadata(OS, Python, and stability axes), with custom Click/Cloup version axes via[tool.repomatic.test-matrix]. PRs get a reduced matrix.Replace
{eval-rst}-wrappedautomoduleandautoclasstreedirectives with native MyST syntax in all docs.
7.10.0 (2026-04-02)ΒΆ
Note
7.10.0 is available on π PyPI and π GitHub.
Highlight parent group names in subcommand help text even when interleaved with options.
Add
range_label,required, andargumenttheme slots toHelpExtraTheme, styling argument metavars separately from option metavars.Add a
cross_ref_highlightflag toHelpExtraTheme. Set toFalseto disable free-text highlighting of options, choices, arguments, metavars, and CLI names; structural elements stay styled.Add type-aware flattening, field metadata, and nested dataclass support to
config_schema.flatten_config_keys()andnormalize_config_keys()accept anopaque_keysparameter, and fields supportclick_extra.config_pathandclick_extra.normalize_keysmetadata.Fix help-text highlighting of hyphenated option names (like
--table-format), argument names colliding with option keywords, and substring matches in compound keywords (likeoutlineinsiderounded-outline).Fix enum coloring to use
normalize_choice()so the metavar strings match instead of raw enum member names.
7.9.0 (2026-03-31)ΒΆ
Note
7.9.0 is available on π PyPI and π GitHub.
Add a
flatten_config_keys()utility to flatten nested config dicts into a single level by joining keys with a separator.Flatten nested config dicts before dataclass field matching in
config_schema, so nested TOML sub-tables map to flat dataclass fields.Add a
schema_strictparameter toConfigOptionandExtraCommand/ExtraGroup: whenTrue, unknown config keys raiseValueErrorduring schema validation instead of being dropped.Auto-discover
pyproject.tomlby walking up from the working directory to the VCS root before falling back to the app config directory.Instantiate
config_schemadefaults when no config file is found, soget_tool_config()never returnsNonewhen a schema is configured.Forward
included_paramsfromExtraCommand/ExtraGrouptoConfigOption, letting@group(included_params=())disablemerge_default_mapwhen config keys are schema-only.Move
prebake_version(),prebake_dunder(), anddiscover_package_init_files()fromExtraVersionOptionstatic methods to module-level functions inclick_extra.version.Add a
git_tagtemplate field, resolved from a__git_tag__dunder orgit describe --tags --exact-match HEADat runtime.Add a
git_tag_shatemplate field, resolved from a__git_tag_sha__dunder with agitsubprocess fallback. Replaces the old__tag_sha__convention.Resolve git template fields (
git_branch,git_long_hash,git_short_hash,git_date) from pre-baked__<field>__dunders before falling back to subprocess calls, so compiled binaries can embed git metadata at build time.Add a
click-extra prebakeCLI withall,version, andfieldsubcommands to bake__version__and git fields. Field names auto-wrap with__...__, and targets are auto-discovered from[project.scripts].Add empty
__git_*__dunder placeholders toclick_extra/__init__.py.Pin image URLs in
readme.mdanddocs/tutorial.mdto the release tag at bump time, restoring them tomainon the next dev bump.
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 https://github.com/astanin/python-tabulate/issues/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.