def parse(code, mode='exec', **exception_kwargs): """Parse an expression into AST""" try: return _ast_util.parse(code, '<unknown>', mode) except Exception: raise errors.SyntaxException( "(%s) %s (%r)" % (compat.exception_as().__class__.__name__, compat.exception_as(), code[0:50]), **exception_kwargs)
def parse(code, mode='exec', **exception_kwargs): """Parse an expression into AST""" try: return _ast_util.parse(code, '<unknown>', mode) except Exception: raise errors.SyntaxException( "(%s) %s (%r)" % ( compat.exception_as().__class__.__name__, compat.exception_as(), code[0:50] ), **exception_kwargs)
def _lookup_template(context, uri, relativeto): lookup = context._with_template.lookup if lookup is None: raise errors.TemplateLookupException( "Template '%s' has no TemplateLookup associated" % context._with_template.uri) uri = lookup.adjust_uri(uri, relativeto) try: return lookup.get_template(uri) except errors.TopLevelLookupException: raise errors.TemplateLookupException(str(compat.exception_as()))
def test_no_lookup(self): t = Template("hi <%include file='foo.html'/>") try: t.render() assert False except errors.TemplateLookupException: eq_( str(compat.exception_as()), "Template 'memory:%s' has no TemplateLookup associated" % \ hex(id(t)) )
def test_unclosed_tag(self): template = """ <%def name="foo()"> other text """ try: nodes = Lexer(template).parse() assert False except errors.SyntaxException: eq_(str(compat.exception_as()), "Unclosed tag: <%def> at line: 5 char: 9")
def test_unclosed_tag(self): template = """ <%def name="foo()"> other text """ try: nodes = Lexer(template).parse() assert False except errors.SyntaxException: eq_( str(compat.exception_as()), "Unclosed tag: <%def> at line: 5 char: 9" )
def _exec_template(callable_, context, args=None, kwargs=None): """execute a rendering callable given the callable, a Context, and optional explicit arguments the contextual Template will be located if it exists, and the error handling options specified on that Template will be interpreted here. """ template = context._with_template if template is not None and \ (template.format_errors or template.error_handler): try: callable_(context, *args, **kwargs) except Exception: _render_error(template, context, compat.exception_as()) except: e = sys.exc_info()[0] _render_error(template, context, e) else: callable_(context, *args, **kwargs)