我有以下脚本:
import pystache
d = {
'MSG' : 'bye'
}
print pystache.render('I say {{MSG}} {{THIS_IS_UNDEFINED}}', d)
哪个打印:
I say bye
但我实际上希望 pystache 引发异常,因为存在未定义的模式。在我的真实代码中,事情更复杂,因此获得有关未定义模式的提示将非常有价值。
是否可以为此配置pystache?
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)
我不知道pystache。我可以建议一个帮手 - 使用format()
:
def render(fmt, d):
fmt.replace('{{', '{').replace('}}', '}').format(**d)
return pystache.render(fmt, d)
也许你可以做到pystache.render = render
。
当然,这不是一个完美的解决方案。