Changeset 52 for branches/pyyaml3000/lib/yaml/reader.py
- Timestamp:
- 02/20/06 12:41:45 (7 years ago)
- File:
-
- 1 edited
-
branches/pyyaml3000/lib/yaml/reader.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pyyaml3000/lib/yaml/reader.py
r48 r52 16 16 # reader.line, stream.column - the line and the column of the current character. 17 17 18 __all__ = [' Marker', 'Reader', 'ReaderError']19 20 from error import YAMLError 18 __all__ = ['Reader', 'ReaderError'] 19 20 from error import YAMLError, Marker 21 21 22 22 import codecs, re … … 56 56 data = data[:-count-1] 57 57 return codecs.utf_8_decode(data, errors) 58 59 class Marker:60 61 def __init__(self, name, line, column, buffer, pointer):62 self.name = name63 self.line = line64 self.column = column65 self.buffer = buffer66 self.pointer = pointer67 68 def get_snippet(self, indent=4, max_length=75):69 if self.buffer is None:70 return None71 head = ''72 start = self.pointer73 while start > 0 and self.buffer[start-1] not in u'\0\r\n\x85\u2028\u2029':74 start -= 175 if self.pointer-start > max_length/2-1:76 head = ' ... '77 start += 578 break79 tail = ''80 end = self.pointer81 while end < len(self.buffer) and self.buffer[end] not in u'\0\r\n\x85\u2028\u2029':82 end += 183 if end-self.pointer > max_length/2-1:84 tail = ' ... '85 end -= 586 break87 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"+snippet97 return where98 58 99 59 class ReaderError(YAMLError):
Note: See TracChangeset
for help on using the changeset viewer.
