Warning
This version is not released yet and is under active development.
- 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.
- Fix
test_default_pattern_roaming_force_posixtest failures whenXDG_CONFIG_HOMEis set. Closes {issue}1541.
- Add
ExtraVersionOption.prebake_version()static method to pre-bake__version__strings with Git hashes at compile time, complementing the runtimeversionproperty for Nuitka/PyInstaller binaries.
- Fix test failures when optional config format dependencies are not installed. Closes {issue}
1538.
- Add
_default_subcommandsreserved configuration key to auto-invoke subcommands when none are provided on the CLI. Closes {issue}1405. - Add
_prepend_subcommandsreserved configuration key to always prepend subcommands to every invocation (requireschain=True). Closes {issue}1405. - Add
--validate-configoption to validate configuration files. - Add
ConfigFormat.PYPROJECT_TOMLformat for[tool.*]section support inpyproject.toml. Closes {issue}1524. - Stop parent directory walk on inaccessible directories.
- Add
stop_atparameter to@config_optionto limit parent directory walking. Defaults toVCS. Closes {issue}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 {issue}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.
- Allow disabling of autodiscovery of configuration files by setting
default=NO_CONFIGon@config_option. Closes {issue}1495. - Implement
resolve_any_xrefinClickDomainto prevent MyST-Parser warning. Closes {issue}1502. - Fix subcommand conflict detection checking against root-level params instead of parent params. Closes {pr}
1286.
- Fix GitHub alerts converter mangling
list-tabledirective content. Closes {issue}1490. - Replace Dependabot by Renovate.
- Move
click_extra/docs_update.pytodocs/docs_update.py. - Add
pygments-ansi-colortodocsdependency group for lexer table generation.
- Add new
alignedtable format with single-space column separators and no borders. - Fix parallel mode support in Sphinx extension. Closes {issue}
1482.
- 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.
- 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.
- 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.
- 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.
- Add support for aliases in
EnumChoicetype. - Register pre-configured
render_table()utility in the context whentable_formatis set, in the same spirit asprint_table().
- Restore support for
@extra_command,@extra_groupand@extra_version_option, but mark them as deprecated.
- Allow parent directories search for configuration files. Adds
search_parentsargument on@config_file. Closes {issue}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.
- Add new
EnumChoicetype for fine-tunable Enum-based choices. ExposeEnumChoiceandChoiceSourceat the rootclick_extramodule. - Relax dependencies to support Python 3.10. Closes {issue}
1385. - Re-introduce
tomlidependency for Python 3.10 users. - Skip tests on intermediate Python versions (
3.11,3.12and3.13) to reduce CI load.
- 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 {issue}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.
- Fix
regex_fullmatch_line_by_lineto accept compiled regex patterns as well as string patterns.
- 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.
- Fix
@config_optionto acceptPathobjects as default value. Closes {issue}1356. - Add official support of Python 3.14.
- Run tests on Python 3.15-dev.
- 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 {issue}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.
- Relax Click dependency to account for yanked release. Closes {issue}
1307.
- 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 {issue}719. - Support non-string choices in colored help screens. Closes {issue}
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.
- 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.
- Fix highlighting of deprecated messages.
- Use ASCII characters instead of unicode for prompt rendering in messages.
- 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.
- 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.
- 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.
- Fix upload of Python package to GitHub release on tagging.
- 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.
- Re-release to fix Github publishing.
- Reactivates some color tests on Windows.
- Re-release to fix Github publishing.
- 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 {issue}
989. - Removes old platforms page from documentation.
- 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.
- Remove support for comments in JSON configuration files. Remove dependency on unmaintained
commentjson. Closesclick-extra#1152.
- 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.
- Allow
replace_content()utility method to replace any content found after the start tag.
- Ignore hidden options when coloring help screen.
- Aligns dependencies.
- Aligns dependencies.
- Fix tests against development version of Click.
- 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.
- Move all platform detection utilities to its own standalone Extra Platforms project.
- Add dependency on
extra-platforms.
- Switch from Poetry to
uv. - Drop support for Python 3.8.
- Mark Python 3.13-dev tests as stable.
- Remove dependency on
regex.
- Fix string interpolation in log message.
- Do not raise error if package version cannot be fetched.
- Do not fail on
docs_updateimport ifpygmentsis not installed.
- 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 {issue}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.
- Remove bypass of
cloup.Colorre-import.
- 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.
- Run tests on Python 3.13-dev branch.
- Run tests on released Python 3.12 version.
- Distinguish between parameter type and Python type in
--show-paramsoutput. - Recognize custom parameter type as string-based. Closes {issue}
721. - Rely on
bump-my-versionto update citation file metadata.
- 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.
- Highlight required label and value range in option description. Closes {issue}
748.
- Fix collection of subcommand parameters in
--show-paramsoutput. Closes {issue}725. - Set
%(package_name)in--versionto file name for CLI that are standalone scripts and not packaged. Fix {issue}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.
- Forces
ExtraContextto properly close itself before exiting the program, to trigger all callbacks.
- Remove workaround for Cloup handling of
command_classdefault on custom groups. - Force
@extra_groupto produce sub-groups of the same class.
- Inspect in
--versionthe whole execution stack to find the package in which the user's CLI is implemented.
- 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 {issue}534and {pr}543. - Expose location and content of user's configuration file in the Context's
metaproperty. Closes {issue}673. - Render specs of hidden parameters in
--show-paramsoutput. Fixes {issue}689. - Swap
ExposedandAllowed in conf?columns in--show-paramsoutput. - Add a
hiddencolumn to--show-paramsoutput. Refs {issue}689.
- 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 {issue}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.
- 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.
- 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.
- 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.
- 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 {issue}
525. - Move
click_extra.commands.TimerOptiontoclick_extra.timer.TimerOption.
- 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 {issue}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 {issue}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 {issue}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.
- Colorize help screens of subcommands spawned out of an
@extra_group. Closes {issue}479. - Remove deprecated
click_extra.platform.
- 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 {issue}489. - Add main dependency on
furowhich is referenced in ANSI-aware Pygment styles. - Move all documentation assets to
assetssubfolder.
- Let
--versionoption output system details when run onpython >= 3.10.
- 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.
- Code, comments and documentation style change to conform to new QA workflows based on
ruff.
- 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.
- 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.
- 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.
- 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.
- Fix highlighting of
+-prefixed options in help screens. Closes {issue}316. - Fix highlighting of hard-coded deprecated labels in option help.
- Document parameter introspection. Closes {issue}
319.
- Streamline setup of Sphinx extensions.
- Document
click:exampleandclick:runSphinx extensions.
- Fix some types.
- Fix release workflow.
Warning
3.3.2 is not available on 🐍 PyPI.
Note
3.3.2 is available on 🐙 GitHub.
- Remove use of deprecated
::set-outputdirectives and replace them by environment files.
- Keep a copy of the table format ID in the context when set.
- 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.
- Fix argument's property getter in
--show-params. - Remove GitHub edit link workaround in documentation.
- Add citation file.
- Fix type casting.
- Increase type coverage.
- Fix bad typing import.
- Move some command utility from test machinery to
runsubmodule.
- 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.
- 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 {issue}197. - Set default configuration folder according each OS preferred location. Closes {issue}
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 {issue}
232. - Document configuration option pattern matching and default folder. Closes {issue}
197and {issue}211.
- Fix wrong dependency bump on
pytest-covproduced by major release.
- Make default extra features optional, so
click_extracan act as a drop-in replacement forclickandcloup(closes {issue}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.
- Rename
- 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 {issue}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.
- Do not render
Nonecells in tables with<null>string. - Disable workflow grouping and concurrency management.
- Fix auto-mapping and recognition of all missing Click option types in config module. Closes {issue}
170. - Fix CI workflow grouping.
- 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.
- Add a
highlightutility to style substrings. - Add
regexdependency.
- 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.
- Fix mapping of file arguments in configuration files.
- Fix Sphinx documentation update and publishing.
- Run tests on
pypy-3.7.
- Add support for XML configuration file. Closes {issue}
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.
- 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.
- Split the
print_cli_outputmethod to expose the simplerformat_cliutility.
- 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.
- Fix extension of default environment variables.
- Add support for environment variables to run utilities.
- Temporarily skip displaying environment details in
--versionoption results forpython >= 3.10. - Reactivate all tests on Python 3.10.
- Expose some
cloupversions ofclickutilities at the root ofclick_extra.
- 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.
- 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.
- 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.
- 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.
- Add support for YAML configuration file. Closes #13.
- Auto-detect configuration file on loading.
- Add
pyyamldependency.
- Evaluate format option dynamically at use to let third-party register new rendering formats.
- Fix creation of post-release version bump PR on tagging.
- Extend
cli-helper.TabularOutputFormatterwith new formats:simple_grid,rounded_grid,double_grid,outline,simple_outline,rounded_outlineanddouble_outline. Address {issue}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.
- Fix printing of additional non-grouped default options in help screen.
- Add a
--config/-Coption to load CLI configuration from a TOML file.
- Re-release previous version with fixed dependency.
Warning
1.0.0 is not available on 🐍 PyPI.
Note
1.0.0 is available on 🐙 GitHub.
- 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.
- Initial public release.