from abc import ABCMeta, abstractmethod import argparse import Object class Cmd(Object.Object): # export __metaclass__=ABCMeta @abstractmethod def run(self, args): pass def __init__(self, name, help): self.name = name self.help = help def _run(self, args): pass def add_parser(self, parsers): r = parsers.add_parser(self.name, help=self.help, formatter_class=argparse.ArgumentDefaultsHelpFormatter) r.set_defaults(func=self.run) return r