def dispatch(self, args): opts = {} cmd = self.commands[args.command] for option in cmd.options: name = option[1] if name in args: opts[name] = getattr(args, name) if args.help: print textwrap.dedent(cmd.__doc__) return 0 else: if hasattr(args, 'start'): opts['start'] = args.start if args.endpoint is None and cmd.msg_type != 'dealer': if cmd.msg_type == 'sub': args.endpoint = DEFAULT_ENDPOINT_SUB else: args.endpoint = DEFAULT_ENDPOINT_DEALER msg = cmd.message(*args.args, **opts) handler = getattr(self, "handle_%s" % cmd.msg_type) return handler(cmd, self.globalopts, msg, args.endpoint, int(args.timeout), args.ssh, args.ssh_keyfile)