python-
click中大多数错误的消息构造是由UsageError类的show方法处理的:
click.exceptions.UsageError.show。
因此,如果您重新定义此方法,则可以创建自己的自定义错误消息。下面是一个自定义示例,该示例将帮助菜单附加到回答此SO问题的任何错误消息中:
def modify_usage_error(main_command): ''' a method to append the help menu to an usage error :param main_command: top-level group or command object constructed by click wrapper :return: None ''' from click._compat import get_text_stderr from click.utils import echo def show(self, file=None): import sys if file is None: file = get_text_stderr() color = None if self.ctx is not None: color = self.ctx.color echo(self.ctx.get_usage() + 'n', file=file, color=color) echo('Error: %sn' % self.format_message(), file=file, color=color) sys.argv = [sys.argv[0]] main_command() click.exceptions.UsageError.show = show定义主命令后,即可运行修改器脚本:
import click@click.group()def cli(): passmodify_usage_error(cli)
除了使用错误之外,我没有探索过ClickException的运行时调用。如果存在,那么您可能需要修改自定义错误处理程序,以便在添加该行之前先检查ctx是属性,
click.exceptions.ClickException.show= show因为在初始化时似乎没有将ClickException馈入ctx。



