Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/yaml/error.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:d30785e31577 | 1:56ad4e20f292 |
---|---|
1 | |
2 __all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] | |
3 | |
4 class Mark: | |
5 | |
6 def __init__(self, name, index, line, column, buffer, pointer): | |
7 self.name = name | |
8 self.index = index | |
9 self.line = line | |
10 self.column = column | |
11 self.buffer = buffer | |
12 self.pointer = pointer | |
13 | |
14 def get_snippet(self, indent=4, max_length=75): | |
15 if self.buffer is None: | |
16 return None | |
17 head = '' | |
18 start = self.pointer | |
19 while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029': | |
20 start -= 1 | |
21 if self.pointer-start > max_length/2-1: | |
22 head = ' ... ' | |
23 start += 5 | |
24 break | |
25 tail = '' | |
26 end = self.pointer | |
27 while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029': | |
28 end += 1 | |
29 if end-self.pointer > max_length/2-1: | |
30 tail = ' ... ' | |
31 end -= 5 | |
32 break | |
33 snippet = self.buffer[start:end] | |
34 return ' '*indent + head + snippet + tail + '\n' \ | |
35 + ' '*(indent+self.pointer-start+len(head)) + '^' | |
36 | |
37 def __str__(self): | |
38 snippet = self.get_snippet() | |
39 where = " in \"%s\", line %d, column %d" \ | |
40 % (self.name, self.line+1, self.column+1) | |
41 if snippet is not None: | |
42 where += ":\n"+snippet | |
43 return where | |
44 | |
45 class YAMLError(Exception): | |
46 pass | |
47 | |
48 class MarkedYAMLError(YAMLError): | |
49 | |
50 def __init__(self, context=None, context_mark=None, | |
51 problem=None, problem_mark=None, note=None): | |
52 self.context = context | |
53 self.context_mark = context_mark | |
54 self.problem = problem | |
55 self.problem_mark = problem_mark | |
56 self.note = note | |
57 | |
58 def __str__(self): | |
59 lines = [] | |
60 if self.context is not None: | |
61 lines.append(self.context) | |
62 if self.context_mark is not None \ | |
63 and (self.problem is None or self.problem_mark is None | |
64 or self.context_mark.name != self.problem_mark.name | |
65 or self.context_mark.line != self.problem_mark.line | |
66 or self.context_mark.column != self.problem_mark.column): | |
67 lines.append(str(self.context_mark)) | |
68 if self.problem is not None: | |
69 lines.append(self.problem) | |
70 if self.problem_mark is not None: | |
71 lines.append(str(self.problem_mark)) | |
72 if self.note is not None: | |
73 lines.append(self.note) | |
74 return '\n'.join(lines) | |
75 |