exceptions.py (2517B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\jinja2\exceptions.py 2 3 4 class TemplateError(Exception): 5 6 def __init__(self, message = None): 7 if message is not None: 8 message = unicode(message).encode('utf-8') 9 Exception.__init__(self, message) 10 11 @property 12 def message(self): 13 if self.args: 14 message = self.args[0] 15 if message is not None: 16 return message.decode('utf-8', 'replace') 17 18 19 class TemplateNotFound(IOError, LookupError, TemplateError): 20 message = None 21 22 def __init__(self, name, message = None): 23 IOError.__init__(self) 24 if message is None: 25 message = name 26 self.message = message 27 self.name = name 28 self.templates = [name] 29 30 def __str__(self): 31 return self.message.encode('utf-8') 32 33 def __unicode__(self): 34 return self.message 35 36 37 class TemplatesNotFound(TemplateNotFound): 38 39 def __init__(self, names = (), message = None): 40 if message is None: 41 message = u'non of the templates given were found: ' + u', '.join(map(unicode, names)) 42 TemplateNotFound.__init__(self, names and names[-1] or None, message) 43 self.templates = list(names) 44 45 46 class TemplateSyntaxError(TemplateError): 47 48 def __init__(self, message, lineno, name = None, filename = None): 49 TemplateError.__init__(self, message) 50 self.lineno = lineno 51 self.name = name 52 self.filename = filename 53 self.source = None 54 self.translated = False 55 56 def __str__(self): 57 return unicode(self).encode('utf-8') 58 59 def __unicode__(self): 60 if self.translated: 61 return self.message 62 location = 'line %d' % self.lineno 63 name = self.filename or self.name 64 if name: 65 location = 'File "%s", %s' % (name, location) 66 lines = [self.message, ' ' + location] 67 if self.source is not None: 68 try: 69 line = self.source.splitlines()[self.lineno - 1] 70 except IndexError: 71 line = None 72 73 if line: 74 lines.append(' ' + line.strip()) 75 return u'\n'.join(lines) 76 77 78 class TemplateAssertionError(TemplateSyntaxError): 79 pass 80 81 82 class TemplateRuntimeError(TemplateError): 83 pass 84 85 86 class UndefinedError(TemplateRuntimeError): 87 pass 88 89 90 class SecurityError(TemplateRuntimeError): 91 pass 92 93 94 class FilterArgumentError(TemplateRuntimeError): 95 pass