NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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