| # -*- coding: utf-8 -*- |
| """ |
| jinja2.exceptions |
| ~~~~~~~~~~~~~~~~~ |
| |
| Jinja exceptions. |
| |
| :copyright: 2008 by Armin Ronacher. |
| :license: BSD, see LICENSE for more details. |
| """ |
| |
| |
| class TemplateError(Exception): |
| """Baseclass for all template errors.""" |
| |
| |
| class TemplateNotFound(IOError, LookupError, TemplateError): |
| """Raised if a template does not exist.""" |
| |
| def __init__(self, name): |
| IOError.__init__(self, name) |
| self.name = name |
| |
| |
| class TemplateSyntaxError(TemplateError): |
| """Raised to tell the user that there is a problem with the template.""" |
| |
| def __init__(self, message, lineno, name=None, filename=None): |
| if name is not None: |
| extra = '%s, line %d' % (name.encode('utf-8'), lineno) |
| else: |
| extra = 'line %d' % lineno |
| # if the message was provided as unicode we have to encode it |
| # to utf-8 explicitly |
| if isinstance(message, unicode): |
| message = message.encode('utf-8') |
| # otherwise make sure it's a in fact valid utf-8 |
| else: |
| message = message.decode('utf-8', 'ignore').encode('utf-8') |
| TemplateError.__init__(self, '%s (%s)' % (message, extra)) |
| self.message = message |
| self.lineno = lineno |
| self.name = name |
| self.filename = filename |
| |
| |
| class TemplateAssertionError(TemplateSyntaxError): |
| """Like a template syntax error, but covers cases where something in the |
| template caused an error at compile time that wasn't necessarily caused |
| by a syntax error. However it's a direct subclass of |
| :exc:`TemplateSyntaxError` and has the same attributes. |
| """ |
| |
| |
| class TemplateRuntimeError(TemplateError): |
| """A generic runtime error in the template engine. Under some situations |
| Jinja may raise this exception. |
| """ |
| |
| |
| class UndefinedError(TemplateRuntimeError): |
| """Raised if a template tries to operate on :class:`Undefined`.""" |
| |
| |
| class SecurityError(TemplateRuntimeError): |
| """Raised if a template tries to do something insecure if the |
| sandbox is enabled. |
| """ |
| |
| |
| class FilterArgumentError(TemplateRuntimeError): |
| """This error is raised if a filter was called with inappropriate |
| arguments |
| """ |