Skip to main content

Enable grouping and ordering of commands.

Project description

click-groups

License PyPI Python Version CI codecov

Enable grouping, ordering and aliasing of commands.

Would you like to split your commands into sub-groups so that they are nicely organized? Or perhaps you would like to ensure that the order of your commands stays consistent? Or maybe you would like to provide aliases for your commands?

Now you can do this by specifying few additional group attributes.

In your click app:

import click
from click_groups import GroupedGroup

@click.group(cls=GroupedGroup)
def cli():
    """Run commands."""


@cli.command(help_group="Group 1", priority=10)
def command_low_priority():
    """Run a command."""
    click.echo("Low priority command.")


@cli.command(help_group="Group 1", aliases=["medium", "m"])
def command_medium_priority():
    """Run a command."""
    click.echo("Medium priority command.")


@cli.command(help_group="Group 1", priority=0, aliases=["high", "h"])
def command_high_priority():
    """Run a command."""
    click.echo("High priority command.")


@cli.group(help_group="Group 2")
def command_3():
    """Group command."""


@command_3.command(help_group="Group 2", aliases=["sub1"])
def subcommand_1():
    """Run a command."""


@cli.command(help_group="Group 3")
def command_4():
    """Run a command."""


@cli.command()
def command_5():
    """Run a command."""


@cli.group()
def command_6():
    """Run a command."""

Which will result in:

Usage: simple.py [OPTIONS] COMMAND [ARGS]...

  Run commands.

Options:
  --help  Show this message and exit.

Group 1:
  command-high-priority (h,high)  Run a command.
  command-medium-priority (m,medium)
                                  Run a command.
  command-low-priority            Run a command.

Group 3:
  command-4  Run a command.

Commands:
  command-5  Run a command.
  command-3  Group command.
  command-6  Run a command.

Contributing

Contributions are always welcome. Please feel free to submit PRs with new features, bug fixes, or documentation improvements.

git clone https://github.com/lukasz-migas/click-groups.git

pip install -e .[dev]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

click_groups-0.1.6.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

click_groups-0.1.6-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file click_groups-0.1.6.tar.gz.

File metadata

  • Download URL: click_groups-0.1.6.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for click_groups-0.1.6.tar.gz
Algorithm Hash digest
SHA256 b4c8110edaf81fa38fe36b1c54a6f7af8387bf838fc9b5b3a522b5201637c5b4
MD5 ecea2ac9bb5b94d56a7d8090662ae31b
BLAKE2b-256 d8ebc4df9408f9748dca4ae2246cde0b3820a7f708aa7f01f6f3cbb5f5ec67cc

See more details on using hashes here.

File details

Details for the file click_groups-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: click_groups-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for click_groups-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a0db7b1c8e05aac6128fd1a56ef429b6c8b1cf900004a47841bf18a1b8380b66
MD5 53e800cf5c08d5be5ccce708bf1c34fc
BLAKE2b-256 abb503f707f1f1650bf5bb284f8a8fdb291566e811db56654442ad4296950b23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page