Skip to content

Add the ability to create aliases for subcommands #62

@richieadler

Description

@richieadler

In this case:

# clipstick_cmds.py
from clipstick import parse
from pydantic import BaseModel


class AlfaCmd(BaseModel):
    """Hacer cosas de alfa"""

    uno: str
    """Parámetro para alfa"""

    def run(self):
        print(f"alfa {self.uno}")


class BetaCmd(BaseModel):
    """Hacer cosas de beta"""

    dos: str
    """Parámetro para beta"""

    def run(self):
        print(f"beta {self.dos}")


class CmdApp(BaseModel):
    """Herramienta de test"""
    subcmd: AlfaCmd | BetaCmd

    def run(self):
        self.subcmd.run()

if __name__ == "__main__":
    app = parse(CmdApp)
    app.run()

the resulting app returns this to the help request:

$ python clipstick_cmds.py -h

Usage: clipstick_cmds.py [Subcommands]

Herramienta de test

Subcommands:
    alfa-cmd             Hacer cosas de alfa
    beta-cmd             Hacer cosas de beta

The command name is taken from the class name. It would be useful to have the ability to add one or more shorter or different alias(es) to the commands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions