ChangelogΒΆ

7.10.2.dev0 (unreleased)ΒΆ

Warning

This version is not released yet and is under active development.

7.10.1 (2026-04-07)ΒΆ

  • Fix pipe and github table formats to produce mdformat-compatible separator rows, preventing a formatting cycle between tabulate and mdformat.

  • Replace hardcoded test matrix with repomatic metadata-managed matrix; OS, Python, and stability axes are now computed dynamically, with custom Click/Cloup version axes via [tool.repomatic.test-matrix]. PRs get a reduced matrix to save CI minutes. Drops Python 3.15t (free-threaded), aligning with repomatic v6.10.0 defaults.

  • Replace {eval-rst}-wrapped automodule and autoclasstree directives 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, so ancestor command names are colored even when interleaved with options.

  • Add range_label, required, and argument theme slots to HelpExtraTheme. Argument metavars are now styled separately from option metavars.

  • Add cross_ref_highlight flag to HelpExtraTheme. Set to False to disable free-text highlighting of options, choices, arguments, metavars, and CLI names in descriptions and docstrings. Structural elements (bracket fields, deprecated messages, subcommand lists) are always styled.

  • Add type-aware flattening, field metadata, and nested dataclass support to config_schema. flatten_config_keys() and normalize_config_keys() accept an opaque_keys parameter to preserve data-keyed dicts. Fields support click_extra.config_path and click_extra.normalize_keys metadata. Nested dataclass fields are recursively instantiated with the same normalize/flatten/opaque logic.

  • Fix help text highlighting of hyphenated option names (e.g. --table-format split at the first hyphen), argument names (e.g. keys) colliding with option keywords, and substring matches in compound keywords (e.g. outline inside rounded-outline).

  • Fix enum coloring: use normalize_choice() to produce the exact strings shown in the metavar instead of raw enum member names.

7.9.0 (2026-03-31)ΒΆ

Note

7.9.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add 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 (e.g. [tool.myapp.sub-section]) map to flat dataclass fields (e.g. sub_section_key).

  • Add schema_strict parameter to ConfigOption and ExtraCommand/ExtraGroup: when True, unknown config keys raise ValueError during dataclass schema validation instead of being silently dropped.

  • Auto-discover pyproject.toml from the current working directory upward to the VCS root before falling back to the app config directory. Matches the discovery behavior of uv, ruff, and mypy. Only active during auto-discovery (not when --config is passed explicitly).

  • Instantiate config_schema defaults when no config file is found, so get_tool_config() never returns None when a schema is configured.

  • Forward included_params from ExtraCommand/ExtraGroup to ConfigOption. Allows @group(included_params=()) to disable merge_default_map when config keys are schema-only and would collide with subcommand names.

  • Move prebake_version(), prebake_dunder(), and discover_package_init_files() from ExtraVersionOption static methods to module-level functions in click_extra.version. Import them directly: from click_extra.version import prebake_version.

  • Add git_tag template field. Resolved from a __git_tag__ dunder or git describe --tags --exact-match HEAD at runtime. Returns the tag name if HEAD is at a tagged commit.

  • Add git_tag_sha template field. Resolved from a __git_tag_sha__ dunder on the CLI module, with a git subprocess fallback. Replaces the old __tag_sha__ convention.

  • Git template fields (git_branch, git_long_hash, git_short_hash, git_date) now check for pre-baked __<field>__ dunders on the CLI module before falling back to subprocess calls. Enables compiled binaries (Nuitka/PyInstaller) to embed git metadata at build time.

  • Add click-extra prebake CLI with three subcommands: prebake all bakes __version__ and all git fields in one pass, prebake version injects Git hashes into __version__, and prebake field replaces any empty dunder variable. Field names auto-wrap with __...__ (e.g. git_tag_sha becomes __git_tag_sha__). All subcommands auto-discover target files from [project.scripts].

  • Add empty __git_*__ dunder placeholders to click_extra/__init__.py for dogfooding the prebake system.

  • Pin image URLs in readme.md and docs/tutorial.md to the release tag at bump time, and restore them to main on the next dev bump.

7.8.0 (2026-03-09)ΒΆ

Note

7.8.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add config_schema parameter to ConfigOption and ExtraCommand/ExtraGroup for typed configuration access via dataclasses or custom callables.

  • Add fallback_sections parameter 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 RUF022 rule to let ruff enforce __all__ sorting.

  • Fix ruff 0.15.5 lint errors.

7.7.0 (2026-03-07)ΒΆ

Note

7.7.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add version_fields parameter to ExtraCommand and ExtraGroup. Forwards any ExtraVersionOption template 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 version parameter from ExtraCommand and ExtraGroup.

  • Add hjson, json, json5, jsonc, toml, xml and yaml table formats for --table-format.

  • Add TableFormat.is_markup property.

  • Strip ANSI color codes from markup table formats (csv, html, latex, rst, etc.) by default. Use --color to preserve them.

  • Add [toml] extra dependency group for TOML table output via tomlkit.

  • Emit native types (booleans, nulls, lists) in --show-params output for structured serialization formats (JSON, YAML, TOML, HJSON, XML).

  • Fix --show-params ignoring --table-format when 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 --time is actually requested.

  • Add click-extra entry point so uvx click-extra works out of the box. The click-extra-demo alias is kept for backward compatibility.

7.6.5 (2026-03-05)ΒΆ

Note

7.6.5 is available on 🐍 PyPI and πŸ™ GitHub.

  • Bump tabulate requirement from >=0.9 to >=0.10.

  • Add new colon-grid table format.

  • Replace custom github table renderer with tabulate’s pipe format. 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_version returning None in __main__ entry points by checking the parent package’s __version__.

  • Fix test plan for Nuitka-compiled binary.

  • Add @pytest.mark.once marker 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_posix test failures when XDG_CONFIG_HOME is 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 runtime version property 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_subcommands reserved configuration key to auto-invoke subcommands when none are provided on the CLI. Closes #1405.

  • Add _prepend_subcommands reserved configuration key to always prepend subcommands to every invocation (requires chain=True). Closes #1405.

  • Add --validate-config option to validate configuration files.

  • Add ConfigFormat.PYPROJECT_TOML format for [tool.*] section support in pyproject.toml. Closes #1524.

  • Stop parent directory walk on inaccessible directories.

  • Add stop_at parameter to @config_option to limit parent directory walking. Defaults to VCS. Closes #651.

  • Add VCS sentinel and VCS_DIRS constant for VCS root detection.

  • Resolve relative paths to absolute in parent_patterns before yielding.

  • Add included_params allowlist to ConfigOption and @config_option, the inverse of excluded_params. Closes #1362.

  • Add human-friendly display labels to ConfigFormat.

  • Switch back from SPLIT to BRACE flag for multi-format config file patterns. Fixes a bug where only the first format received the directory prefix with SPLIT.

  • Hard code icon workaround for Sphinx index entries.

  • Automatically append Git short hash as a PEP 440 local version identifier to .dev versions (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 LLM environment 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_CONFIG on @config_option. Closes #1495.

  • Implement resolve_any_xref in ClickDomain to 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-table directive content. Closes #1490.

  • Replace Dependabot by Renovate.

  • Move click_extra/docs_update.py to docs/docs_update.py.

  • Add pygments-ansi-color to docs dependency group for lexer table generation.

7.5.1 (2026-02-05)ΒΆ

Note

7.5.1 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add new aligned table 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.GITHUB to 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-action by codecov/codecov-action.

  • Remove utilization workaround for macos-15-intel.

  • Bump requirement of extra-platforms to 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.lock updates.

  • Uncap all dependencies.

  • Replace tool.uv section by build-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:source directive as an alias to click:example directive in Sphinx extension.

  • Flag click:example directive as deprecated in favor of click: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-extra demo CLI to click-extra-demo to avoid confusion with the package name.

  • Run tests on ubuntu-slim GitHub Actions runner.

  • Run docs update job on ubuntu-slim runner.

7.1.0 (2025-11-21)ΒΆ

Note

7.1.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add support for aliases in EnumChoice type.

  • Register pre-configured render_table() utility in the context when table_format is set, in the same spirit as print_table().

7.0.1 (2025-11-18)ΒΆ

Note

7.0.1 is available on 🐍 PyPI and πŸ™ GitHub.

  • Restore support for @extra_command, @extra_group and @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_parents argument on @config_file. Closes #651.

  • Allow fine-tuning of configuration file format pattern matching. Replaces formats argument on @config_file by file_format_patterns.

  • Adds search_pattern_flags and file_pattern_flags arguments on @config_file to allow user to tweak pattern matching behavior.

  • Use | as separator for multiple file patterns instead of {,} syntax. Replace glob.BRACE by glob.SPLIT for search pattern flags. Force glob.SPLIT for file pattern flags.

  • Remove glob.IGNORECASE flag to make case-sensitivity determined by the underlying platform at runtime.

  • Force glob.NODIR for search pattern flags to speed up search.

  • Rename click_extra.config.Formats enum to click_extra.config.ConfigFormat. Expose it at the root click_extra module.

  • Eat our own dog food: add a click-extra CLI to run self-tests.

  • Override base decorators and classes with Click Extra’s own variants:

    • @command now points to what was @extra_command.

    • @group now points to what was @extra_group.

    • Option class now points to click_extra.Option, which is a subclass of cloup.Option.

    • Argument class now points to click_extra.Argument, which is a subclass of cloup.Argument.

    • @option now instantiates click_extra.Option by default.

    • @argument now instantiates click_extra.Argument by default.

    • @version_option now 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 click or cloup instead of click_extra, which makes origination clearer.

  • Remove @extra_command, @extra_group and @extra_version_option.

  • Remove no_redefined argument in click_extra.pytest.command_decorators() method.

  • Validates that classes passed to the cls parameter of decorators are subclasses of the expected base classes.

  • Normalize the default value of EnumChoice parameters to their string choice representation in help screens.

  • Run tests on Python 3.14t and 3.15t free-threaded variants.

6.2.0 (2025-11-04)ΒΆ

Note

6.2.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add new EnumChoice type for fine-tunable Enum-based choices. Expose EnumChoice and ChoiceSource at the root click_extra module.

  • Relax dependencies to support Python 3.10. Closes #1385.

  • Re-introduce tomli dependency for Python 3.10 users.

  • Skip tests on intermediate Python versions (3.11, 3.12 and 3.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] and click_extra[xml] extra dependency groups to enable it.

  • Add new @lazy_group decorator and LazyGroup class to create groups that only load their subcommands when invoked. Closes #1332.

  • Move all custom types to click_extra._types module.

  • Avoid importing all types at runtime to reduce startup time.

  • Upgrade tests runs from macos-13 to macos-15-intel, and from macos-15 to macos-26.

  • Use astral-sh/setup-uv action to install uv.

6.0.3 (2025-10-13)ΒΆ

Note

6.0.3 is available on 🐍 PyPI and πŸ™ GitHub.

  • Fix regex_fullmatch_line_by_line to 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_line utility to compare a wall of text against a regex, line by line, and raise a custom RegexLineMismatch exception on the first mismatch.

6.0.1 (2025-10-08)ΒΆ

Note

6.0.1 is available on 🐍 PyPI and πŸ™ GitHub.

  • Fix @config_option to accept Path objects 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-config option on @extra_command and @extra_group to disable configuration files. Closes #750.

  • Add --table-format option by default on @extra_command and @extra_group.

  • Let --table-format and --no-color affect the rendering of --show-params table.

  • Swap Class and Spec. columns in --show-params output.

  • Remove the -C short option associated with --config.

  • Remove the -t short 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-grid

    • double_outline β†’ double-outline

    • fancy_grid β†’ fancy-grid

    • fancy_outline β†’ fancy-outline

    • heavy_grid β†’ heavy-grid

    • heavy_outline β†’ heavy-outline

    • latex_booktabs β†’ latex-booktabs

    • latex_longtable β†’ latex-longtable

    • latex_raw β†’ latex-raw

    • mixed_grid β†’ mixed-grid

    • mixed_outline β†’ mixed-outline

    • rounded_grid β†’ rounded-grid

    • rounded_outline β†’ rounded-outline

    • simple_grid β†’ simple-grid

    • simple_outline β†’ simple-outline

  • Fix display in --show-params for parameters sharing the same name.

  • Fix detection in the --version option of the module in which the user’s CLI is implemented.

  • Rename click_extra.tabulate namespace to click_extra.table.

  • Expose click._utils.UNSET and click.logging.LogLevel at the root click_extra module.

  • Replace unmaintained mergedeep dependency by deepmerge.

  • 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:example and click:run Sphinx directives.

  • Add support for all code-block options to click:example and click: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 to click:example and click:run. Closes #719.

  • Support non-string choices in colored help screens. Closes #1284.

  • Replace LOG_LEVELS mapping with LogLevel enum.

  • Remove DEFAULT_LEVEL_NAME constants.

  • Fix rendering of default values in --show-params output.

  • Fix reconciliation of flags’ environment variables.

  • Force requirement on cloup >= 3.0.7.

  • Be more informative when error is found in click:example and click:run Sphinx 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 ExtraCommand default prog_name to CLI’s name to avoid it to be named python -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 new Option.get_help_extra().

  • Remove dependency on pallets-sphinx-themes.

  • Drop supports for Python 3.10.

  • Add windows-11-arm to the test matrix.

  • Remove tests on ubuntu-22.04-arm, ubuntu-22.04 and windows-2022 to 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() to merge_envvar_ids() and allow it to merge arbitrary-nested structures. Normalize names to uppercase on Windows.

  • Rename normalize_envvar() to clean_envvar_id().

  • Rename all_envvars() to param_envvar_ids().

  • Rename auto_envvar() to param_auto_envvar_id().

  • Remove unused normalize parameter on all_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 to render_cli_run().

  • Remove unused click_extra.testing.run_cmd.

  • Relax requirement on extra-platforms.

  • Add tests on windows-2025. Remove tests on windows-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 --verbose option on @extra_command and @extra_group to increase the verbosity level for each additional repetition.

  • Add new @verbose_option pre-configured decorator.

  • Reassign the short -v option from --verbosity to --verbose.

  • Improve logging documentation.

  • Align ExtraStreamHandler behavior to logging.StreamHandler.

  • Move stream_handler_class and formatter_class arguments from new_extra_logger to extraBasicConfig.

  • Add new file_handler_class argument to extraBasicConfig.

  • 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 logging module.

  • Remove extra_basic_config.

  • Adds new extraBasicConfig, and aligns it with Python’s basicConfig.

  • Replace ExtraLogFormatter with ExtraFormatter.

  • Replace ExtraLogHandler with ExtraStreamHandler.

  • Add new new_extra_logger helper.

  • 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 HelpOption class now that fixes have reached Click’s upstream.

  • Redefine @help_option decorator to default to --help/-h options.

  • Add more logging examples in documentation.

  • Add tests on ubuntu-24.04-arm and ubuntu-22.04-arm.

  • Use uv to 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. Closes click-extra#1152.

4.11.6 (2024-11-29)ΒΆ

Note

4.11.6 is available on 🐍 PyPI and πŸ™ GitHub.

  • Make --timer option eager so it can jumps the queue of processing order.

  • Fix configuration of help option generated by the help_option_names context setting. Closes mail-deduplicate#762.

  • Fix eagerness of help option generated by help_option_names. Refs click#2811.

  • Display generated help option in --show-params results.

  • 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 on ubuntu-20.04.

  • Upgrade tests from macos-14 to macos-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_update import if pygments is 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, sphinx and pytest into optional extra dependencies. Closes #836.

  • Split dev dependency groups into optional test, typing and docs groups.

  • Remove direct dependency on mypy.

  • Allow running tests with Python 3.8 and 3.9 on macos-14 runners.

4.7.5 (2024-04-05)ΒΆ

Note

4.7.5 is available on 🐍 PyPI and πŸ™ GitHub.

  • Remove bypass of cloup.Color re-import.

4.7.4 (2024-02-23)ΒΆ

Note

4.7.4 is available on 🐍 PyPI and πŸ™ GitHub.

  • Allow standalone --version option 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 on macos-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-params output.

  • Recognize custom parameter type as string-based. Closes #721.

  • Rely on bump-my-version to 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-params output. Closes #725.

  • Set %(package_name) in --version to 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 --version output.

  • Allow building of documentation with Sphinx 7.

  • Run tests on macos-13. Remove tests on macos-11.

  • Ignore unstable tests on upcoming Click 8.2.x / main branch.

4.6.3 (2023-07-16)ΒΆ

Note

4.6.3 is available on 🐍 PyPI and πŸ™ GitHub.

  • Forces ExtraContext to 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_class default on custom groups.

  • Force @extra_group to 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 --version the 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_option which is now a proxy to Click’s original.

  • Rename the colored, enhanced --version option to @extra_version_option for its decorator, and ExtraVersionOption for its class.

  • Activate colors on @extra_command and @extra_group by 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 meta property. Closes #673.

  • Render specs of hidden parameters in --show-params output. Fixes #689.

  • Swap Exposed and Allowed in conf? columns in --show-params output.

  • Add a hidden column to --show-params output. 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 meta property.

  • Refactor VersionOption. Introduce internal caching.

  • Expose version string elements in the Context’s meta property. Closes #325.

  • Remove print_env_info option from VersionOption class and version_option decorators.

  • Add new %(env_info) element. Default value is the same as what the removed print_env_info produced (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 --version by 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 DEBUG log level.

  • Expose click_extra.search_params utility.

4.4.0 (2023-06-16)ΒΆ

Note

4.4.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add a reduce() utility to reduce a collection of Group and Platform to a minimal set.

  • Remove @destructive and @non_destructive pytest markers.

  • Rename the exclude_params argument of ParamStructure and ConfigOption to excluded_params.

  • Fix over-styling of usage heading in help screen.

  • Move bump-my-version configuration to pyproject.toml.

  • Remove bump2version from dev dependencies, and let the external workflows install it.

  • Remove workaround for pallets-sphinx-themes’s outdated reference to old click’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-params option.

  • Keep <stdout> and <stderr> streams independent in ExtraCliRunner.

  • 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> when mix_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 pygmentize command 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 AnsiHtmlFormatter to augment it with ANSI colors.

  • Remove main dependency on furo, make it a development dependency.

  • Remove the custom ansi-click-extra-furo-style Pygments style for Furo and its AnsiClickExtraFuroStyle class.

4.1.0 (2023-05-12)ΒΆ

Note

4.1.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Add new global show_envvar option to display all environment variables in help screens.

  • Global show_choices setting to show or hide choices when prompting a user for input.

  • Populate the Allowed in conf? column in --show-params output if there is a --config option in the command.

  • Print all modified loggers and their levels in DEBUG mode.

  • 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.TimerOption to click_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-telemetry option flag which respects the DO_NOT_TRACK environment variable.

  • Add new populate_auto_envvars parameter to @extra_command/@extra_group decorators to allow auto-generated environment variables to be displayed in help screens.

  • Display all environment variables in --show-params output, including those auto-generated by the way of the auto_envvar_prefix context parameter.

  • Allow user to override hard-coded context defaults on @extra_command/@extra_group.

  • Change default log level from INFO to WARNING to 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_extra logger for all internal messages, instead of sending them to the user-defined one.

  • Aligns click_extra logger level to --verbosity option level.

  • Set default logger of --verbosity to Python’s global root logger, instead a local wrapped logger. Closes #318.

  • Allow user to provide a string as the default logger to --verbosity that will be used to fetch the global logger singleton of that name. Closes #318.

  • Only colorize the %(levelname)s field during log record formatting, not the : message separator.

  • Prefix INFO-level log message with info: prefix by default.

  • Raise an error if multiple --version options 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_option and @version_option decorators to be used without parenthesis.

  • Fix wrapping of Cloup decorators by @extra_group/@extra_command decorators. Closes #489.

  • Add main dependency on furo which is referenced in ANSI-aware Pygment styles.

  • Move all documentation assets to assets subfolder.

3.8.3 (2023-02-25)ΒΆ

Note

3.8.3 is available on 🐍 PyPI and πŸ™ GitHub.

  • Let --version option output system details when run on python >= 3.10.

3.8.2 (2023-02-20)ΒΆ

Note

3.8.2 is available on 🐍 PyPI and πŸ™ GitHub.

  • Fix overlapping detection of linux and wsl2 platforms.

  • Renders platform groups in documentation in Mermaid format instead of Graphviz. Add new dependency on sphinxcontrib-mermaid, removed dependency on graphviz.

  • 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.platform to click_extra.platforms.

  • Refactor platforms and their groups with dataclasses instead of string IDs.

  • Add new LINUX_LAYERS, ALL_WINDOWS, BSD_WITHOUT_MACOS, EXTRA_GROUPS and ALL_GROUPS groups.

  • 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.py to docs_update.py and 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-console and ansi-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_metadata for Python < 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-params output.

  • Add new columns in --show-params table to show option specifications, configuration exclusion and exposed attribute.

  • Rename ignored_params argument to exclude_params on the ConfigOption class.

  • 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.

  • Fix highlighting of +-prefixed options in help screens. Closes #316.

  • Fix highlighting of hard-coded deprecated labels in option help.

  • Document parameter introspection. Closes #319.

3.4.0 (2022-12-01)ΒΆ

Note

3.4.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Streamline setup of Sphinx extensions.

  • Document click:example and click:run Sphinx 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-output directives 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 tabulate dependency instead of cli-helpers for all the table rendering utilities.

  • Remove dependency on cli-helpers.

  • Re-implement locally the vertical table rendering format from cli-helpers.

  • Add new table rendering formats: asciidoc, fancy_outline, heavy_grid, heavy_outline, latex_longtable, latex_raw, mixed_grid, mixed_outline, presto, pretty, unsafehtml and youtrack.

  • Remove minimal table rendering formats, which was an alias of plain.

  • Add new csv-excel, csv-excel-tab and csv-unix formats based on Python defaults dialects.

  • Remove csv-tab rendering format.

  • Make csv format an alias of csv-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 run submodule.

3.2.0 (2022-09-25)ΒΆ

Note

3.2.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • New --show-params option to debug parameters defaults, values, environment variables and provenance.

  • Rename ignored_options to ignored_params on ConfigOption.

  • 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 ExtraContext which allows populating meta at instantiation.

  • Use the Formats enum to encode for default configuration file extensions.

  • Re-introduce *.yml as 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 formats option 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 roaming and force_posix option to influence default application directory of configuration file.

  • Add a ignored_options parameter 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-cov produced 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_extra can act as a drop-in replacement for click and cloup (closes #173):

    • Rename click_extra.group to click_extra.extra_group.

    • Rename click_extra.command to click_extra.extra_command.

    • Alias click_extra.group to cloup.group.

    • Alias click_extra.command to cloup.group.

  • Use declarative params= argument to set defaults options on extra_command and extra_group.

  • Move the implementation of options to classes.

  • Hard-copy version_option code from click to allow for more flexibility. Addresses #176.

  • All custom options inherits from ExtraOption class.

  • New extra_option_at_end to extra_command to force position of all extra options (on by default).

  • Replace theme styles inherited from click-log by Python standard logging module. Adds info and removes exception styles.

  • Add a tutorial in documentation.

  • Add support for click:example and click:run directives 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 furo theme.

  • Add dependency on pygments, pygments-ansi-color and Pallets-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.04 and macos-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 None cells 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 highlight utility to style substrings.

  • Add regex dependency.

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_tabs by sphinx-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_COLOR environment variable convention from no-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 DEBUG level.

  • 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 .ini configuration 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 help boolean 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_output method to expose the simpler format_cli utility.

1.7.0 (2022-03-31)ΒΆ

Note

1.7.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Refactor global logging management.

  • Remove click_extra.run.run and rebase all run utilities around subprocess.run.

  • Use the tomllib from 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 --version option results for python >= 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 cloup versions of click utilities at the root of click_extra.

1.6.0 (2022-03-02)ΒΆ

Note

1.6.0 is available on 🐍 PyPI and πŸ™ GitHub.

  • Allow click_extra to be imported as a drop-in replacement for click.

  • Share the same set of default options between click_extra.command and click_extra.group.

  • Document default help screen comparison between simple click CLI and enhanced click-extra CLI.

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, pipdeptree and twine.

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 requests and pytest-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 pyyaml dependency.

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.TabularOutputFormatter with new formats: simple_grid, rounded_grid, double_grid, outline, simple_outline, rounded_outline and double_outline. Address astanin/python-tabulate#151.

  • Add a new --table-format/-t option to select table format rendering mode.

  • Add new dependency on cli-helper and tabulate.

  • 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/-C option 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-color option flag (aliased to --ansi/--no-ansi).

  • Add colored --version option.

  • Add colored --verbosity option and logs.

  • Add dependency on click-log.

  • --time/--no-time flag to measure duration of command execution.

  • Add platform recognition utilities.

  • Add new conditional markers for pytest: @skip_{linux,macos,windows}, @unless_{linux,macos,windows}, @destructive and @non_destructive.

0.0.1 (2021-10-18)ΒΆ

Note

0.0.1 is the first version available on 🐍 PyPI and πŸ™ GitHub.

  • Initial public release.