moved local_html_escape into utils, thanks Simone

This commit is contained in:
mdipierro
2016-08-01 05:15:52 -05:00
parent 116a7ff006
commit 2e0630c48c
6 changed files with 29 additions and 31 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ from __future__ import print_function
import re
import urllib
from pydal._compat import maketrans, urllib_quote, unicodeT, to_bytes, to_native, xrange
from gluon.local_html_escape import local_html_escape as escape
from pydal.utils import local_html_escape as escape
from ast import parse as ast_parse
import ast
+1 -1
View File
@@ -8,7 +8,7 @@
"""
from __future__ import print_function
from pydal._compat import xrange
from gluon.local_html_escape import local_html_escape
from pydal.utils import local_html_escape
import re
__all__ = ['highlight']
+1 -1
View File
@@ -21,7 +21,7 @@ import base64
from gluon import sanitizer, decoder
import itertools
from pydal._compat import reduce, pickle, copyreg, HTMLParser, name2codepoint, iteritems, unichr, unicodeT, urllib_quote, to_bytes, to_native, to_unicode, basestring, urlencode, implements_bool
from gluon.local_html_escape import local_html_escape
from pydal.utils import local_html_escape
import marshal
from gluon.storage import Storage
+1 -1
View File
@@ -19,7 +19,7 @@ import logging
from cgi import escape
from threading import RLock
from gluon.utf8 import Utf8
from gluon.local_html_escape import local_html_escape
from pydal.utils import local_html_escape
from pydal._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes, iteritems, to_native, pjoin
from pydal.contrib.portalocker import read_locked, LockedFile
-27
View File
@@ -1,27 +0,0 @@
import sys
PY2 = sys.version_info[0] == 2
def local_html_escape(data, quote=False):
"""
Works with bytes.
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.
"""
if PY2:
import cgi
s = cgi.escape(data, quote)
return s.replace("'", "&#x27;") if quote else s
else:
import html
if isinstance(s, str):
return html.escape(s, quote=quote)
s = s.replace(b"&", b"&amp;") # Must be done first!
s = s.replace(b"<", b"&lt;")
s = s.replace(b">", b"&gt;")
if quote:
s = s.replace(b'"', b"&quot;")
s = s.replace(b'\'', b"&#x27;")
return s
+25
View File
@@ -359,3 +359,28 @@ def getipaddrinfo(host):
and isinstance(addrinfo[4][0], basestring)]
except socket.error:
return []
def local_html_escape(data, quote=False):
"""
Works with bytes.
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.
"""
if PY2:
import cgi
s = cgi.escape(data, quote)
return s.replace("'", "&#x27;") if quote else s
else:
import html
if isinstance(s, str):
return html.escape(s, quote=quote)
s = s.replace(b"&", b"&amp;") # Must be done first!
s = s.replace(b"<", b"&lt;")
s = s.replace(b">", b"&gt;")
if quote:
s = s.replace(b'"', b"&quot;")
s = s.replace(b'\'', b"&#x27;")
return s