Index: third_party/google-endpoints/future/backports/html/__init__.py |
diff --git a/third_party/google-endpoints/future/backports/html/__init__.py b/third_party/google-endpoints/future/backports/html/__init__.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..837afce1ba7157bc5fe27c84a044dc34e791ead6 |
--- /dev/null |
+++ b/third_party/google-endpoints/future/backports/html/__init__.py |
@@ -0,0 +1,28 @@ |
+""" |
+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) |
+ |