moved local_html_escape into utils, thanks Simone
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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("'", "'") if quote else s
|
|
||||||
else:
|
|
||||||
import html
|
|
||||||
if isinstance(s, str):
|
|
||||||
return html.escape(s, quote=quote)
|
|
||||||
s = s.replace(b"&", b"&") # Must be done first!
|
|
||||||
s = s.replace(b"<", b"<")
|
|
||||||
s = s.replace(b">", b">")
|
|
||||||
if quote:
|
|
||||||
s = s.replace(b'"', b""")
|
|
||||||
s = s.replace(b'\'', b"'")
|
|
||||||
return s
|
|
||||||
@@ -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("'", "'") if quote else s
|
||||||
|
else:
|
||||||
|
import html
|
||||||
|
if isinstance(s, str):
|
||||||
|
return html.escape(s, quote=quote)
|
||||||
|
s = s.replace(b"&", b"&") # Must be done first!
|
||||||
|
s = s.replace(b"<", b"<")
|
||||||
|
s = s.replace(b">", b">")
|
||||||
|
if quote:
|
||||||
|
s = s.replace(b'"', b""")
|
||||||
|
s = s.replace(b'\'', b"'")
|
||||||
|
return s
|
||||||
|
|||||||
Reference in New Issue
Block a user