comparison markup/template.py @ 80:e0957965553f trunk

* Improve template error messages * Add the recently added support for seect('@*') to the TurboGears example.
author cmlenz
date Thu, 13 Jul 2006 19:13:02 +0000
parents 46fed54f23cd
children d60486018004
comparison
equal deleted inserted replaced
79:8d6bee631a58 80:e0957965553f
69 error.""" 69 error."""
70 70
71 def __init__(self, message, filename='<string>', lineno=-1, offset=-1): 71 def __init__(self, message, filename='<string>', lineno=-1, offset=-1):
72 if isinstance(message, SyntaxError) and message.lineno is not None: 72 if isinstance(message, SyntaxError) and message.lineno is not None:
73 message = str(message).replace(' (line %d)' % message.lineno, '') 73 message = str(message).replace(' (line %d)' % message.lineno, '')
74 message = '%s (%s, line %d)' % (message, filename, lineno)
74 TemplateError.__init__(self, message) 75 TemplateError.__init__(self, message)
75 self.filename = filename 76 self.filename = filename
76 self.lineno = lineno 77 self.lineno = lineno
77 self.offset = offset 78 self.offset = offset
78 79
84 An unknown directive is any attribute using the namespace for directives, 85 An unknown directive is any attribute using the namespace for directives,
85 with a local name that doesn't match any registered directive. 86 with a local name that doesn't match any registered directive.
86 """ 87 """
87 88
88 def __init__(self, name, filename='<string>', lineno=-1): 89 def __init__(self, name, filename='<string>', lineno=-1):
89 TemplateSyntaxError.__init__(self, 'Bad directive "%s"' % name.localname, 90 msg = 'bad directive "%s" (%s, line %d)' % (name.localname, filename,
90 filename, lineno) 91 lineno)
92 TemplateSyntaxError.__init__(self, msg, filename, lineno)
91 93
92 94
93 class TemplateNotFound(TemplateError): 95 class TemplateNotFound(TemplateError):
94 """Exception raised when a specific template file could not be found.""" 96 """Exception raised when a specific template file could not be found."""
95 97
Copyright (C) 2012-2017 Edgewall Software