1 # -*- coding: utf-8 -*-
6 Native Python implementation the C module is not compiled.
8 :copyright: (c) 2010 by Armin Ronacher.
9 :license: BSD, see LICENSE for more details.
11 from markupsafe
import Markup
12 from markupsafe
._compat
import text_type
16 """Convert the characters &, <, >, ' and " in string s to HTML-safe
17 sequences. Use this if you need to display text that might contain
18 such characters in HTML. Marks return value as markup string.
20 if hasattr(s
, '__html__'):
22 return Markup(text_type(s
)
23 .replace('&', '&')
26 .replace("'", ''')
27 .replace('"', '"')
32 """Like :func:`escape` but converts `None` into an empty
41 """Make a string unicode if it isn't already. That way a markup
42 string is not converted back to unicode.
44 if not isinstance(s
, text_type
):