我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用jinja2.exceptions.TemplateSyntaxError()。
def expect(self, expr): """Expect a given token type and return it. This accepts the same argument as :meth:`jinja2.lexer.Token.test`. """ if not self.current.test(expr): expr = describe_token_expr(expr) if self.current.type is TOKEN_EOF: raise TemplateSyntaxError('unexpected end of template, ' 'expected %r.' % expr, self.current.lineno, self.name, self.filename) raise TemplateSyntaxError("expected token %r, got %r" % (expr, describe_token(self.current)), self.current.lineno, self.name, self.filename) try: return self.current finally: next(self)
def parse(self, parser): lineno = next(parser.stream).lineno next_token = parser.stream.look() # if there are parameters if next_token.type == "comma": args = [parser.parse_expression()] if parser.stream.skip_if('comma'): args.append(parser.parse_expression()) else: raise TemplateSyntaxError("Missing Lorem Ipsum generator parameter: kind", lineno) if args[1].value not in self.GENERATORS: raise TemplateSyntaxError( "Supported Lorem Ipsum generator kinds are: %s" % ", ".join(self.GENERATORS.keys()), lineno ) else: # if no parameters were supplied args = [nodes.Const(1), nodes.Const("paragraphs")] return nodes.Output( [self.call_method("_lipsum", args)], lineno=lineno )
def parse(self, parser): lineno = next(parser.stream).lineno # get the context context = nodes.ContextReference() # get the arguments args = [context] try: while True: args.append(parser.parse_expression()) except TemplateSyntaxError: pass # no more arguments # get the tag_name for use in looking up callable self.active_tag = parser._tag_stack[-1] # create the node node = self.call_method('_invoke_tag', args=args, lineno=lineno) return nodes.Output( [node], lineno=lineno )
def render(self, destination, template, default): try: if os.path.exists(template): tpl = self._cwd_template(template) else: tpl = self._pkg_template(default) with open(destination, 'w+') as fd: fd.write(tpl.render(self._context)) except TemplateNotFound as e: message = "Template file not found `{template}`." raise MuonError(message, template=template) except TemplateSyntaxError as e: message = "Syntax Error: {template}:{e.lineno} {e.message}." raise MuonError(message, template=template, e=e) except TemplateError as e: message = "Unexpected error while processing `{template}`. {e.message}" raise MuonError(message, e=e, template=template) except IOError as e: message = "Error {e.errno} while accessing `{e.filename}`. {e.strerror}" raise MuonError(message, e=e)
def __init__(self, message, cls=TemplateSyntaxError): self.message = message self.error_class = cls
def fail(self, msg, lineno=None, exc=TemplateSyntaxError): """Convenience method that raises `exc` with the message, passed line number or last line number as well as the current name and filename. """ if lineno is None: lineno = self.stream.current.lineno raise exc(msg, lineno, self.name, self.filename)
def is_template_syntax_error(self): """`True` if this is a template syntax error.""" return isinstance(self.exc_value, TemplateSyntaxError)