def make_jinja_call(render_function_name, used_variables, string_value, ctx):
used_defined_variables = ctx & used_variables
undefined_variables = used_variables - ctx
if len(undefined_variables) > 0:
translation_error("Undefined variables: " + ", ".join(undefined_variables), string_value)
used_parsers = used_defined_variables & set(FavaCode.get_known_parsers().keys())
used_user_variables = used_defined_variables - used_parsers
keyword_arguments = [keyword(arg=key, value=Name(id=key, ctx=Load()))
for key in used_user_variables] + \
[keyword(arg=key,
value=_build_subscript(Name(id='shared', ctx=Load()),
Name(id=key, ctx=Load())))
for key in used_parsers]
return FavaCode(
Call(func=Name(id=render_function_name, ctx=Load()),
args=[Str(s=string_value)],
keywords=keyword_arguments,
starargs=None, kwargs=None),
[],
parsers=used_parsers)
评论列表
文章目录