diff --git a/src/python/jw/pkg/CmdBase.py b/src/python/jw/pkg/CmdBase.py new file mode 100644 index 00000000..65a517b5 --- /dev/null +++ b/src/python/jw/pkg/CmdBase.py @@ -0,0 +1,13 @@ +from .App import App +from .lib.Cmd import Cmd as Base + +class CmdBase(Base): + + @property + def app(self) -> App: + ret = super().app + if not isinstance(ret, App): + raise TypeError( + f'Expected {self.__class__.__name__}, got {type(ret).__name__}' + ) + return ret diff --git a/src/python/jw/pkg/cmds/projects/Cmd.py b/src/python/jw/pkg/cmds/projects/Cmd.py new file mode 100644 index 00000000..2b3799ba --- /dev/null +++ b/src/python/jw/pkg/cmds/projects/Cmd.py @@ -0,0 +1,14 @@ +from __future__ import annotations + +from argparse import ArgumentParser + +from ...CmdBase import CmdBase +from ..CmdProjects import CmdProjects as Parent + +class Cmd(CmdBase): # export + + def __init__(self, parent: Parent, name: str, help: str) -> None: + super().__init__(parent, name, help) + + def add_arguments(self, parser: ArgumentParser) -> None: + super().add_arguments(parser)