== debugging jinja == The quickest way to understand what jinja is doing under the covers is to dump the internal code it compiles.
# lib/python2.7/site-packages/jinja2/environment.py
553 @internalcode
554 def compile(self, source, name=None, filename=None, raw=False,
555 defer_init=False):
...
575 source_hint = None
576 try:
577 if isinstance(source, string_types):
578 source_hint = source
579 source = self._parse(source, name, filename)
580 source = self._generate(source, name, filename,
581 defer_init=defer_init)
582 import q; q(source)
583 if raw:
584 return source
585 if filename is None:
586 filename = ''
587 else:
588 filename = encode_filename(filename)
589 return self._compile(source, filename)
590 except TemplateSyntaxError:
591 exc_info = sys.exc_info()
592 self.handle_exception(exc_info, source_hint=source_hint)