pystache可以告诉我是否没有定义模式?

时间:2013-06-03 09:20:43

标签: python mustache

我有以下脚本:

import pystache
d = {
    'MSG' : 'bye'
}
print pystache.render('I say {{MSG}} {{THIS_IS_UNDEFINED}}', d)

打印哪些:

I say bye 

但实际上我希望pystache引发异常,因为存在未定义的模式。在我的真实代码中,事情变得更复杂,因此获得关于哪些模式未定义的提示将非常有价值。

是否可以为此配置pystache?

2 个答案:

答案 0 :(得分:4)

Renderermissing_tags="strict"

一起使用
>>> import pystache
>>> pystache.Renderer(missing_tags="strict").render("I say {{MSG}} {{THIS_IS_UNDEFINED}}", d)
KeyNotFoundError: Key u'THIS_IS_UNDEFINED' not found: first part

您可以定义自己的函数strictrender

def strictrender(s, d):
    renderer = pystache.Renderer(missing_tags='strict')
    return renderer.render(s, d)

答案 1 :(得分:0)

我不知道pystache。我可以建议帮助 - 使用format()

def render(fmt, d):
    fmt.replace('{{', '{').replace('}}', '}').format(**d)
    return pystache.render(fmt, d)

也许你可以做pystache.render = render

当然,这不是一个完美的解决方案。