Kaydet (Commit) abb636c1 authored tarafından Tom's avatar Tom Kaydeden (comit) Tim Graham

Improved performance of utils.html.escape().

üst 6c92f711
import copy
import itertools
import operator
from functools import total_ordering, wraps
......@@ -189,7 +190,7 @@ def keep_lazy(*resultclasses):
@wraps(func)
def wrapper(*args, **kwargs):
for arg in list(args) + list(kwargs.values()):
for arg in itertools.chain(args, kwargs.values()):
if isinstance(arg, Promise):
break
else:
......
......@@ -30,6 +30,14 @@ simple_url_re = re.compile(r'^https?://\[?\w', re.IGNORECASE)
simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)($|/.*)$', re.IGNORECASE)
simple_email_re = re.compile(r'^\S+@\S+\.\S+$')
_html_escapes = {
ord('&'): '&',
ord('<'): '&lt;',
ord('>'): '&gt;',
ord('"'): '&quot;',
ord("'"): '&#39;',
}
@keep_lazy(str, SafeText)
def escape(text):
......@@ -41,10 +49,7 @@ def escape(text):
This may result in double-escaping. If this is a concern, use
conditional_escape() instead.
"""
return mark_safe(
str(text).replace('&', '&amp;').replace('<', '&lt;')
.replace('>', '&gt;').replace('"', '&quot;').replace("'", '&#39;')
)
return mark_safe(str(text).translate(_html_escapes))
_js_escapes = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment