lib.Cmd.AbstractCmd.aliases: Add property
Add a property aliases to AbstractCmd in prepeparation for commands to bear multiple names / abbreviations / aliases.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
869bef2c06
commit
289e14d5a0
3 changed files with 24 additions and 4 deletions
|
|
@ -6,12 +6,19 @@ from ..App import App as Parent
|
|||
from ..CmdBase import CmdBase as Base
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Iterable
|
||||
from ..lib.Distro import Distro
|
||||
|
||||
class Cmd(Base): # export
|
||||
|
||||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
def __init__(
|
||||
self,
|
||||
parent: Parent,
|
||||
name: str,
|
||||
help: str,
|
||||
aliases: Iterable[str] | None = None
|
||||
) -> None:
|
||||
super().__init__(parent, name, help, aliases = aliases)
|
||||
|
||||
async def _run(self, args):
|
||||
# Missing subcommand
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class App: # export
|
|||
cmd.name,
|
||||
help = cmd.help,
|
||||
description = cmd.description,
|
||||
aliases = cmd.aliases,
|
||||
formatter_class = ArgumentDefaultsHelpFormatter,
|
||||
)
|
||||
parser.set_defaults(func = cmd.run)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from .Types import LoadTypes, Types
|
|||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser
|
||||
from typing import Any
|
||||
from typing import Any, Iterable
|
||||
|
||||
from .App import App
|
||||
|
||||
|
|
@ -150,6 +150,13 @@ class AbstractCmd(abc.ABC):
|
|||
def description(self) -> str:
|
||||
return self._description()
|
||||
|
||||
def _aliases(self) -> Iterable[str]:
|
||||
return []
|
||||
|
||||
@property
|
||||
def aliases(self) -> Iterable[str]:
|
||||
return self._aliases()
|
||||
|
||||
class Cmd(AbstractCmd): # export
|
||||
|
||||
def __init__(
|
||||
|
|
@ -157,12 +164,14 @@ class Cmd(AbstractCmd): # export
|
|||
parent: App | Cmd,
|
||||
name: str,
|
||||
help: str,
|
||||
description: str | None = None
|
||||
description: str | None = None,
|
||||
aliases: Iterable[str] | None = None
|
||||
) -> None:
|
||||
super().__init__(parent)
|
||||
self.__name = name
|
||||
self.__help = help
|
||||
self.__description = description if description else help
|
||||
self.__aliases = aliases if aliases else []
|
||||
|
||||
def _name(self) -> str:
|
||||
return self.__name
|
||||
|
|
@ -172,3 +181,6 @@ class Cmd(AbstractCmd): # export
|
|||
|
||||
def _description(self) -> str:
|
||||
return self.__description
|
||||
|
||||
def _aliases(self) -> Iterable[str]:
|
||||
return self.__aliases
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue