Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InvalidExpression on jinja loop #10

Open
khornberg opened this issue May 25, 2017 · 0 comments
Open

InvalidExpression on jinja loop #10

khornberg opened this issue May 25, 2017 · 0 comments

Comments

@khornberg
Copy link

Is there a way to list things for jinja2schema to ignore as it goes through the AST?

I was able to get it working if I hacked in

@visits_expr(nodes.Call)
def visit_call(ast, ctx, macroses=None, config=default_config):
    // my code to short circuit evaluating the node
    if ast.node.node.name in ('loop'):
        return Unknown(), Unknown()

in jinja2schema/visitors/expr.py

Stacktrace

return infer(template_source, config=Config(PACKAGE_NAME='documents', TEMPLATE_DIR=settings.TEMPLATE_PATH))
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/core.py", line 66, in infer
    return infer_from_ast(parse(template), config=config, ignore_constants=True)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/core.py", line 49, in infer_from_ast
    rv = visit(ast, {}, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 19, in visit
    structure = visit_many(node.body, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 36, in visit_many
    structure = visit(node, macroses, config, predicted_struct_cls, return_struct_cls)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 14, in visit
    structure = visit_stmt(node, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/stmt.py", line 54, in visit_stmt
    return visitor(ast, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/stmt.py", line 59, in visit_for
    body_struct = visit_many(ast.body, macroses, config, predicted_struct_cls=Scalar)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 36, in visit_many
    structure = visit(node, macroses, config, predicted_struct_cls, return_struct_cls)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 14, in visit
    structure = visit_stmt(node, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/stmt.py", line 54, in visit_stmt
    return visitor(ast, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/stmt.py", line 153, in visit_output
    return visit_many(ast.nodes, macroses, config, predicted_struct_cls=Scalar)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 36, in visit_many
    structure = visit(node, macroses, config, predicted_struct_cls, return_struct_cls)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/util.py", line 17, in visit
    _, structure = visit_expr(node, ctx, macroses, config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/expr.py", line 156, in visit_expr
    return visitor(ast, ctx, macroses, config=config)
  File "/home/user/local/lib/python3.4/site-packages/jinja2schema/visitors/expr.py", line 402, in visit_call
    raise InvalidExpression(ast, '"{0}" call is not supported'.format(ast.node.attr))
jinja2schema.exceptions.InvalidExpression: line 367: "cycle" call is not supported
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant