added pp support to jinja
authorArmin Ronacher <armin.ronacher@active-4.com>
Sun, 21 Oct 2007 19:37:54 +0000 (21:37 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Sun, 21 Oct 2007 19:37:54 +0000 (21:37 +0200)
--HG--
branch : trunk

jinja/filters.py
jinja/utils.py

index 675f3109a9099c3e5e056af452fc6aafaf86f482..9540f6d7e50c6854c235e95f354bc2534ac44ef7 100644 (file)
@@ -13,7 +13,7 @@ from random import choice
 from operator import itemgetter
 from urllib import urlencode, quote
 from jinja.utils import urlize, escape, reversed, sorted, groupby, \
-     get_attribute
+     get_attribute, pformat
 from jinja.datastructure import TemplateData
 from jinja.exceptions import FilterArgumentError, SecurityException
 
@@ -428,7 +428,6 @@ def do_pprint():
     Pretty print a variable. Useful for debugging.
     """
     def wrapped(env, context, value):
-        from pprint import pformat
         return pformat(value)
     return wrapped
 
index 9e8190c952154159cc46ad74ce5da19e192a174b..fe8c0bafc16ea21c31e7d27cba1b40c09f6083bf 100644 (file)
@@ -350,6 +350,18 @@ except TypeError, e:
 del _test_singleton, _test_gen_bug
 
 
+def pformat(obj):
+    """
+    Prettyprint an object.  Either use the `pp` library or the
+    builtin `pprint`.
+    """
+    try:
+        from pp import pp as format
+    except ImportError:
+        from pprint import pformat as format
+    return format(obj)
+
+
 def buffereater(f):
     """
     Used by the python translator to capture output of substreams.
@@ -407,7 +419,6 @@ class DebugHelper(object):
 
     def __call__(self, env, context):
         """Print a nice representation of the context."""
-        from pprint import pformat
         return pformat(context.to_dict())
 
     def filters(self, env, context, builtins=True):