[svn] readded debug function
authorArmin Ronacher <armin.ronacher@active-4.com>
Mon, 12 Mar 2007 20:46:21 +0000 (21:46 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Mon, 12 Mar 2007 20:46:21 +0000 (21:46 +0100)
--HG--
branch : trunk

jinja/defaults.py
jinja/translators/python.py
jinja/utils.py
tests/exception.py
tests/templates/error.html

index 3abf938ffc463e95058aaab4def5c89528d10342..ddcc82b5b37a1b329fdd1b32d7f5fd589b4d7c7d 100644 (file)
 """
 from jinja.filters import FILTERS as DEFAULT_FILTERS
 from jinja.tests import TESTS as DEFAULT_TESTS
+from jinja.utils import debug_context
 
 
 DEFAULT_NAMESPACE = {
-    'range':                range
+    'range':                range,
+    'debug':                debug_context
 }
index db788432cc73586c34ddd837deb1d74d3ad3a15e..a71a4f532b737e1c1372f57ceb28718d202dffc9 100644 (file)
@@ -302,7 +302,6 @@ class PythonTranslator(Translator):
 
         # the template body
         body_lines = [self.handle_node(n) for n in node]
-        print list(node)
 
         # add translation helpers if required
         if self.require_translations:
index 832cfdb9d96e06c109861ee1e8147c8136e05cf2..311d90585669b736abbeabd315f2e422cf608d96 100644 (file)
@@ -56,6 +56,16 @@ def find_translations(environment, source):
         queue.extend(node.getChildNodes())
 
 
+def debug_context():
+    """
+    Use this function in templates to get a printed context.
+    Use this only in templates because it touches the stack.
+    """
+    context = sys._getframe(2).f_locals['context']
+    from pprint import pformat
+    return pformat(context.to_dict())
+
+
 # python2.4 and lower has a bug regarding joining of broken generators
 if sys.hexversion < (2, 5):
     def capture_generator(gen):
index 61a298d3711b349405015d7c282264eb6e57afcf..fdcc7e13151918255a6c0eb4b243f6bfdcd70fa9 100644 (file)
@@ -7,4 +7,4 @@ def test(*args):
     tmpl = e.loader.load('error.html')
     tmpl.render(items=range(10))
 
-make_server("localhost", 7000, DebuggedApplication(test)).serve_forever()
+make_server("localhost", 7000, DebuggedApplication(test, False)).serve_forever()
index 2958d56d586e51502e258d727a651cf3b02bebed..ef11dfb556b33ace27324466837d1387711cccfe 100644 (file)
@@ -1,5 +1,6 @@
 <ul>
+<meta http-equiv="Content-Type" content="" />
 {% for item in items %}
-  {{ item + "this is some strange unicode" }}
+  {{ item + "this will break the application" }}
 {% endfor %}
 </ul>