您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python Click:自定义错误消息

Python Click:自定义错误消息

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: %s\n' % 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():
    pass

modify_usage_error(cli)

除了使用错误之外,我没有探索过ClickException的运行时调用。如果存在,那么您可能需要修改自定义错误处理程序,以便在添加该行之前先检查ctx是属性click.exceptions.ClickException.show = show因为在初始化时似乎没有将ClickException馈入ctx。

python 2022/1/1 18:49:38 有384人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶