improved pprint
authorArmin Ronacher <armin.ronacher@active-4.com>
Sun, 21 Oct 2007 19:51:51 +0000 (21:51 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Sun, 21 Oct 2007 19:51:51 +0000 (21:51 +0200)
--HG--
branch : trunk

jinja/filters.py
jinja/utils.py

index 9540f6d7e50c6854c235e95f354bc2534ac44ef7..a431e3d77e8bb17f019608f23c1da74d77456199 100644 (file)
@@ -423,12 +423,15 @@ def do_filesizeformat():
     return wrapped
 
 
-def do_pprint():
+def do_pprint(verbose=False):
     """
     Pretty print a variable. Useful for debugging.
+
+    With Jinja 1.2 onwards you can pass it a parameter.  If this parameter
+    is truthy the output will be more verbose (this requires `pp`)
     """
     def wrapped(env, context, value):
-        return pformat(value)
+        return pformat(value, verbose=verbose)
     return wrapped
 
 
index fe8c0bafc16ea21c31e7d27cba1b40c09f6083bf..096afbc684519919f3f101f028d3a6abeab210dd 100644 (file)
@@ -350,16 +350,17 @@ except TypeError, e:
 del _test_singleton, _test_gen_bug
 
 
-def pformat(obj):
+def pformat(obj, verbose=False):
     """
     Prettyprint an object.  Either use the `pp` library or the
     builtin `pprint`.
     """
     try:
-        from pp import pp as format
+        from pp import pp
+        return pp(obj, verbose=verbose)
     except ImportError:
-        from pprint import pformat as format
-    return format(obj)
+        from pprint import pformat
+        return pformat(obj)
 
 
 def buffereater(f):
@@ -419,7 +420,7 @@ class DebugHelper(object):
 
     def __call__(self, env, context):
         """Print a nice representation of the context."""
-        return pformat(context.to_dict())
+        return pformat(context.to_dict(), verbose=True)
 
     def filters(self, env, context, builtins=True):
         """List the filters."""