From 76f1dfc2a56250ca6a5e0f3502a9165b47a562d1 Mon Sep 17 00:00:00 2001 From: Richard Chien Date: Mon, 10 Feb 2020 13:26:33 +0800 Subject: [PATCH] Fix #98 --- nonebot/argparse.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/nonebot/argparse.py b/nonebot/argparse.py index 040feb79..718f1bff 100644 --- a/nonebot/argparse.py +++ b/nonebot/argparse.py @@ -19,7 +19,11 @@ class ArgumentParser(ArgumentParser): self.session = kwargs.pop('session', None) super().__init__(*args, **kwargs) - def _print_message(self, *args, **kwargs): + def _session_finish(self, message): + if self.session and isinstance(self.session, CommandSession): + self.session.finish(message) + + def _print_message(self, message, file=None): # do nothing pass @@ -27,18 +31,11 @@ class ArgumentParser(ArgumentParser): raise ParserExit(status=status, message=message) def parse_args(self, args=None, namespace=None): - def finish(msg): - if self.session and isinstance(self.session, CommandSession): - self.session.finish(msg) - - if not args: - finish(self.usage) - else: - try: - return super().parse_args(args=args, namespace=namespace) - except ParserExit as e: - if e.status == 0: - # --help - finish(self.usage) - else: - finish('参数不足或不正确,请使用 --help 参数查询使用帮助') + try: + return super().parse_args(args=args, namespace=namespace) + except ParserExit as e: + if e.status == 0: + # --help + self._session_finish(self.usage or self.format_help()) + else: + self._session_finish('参数不足或不正确,请使用 --help 参数查询使用帮助')