| 123456789101112131415161718192021222324252627 |
- """
- General functions for HTML manipulation, backported from Py3.
- Note that this uses Python 2.7 code with the corresponding Python 3
- module names and locations.
- """
- from __future__ import unicode_literals
- _escape_map = {ord('&'): '&', ord('<'): '<', ord('>'): '>'}
- _escape_map_full = {ord('&'): '&', ord('<'): '<', ord('>'): '>',
- ord('"'): '"', ord('\''): '''}
- # NB: this is a candidate for a bytes/string polymorphic interface
- def escape(s, quote=True):
- """
- Replace special characters "&", "<" and ">" to HTML-safe sequences.
- If the optional flag quote is true (the default), the quotation mark
- characters, both double quote (") and single quote (') characters are also
- translated.
- """
- assert not isinstance(s, bytes), 'Pass a unicode string'
- if quote:
- return s.translate(_escape_map_full)
- return s.translate(_escape_map)
|