1

我有以下脚本:

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

哪个打印:

I say bye 

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

是否可以为此配置pystache?

4

2 回答 2

4

Renderer与 一起使用missing_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)
于 2013-06-03T09:38:23.920 回答
0

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

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

也许你可以做到pystache.render = render

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

于 2013-06-03T09:32:55.680 回答