blob: 90f30e907f90fad1cc65143d8302acbb73b024d5 [file] [log] [blame]
Armin Ronacher07bc6842008-03-31 14:18:49 +02001# -*- coding: utf-8 -*-
2"""
3 jinja2.utils
4 ~~~~~~~~~~~~
5
6 Utility functions.
7
8 :copyright: 2008 by Armin Ronacher.
9 :license: BSD, see LICENSE for more details.
10"""
Armin Ronacher8edbe492008-04-10 20:43:43 +020011
12
13def escape(obj, attribute=False):
14 """HTML escape an object."""
15 if hasattr(obj, '__html__'):
16 return obj.__html__()
Armin Ronacher449167d2008-04-11 17:55:05 +020017 return unicode(obj) \
Armin Ronacher8edbe492008-04-10 20:43:43 +020018 .replace('&', '&') \
19 .replace('>', '>') \
Armin Ronacher449167d2008-04-11 17:55:05 +020020 .replace('<', '&lt;') \
21 .replace('"', '&quot;')
Christoph Hacke9e43bb2008-04-13 23:35:48 +020022
23
24def pformat(obj, verbose=False):
25 """
26 Prettyprint an object. Either use the `pretty` library or the
27 builtin `pprint`.
28 """
29 try:
30 from pretty import pretty
31 return pretty(obj, verbose=verbose)
32 except ImportError:
33 from pprint import pformat
34 return pformat(obj)