diff piecrust/templating/base.py @ 128:28444014ce7d

Fix error reporting and counting of lines.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 14 Nov 2014 22:49:50 +0100
parents f485ba500df3
children 96d363e2da4b
line wrap: on
line diff
--- a/piecrust/templating/base.py	Fri Nov 14 22:47:18 2014 +0100
+++ b/piecrust/templating/base.py	Fri Nov 14 22:49:50 2014 +0100
@@ -4,6 +4,23 @@
     pass
 
 
+class TemplatingError(Exception):
+    def __init__(self, message, filename=None, lineno=-1):
+        super(TemplatingError, self).__init__()
+        self.message = message
+        self.filename = filename
+        self.lineno = lineno
+
+    def __str__(self):
+        msg = ''
+        if self.filename:
+            msg += self.filename
+        if self.lineno >= 0:
+            msg += ', line %d' % self.lineno
+        msg += ': ' + self.message
+        return msg
+
+
 class TemplateEngine(object):
     EXTENSIONS = []