Ignore:
Timestamp:
02/20/06 12:41:45 (8 years ago)
Author:
xi
Message:

Cleanup error messages.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/pyyaml3000/lib/yaml/reader.py

    r48 r52  
    1616#   reader.line, stream.column - the line and the column of the current character. 
    1717 
    18 __all__ = ['Marker', 'Reader', 'ReaderError'] 
    19  
    20 from error import YAMLError 
     18__all__ = ['Reader', 'ReaderError'] 
     19 
     20from error import YAMLError, Marker 
    2121 
    2222import codecs, re 
     
    5656                data = data[:-count-1] 
    5757        return codecs.utf_8_decode(data, errors) 
    58  
    59 class Marker: 
    60  
    61     def __init__(self, name, line, column, buffer, pointer): 
    62         self.name = name 
    63         self.line = line 
    64         self.column = column 
    65         self.buffer = buffer 
    66         self.pointer = pointer 
    67  
    68     def get_snippet(self, indent=4, max_length=75): 
    69         if self.buffer is None: 
    70             return None 
    71         head = '' 
    72         start = self.pointer 
    73         while start > 0 and self.buffer[start-1] not in u'\0\r\n\x85\u2028\u2029': 
    74             start -= 1 
    75             if self.pointer-start > max_length/2-1: 
    76                 head = ' ... ' 
    77                 start += 5 
    78                 break 
    79         tail = '' 
    80         end = self.pointer 
    81         while end < len(self.buffer) and self.buffer[end] not in u'\0\r\n\x85\u2028\u2029': 
    82             end += 1 
    83             if end-self.pointer > max_length/2-1: 
    84                 tail = ' ... ' 
    85                 end -= 5 
    86                 break 
    87         snippet = self.buffer[start:end].encode('utf-8') 
    88         return ' '*indent + head + snippet + tail + '\n'  \ 
    89                 + ' '*(indent+self.pointer-start+len(head)) + '^' 
    90  
    91     def __str__(self): 
    92         snippet = self.get_snippet() 
    93         where = "  in \"%s\", line %d, column %d"   \ 
    94                 % (self.name, self.line+1, self.column+1) 
    95         if snippet is not None: 
    96             where += ":\n"+snippet 
    97         return where 
    9858 
    9959class ReaderError(YAMLError): 
Note: See TracChangeset for help on using the changeset viewer.