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 re
import urllib import urllib
from pydal._compat import maketrans, urllib_quote, unicodeT, to_bytes, to_native, xrange 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 from ast import parse as ast_parse
import ast import ast
+1 -1
View File
@@ -8,7 +8,7 @@
""" """
from __future__ import print_function from __future__ import print_function
from pydal._compat import xrange from pydal._compat import xrange
from gluon.local_html_escape import local_html_escape from pydal.utils import local_html_escape
import re import re
__all__ = ['highlight'] __all__ = ['highlight']
+1 -1
View File
@@ -21,7 +21,7 @@ import base64
from gluon import sanitizer, decoder from gluon import sanitizer, decoder
import itertools 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 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 import marshal
from gluon.storage import Storage from gluon.storage import Storage
+1 -1
View File
@@ -19,7 +19,7 @@ import logging
from cgi import escape from cgi import escape
from threading import RLock from threading import RLock
from gluon.utf8 import Utf8 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._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes, iteritems, to_native, pjoin
from pydal.contrib.portalocker import read_locked, LockedFile 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)] and isinstance(addrinfo[4][0], basestring)]
except socket.error: except socket.error:
return [] 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