pythoncommandaliaspython-click

Python Click multiple command names


Is it possible to do something like this with Python Click?

@click.command(name=['my-command', 'my-cmd'])
def my_command():
    pass

I want my command lines to be something like:

mycli my-command

and

mycli my-cmd 

but reference the same function.

Do I need to do a class like AliasedGroup?


Solution

  • Since this question has been asked, someone (not me) created a click-aliases library.

    It works a bit like the other answers except that you don’t have to declare the command class by yourself:

    import click
    from click_aliases import ClickAliasedGroup
    
    @click.group(cls=ClickAliasedGroup)
    def cli():
        pass
    
    @cli.command(aliases=['my-cmd'])
    def my_command():
        pass