jw-python/tools/python/jwutils/Cmd.py
Jan Lindemann a85f0929c6 Consistently replace def run() by async def run()
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-20 08:41:58 +01:00

25 lines
564 B
Python

import abc
import argparse
# compatible with Python 2 *and* 3
ABC = abc.ABCMeta('ABC', (object,), {'__slots__': ()})
class Cmd(ABC): # export
@abc.abstractmethod
async def run(self, args):
pass
def __init__(self, name, help):
self.name = name
self.help = help
async 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