2013-06-03 7 views
1

나는 다음 스크립트가패턴이 정의되지 않은 경우 피스 캐시로 알려줄 수 있습니까?</p> <pre><code>import pystache d = { 'MSG' : 'bye' } print pystache.render('I say {{MSG}} {{THIS_IS_UNDEFINED}}', d) </code></pre> <p>인쇄 :

I say bye 

을하지만 실제로 정의되지 않은 패턴이 있기 때문에 예외를 발생하는 pystache를 원한다. 제 실제 코드에서는 상황이 더욱 복잡해지기 때문에 어떤 패턴이 정의되지 않았는지에 대한 힌트를 얻는 것이 매우 중요합니다.

피스 캐시를 구성 할 수 있습니까?

답변

4

사용을 Renderermissing_tags="strict"으로 : 당신은 당신의 자신의 기능 strictrender 정의 할 수

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

:

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

나는 피스 타크를 모른다.

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

을하고 아마 당신은 pystache.render = render을 수행 할 수 있습니다 format()를 사용하여 - 내가 대신 도우미를 제안 할 수 있습니다.

물론 완벽한 솔루션은 아닙니다.

+0

감사합니다,하지만. 피스 티슈 (파이썬에서의 콧수염 구현)는 그보다 더 풍부한 기능입니다. 나의 예는 의도적으로 매우 단순했다. – dangonfast

관련 문제