def check_handler(value):
h = None
HANDLER_PREFIX = "handler_"
name = HANDLER_PREFIX + "base"
base_mod = load_mod(PKG_NAME, name)
if not base_mod:
print("load module %s failed" % (name), file=sys.stderr)
sys.exit(1)
try:
base_cls = getattr(base_mod, "HandlerBase")
except AttributeError as e:
print("err=%s, can't find HandlerBase class" % (e), file=sys.stderr)
sys.exit(1)
name = HANDLER_PREFIX + value
mod = load_mod(PKG_NAME, name)
if not mod:
print("load module %s failed" % (name), file=sys.stderr)
sys.exit(1)
for v in dir(mod):
cls = getattr(mod, v)
if inspect.isclass(cls) and issubclass(cls, base_cls):
return cls()
if h is None:
raise argparse.ArgumentTypeError("%s is an invalid handler" % value)
评论列表
文章目录