{"id":23430,"library":"click-extra","title":"click-extra","description":"A drop-in replacement for Click that adds colorful and user-friendly CLI output, extended help formatting, table rendering, configuration management, and more. Version 7.14.1 supports Python >=3.10 and acts as a thin wrapper around Click, providing extra decorators, commands, and utilities. Releases are frequent, typically monthly.","status":"active","version":"7.14.1","language":"python","source_language":"en","source_url":"https://github.com/kdeldycke/click-extra","tags":["click","cli","color","help","configuration","tables","extra"],"install":[{"cmd":"pip install click-extra","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency; click-extra extends Click. Requires Click >=8.1 (compatible with 8.1, 8.2, 8.3+).","package":"click","optional":false},{"reason":"Required for table rendering with --table-format. Backward compatible with >=0.9.","package":"tabulate","optional":false},{"reason":"Used for syntax highlighting in help output and the wrap command.","package":"pygments","optional":false}],"imports":[{"note":"ExtraGroup is re-exported from the top-level package; importing from click_extra.commands may break if internal structure changes.","wrong":"from click_extra.commands import ExtraGroup","symbol":"ExtraGroup","correct":"from click_extra import ExtraGroup"},{"note":"Direct top-level import is the stable API.","symbol":"ExtraCommand","correct":"from click_extra import ExtraCommand"},{"note":"click-extra overrides the Click help option; using Click's original will miss colorization.","wrong":"from click import help_option","symbol":"help_option","correct":"from click_extra import help_option"},{"note":"click-extra's version_option supports extra fields like git_branch.","wrong":"from click.decorators import version_option","symbol":"version_option","correct":"from click_extra import version_option"},{"note":"Top-level export is the intended public API.","wrong":"from click_extra.decorators import config_option","symbol":"config_option","correct":"from click_extra import config_option"}],"quickstart":{"code":"import click\nfrom click_extra import ExtraGroup, help_option\n\n@click.group(cls=ExtraGroup)\n@click.option('--name', default='world', help='Who to greet.')\n@click.pass_context\ndef cli(ctx, name):\n    ctx.ensure_object(dict)\n    ctx.obj['name'] = name\n\n@cli.command()\n@help_option('-h', '--help')\n@click.pass_context\ndef greet(ctx):\n    click.echo(f\"Hello, {ctx.obj['name']}!\")\n\nif __name__ == '__main__':\n    cli()","lang":"python","description":"Creates a CLI with colorful help using ExtraGroup and the click-extra help option."},"warnings":[{"fix":"Replace `version=value` with `version_fields={'version': value}` or use `ExtraVersionOption` directly.","message":"In version 7.7.0, the `version` parameter was removed from `ExtraCommand` and `ExtraGroup`. Use `version_fields` instead.","severity":"breaking","affected_versions":">=7.7.0"},{"fix":"Migrate your config section names to the new default and remove `fallback_sections`.","message":"The `config_schema` parameter accepts both dataclasses and callables. Legacy config section names using `fallback_sections` will issue deprecation warnings in future versions.","severity":"deprecated","affected_versions":">=7.8.0"},{"fix":"Ensure the SCRIPT argument matches an installed entry point (e.g., from pyproject.toml) or is in `module:function` format.","message":"When using `click-extra`'s `wrap` subcommand, the target script must be a valid console_scripts entry point or a `module:function` string. Otherwise, it will fail silently or produce no output.","severity":"gotcha","affected_versions":">=7.14.0"},{"fix":"If you need standard Click behavior, use `cls=click.Group` instead of `ExtraGroup`, or pass `colorize=False` to the decorator.","message":"The `click-extra` `ExtraGroup` changes Click's default help ordering and adds color by default. Existing Click code that relies on default help behavior may see different formatting.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Upgrade to latest: `pip install --upgrade click-extra`; verify import with `from click_extra import ExtraGroup`.","cause":"Installed version is too old (pre-7.0) or package not installed correctly.","error":"ImportError: cannot import name 'ExtraGroup' from 'click_extra'"},{"fix":"Replace `version='x.y.z'` with `version_fields={'version': 'x.y.z'}` or remove it if using auto-detection.","cause":"Using `version=` parameter which was removed in version 7.7.0.","error":"TypeError: ExtraGroup.__init__() got an unexpected keyword argument 'version'"},{"fix":"Use an installed package name (e.g., `pip install mypackage`) and then `click-extra wrap mypackage`.","cause":"The `wrap` command requires a proper entry point; bare script names like `my-script.py` won't work.","error":"click_extra.wrap: error: SCRIPT must be a console_scripts entry point or module:function"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}