Bar should be able to inherit Foo's arguments and override them. Che shouldn't have foo as an argument. I'm not so passionate about being able to remove/omit the commands, but they should definitely be able to be overridden
class Foo(Command):
@arg("foo", nargs="*")
def handle(self, foo):
self.output.out("foo CAN be empty")
class Bar(Command):
@args(Foo)
@arg("foo", nargs="+")
def handle(self, foo):
self.output.out("foo CANNOT be empty")
class Che(Command):
@args(Foo, remove="foo")
def handle(self):
self.output.out("foo CANNOT exist")
Bar
should be able to inheritFoo
's arguments and override them.Che
shouldn't havefoo
as an argument. I'm not so passionate about being able to remove/omit the commands, but they should definitely be able to be overridden