def yaml_error(loader, e, exc_info=None):
# Given a MarkedYAMLError exception, either log or raise
# the error, depending on the 'fatal' argument.
fatal = not getattr(loader, 'warnings', False)
setattr(loader, 'yaml_errored', True)
if exc_info:
# When we're given the original exception (which was wrapped in
# a MarkedYAMLError), we can provide more context for debugging.
from traceback import format_exc
e.note = "\nOriginal exception:\n" + format_exc(exc_info)
if fatal:
raise e
message = []
mark = e.context_mark or e.problem_mark
if mark:
position = "%s:%s:%s" % (mark.name, mark.line+1, mark.column+1)
else:
position = "[unknown]"
if e.context is not None:
message.append(e.context)
if e.problem is not None:
message.append(e.problem)
if e.note is not None:
message.append("(note: " + e.note + ")")
print "%s: %s" % (position, ",".join(message))
评论列表
文章目录