summaryrefslogtreecommitdiff
path: root/lib/yaml/reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/yaml/reader.py')
-rw-r--r--lib/yaml/reader.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/yaml/reader.py b/lib/yaml/reader.py
index 6094f8c..4316e22 100644
--- a/lib/yaml/reader.py
+++ b/lib/yaml/reader.py
@@ -65,7 +65,7 @@ class Marker:
self.buffer = buffer
self.pointer = pointer
- def get_snippet(self, max_length=79):
+ def get_snippet(self, indent=4, max_length=75):
if self.buffer is None:
return None
head = ''
@@ -85,8 +85,16 @@ class Marker:
end -= 5
break
snippet = self.buffer[start:end].encode('utf-8')
- return head + snippet + tail + '\n' \
- + ' '*(self.pointer-start+len(head)) + '^' + '\n'
+ 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 ReaderError(YAMLError):
@@ -100,12 +108,12 @@ class ReaderError(YAMLError):
def __str__(self):
if isinstance(self.character, str):
return "'%s' codec can't decode byte #x%02x: %s\n" \
- "\tin '%s', position %d." \
+ " in \"%s\", position %d" \
% (self.encoding, ord(self.character), self.reason,
self.name, self.position)
else:
return "unacceptable character #x%04x: %s\n" \
- "\tin '%s', position %d." \
+ " in \"%s\", position %d" \
% (ord(self.character), self.reason,
self.name, self.position)