INNER CODE UNIT · Python
AliasGroup
speaches-ai/speaches · packages/speaches-cli/src/speaches_cli/main.py:13
class AliasGroup(TyperGroup):
_CMD_SPLIT_P = re.compile(r" ?[,|] ?") # pyright: ignore[reportUnannotatedClassAttribute]
@override
def get_command(self, ctx: click.Context, cmd_name: str) -> click.Command | None:
cmd_name = self._group_cmd_name(cmd_name)
return super().get_command(ctx, cmd_name)
def _group_cmd_name(self, default_name: str) -> str:
for cmd in self.commands.values():
name = cmd.name
if name and default_name in self._CMD_SPLIT_P.split(name):
return name
return default_name
app = typer.Typer(cls=AliasGroup)
registry_app = typer.Typer(cls=AliasGroup)