__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] class Mark(object): 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 u'\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 u'\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].encode('utf-8') 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)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__init__.py | File | 9.55 KB | 0644 |
|
__init__.pyc | File | 11.09 KB | 0644 |
|
composer.py | File | 4.81 KB | 0644 |
|
composer.pyc | File | 4.4 KB | 0644 |
|
constructor.py | File | 24.56 KB | 0644 |
|
constructor.pyc | File | 21.3 KB | 0644 |
|
cyaml.py | File | 3.21 KB | 0644 |
|
cyaml.pyc | File | 3.7 KB | 0644 |
|
dumper.py | File | 2.66 KB | 0644 |
|
dumper.pyc | File | 2.49 KB | 0644 |
|
emitter.py | File | 42.41 KB | 0644 |
|
emitter.pyc | File | 31.21 KB | 0644 |
|
error.py | File | 2.5 KB | 0644 |
|
error.pyc | File | 2.88 KB | 0644 |
|
events.py | File | 2.39 KB | 0644 |
|
events.pyc | File | 4.78 KB | 0644 |
|
loader.py | File | 1.11 KB | 0644 |
|
loader.pyc | File | 1.83 KB | 0644 |
|
nodes.py | File | 1.41 KB | 0644 |
|
nodes.pyc | File | 2.12 KB | 0644 |
|
parser.py | File | 24.94 KB | 0644 |
|
parser.pyc | File | 14.3 KB | 0644 |
|
reader.py | File | 6.77 KB | 0644 |
|
reader.pyc | File | 5.57 KB | 0644 |
|
representer.py | File | 17.3 KB | 0644 |
|
representer.pyc | File | 14.28 KB | 0644 |
|
resolver.py | File | 8.91 KB | 0644 |
|
resolver.pyc | File | 6.52 KB | 0644 |
|
scanner.py | File | 51.22 KB | 0644 |
|
scanner.pyc | File | 32.09 KB | 0644 |
|
serializer.py | File | 4.07 KB | 0644 |
|
serializer.pyc | File | 4.21 KB | 0644 |
|
tokens.py | File | 2.51 KB | 0644 |
|
tokens.pyc | File | 6.28 KB | 0644 |
|