Viewing file:      error.py (2.47 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
 __all__ = ['Mark', 'YAMLError', 'MarkedYAMLError']
  class Mark:
      def __init__(self, name, index, line, column, buffer, pointer):         self.name = name         self.index = index         self.line = line         self.column = column         self.buffer = buffer         self.pointer = pointer
      def get_snippet(self, indent=4, max_length=75):         if self.buffer is None:             return None         head = ''         start = self.pointer         while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029':             start -= 1             if self.pointer-start > max_length/2-1:                 head = ' ... '                 start += 5                 break         tail = ''         end = self.pointer         while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029':             end += 1             if end-self.pointer > max_length/2-1:                 tail = ' ... '                 end -= 5                 break         snippet = self.buffer[start:end]         return ' '*indent + head + snippet + tail + '\n'  \                 + ' '*(indent+self.pointer-start+len(head)) + '^'
      def __str__(self):         snippet = self.get_snippet()         where = "  in \"%s\", line %d, column %d"   \                 % (self.name, self.line+1, self.column+1)         if snippet is not None:             where += ":\n"+snippet         return where
  class YAMLError(Exception):     pass
  class MarkedYAMLError(YAMLError):
      def __init__(self, context=None, context_mark=None,             problem=None, problem_mark=None, note=None):         self.context = context         self.context_mark = context_mark         self.problem = problem         self.problem_mark = problem_mark         self.note = note
      def __str__(self):         lines = []         if self.context is not None:             lines.append(self.context)         if self.context_mark is not None  \             and (self.problem is None or self.problem_mark is None                     or self.context_mark.name != self.problem_mark.name                     or self.context_mark.line != self.problem_mark.line                     or self.context_mark.column != self.problem_mark.column):             lines.append(str(self.context_mark))         if self.problem is not None:             lines.append(self.problem)         if self.problem_mark is not None:             lines.append(str(self.problem_mark))         if self.note is not None:             lines.append(self.note)         return '\n'.join(lines)
  
  |