2013-06-03 46 views
1

我有以下脚本:pystache可以告诉我一个模式没有被定义吗?

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

它打印:

I say bye 

但其实我是想pystache因为有一个未定义的模式引发异常。在我的真实代码中,事情更复杂,因此获取关于哪些模式未定义的提示将非常有价值。

是否可以为它配置pystache?

回答

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) 
0

我不知道pystache。我可以提出一个帮手,而不是 - 使用format()

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

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

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

+0

谢谢,但没有。 Pystache(python中的胡子实现)比这个功能更丰富。我的例子故意非常简单。 – dangonfast

相关问题