1 # -*- coding: utf-8 -*-
6 Helper module to simplify jinja debugging. Use
8 :copyright: 2006 by Armin Ronacher.
9 :license: BSD, see LICENSE for more details.
13 from jinja import Environment
14 from jinja.parser import Parser
15 from jinja.lexer import Lexer
16 from jinja.translators.python import PythonTranslator
19 __all__ = ['e', 't', 'p', 'l']
25 if os.environ.get('JDEBUG_SOURCEPRINT'):
26 original_translate = PythonTranslator.translate
28 def debug_translate(self):
29 rv = original_translate(self)
30 sys.stderr.write('## GENERATED SOURCE:\n%s\n' % rv)
33 PythonTranslator.translate = debug_translate
36 def p(x=None, f=None):
37 if x is None and f is not None:
38 x = e.loader.get_source(f)
39 print PythonTranslator(e, Parser(e, x, f).parse(), None).translate()
42 for token in e.lexer.tokenize(x):
43 print '%5s %-20s %r' % (item.lineno,
47 if __name__ == '__main__':
49 from jinja import FileSystemLoader
50 e.loader = FileSystemLoader(sys.argv[1])