def resolve_command(self, ctx, args):
"""
Override clicks ``resolve_command`` method and appends *Did you mean ...* suggestions to the
raised exception message.
"""
try:
return super(AliasedGroup, self).resolve_command(ctx, args)
except click.exceptions.UsageError as error:
error_msg = str(error)
original_cmd_name = click.utils.make_str(args[0])
matches = difflib.get_close_matches(
original_cmd_name,
self.list_commands(ctx),
self.max_suggestions,
self.cutoff)
if matches:
error_msg += '{0}{0}Did you mean one of these?{0} {1}'.format(
os.linesep,
'{0} '.format(os.linesep).join(matches, ))
raise click.exceptions.UsageError(error_msg, error.ctx)
评论列表
文章目录