Avoid calling __dict_replace() if we don't need to -- the call is much

more expensive than just doing to work needed, and these things seem
to always turn into a bottleneck eventually.
This commit is contained in:
Fred Drake 2002-10-28 17:29:01 +00:00
parent 15941e6a63
commit f55222d98f
1 changed files with 10 additions and 8 deletions

View File

@ -28,10 +28,11 @@ def escape(data, entities={}):
# must do ampersand first
data = data.replace("&", "&")
data = __dict_replace(data, {"<" : "&lt;",
">" : "&gt;",
})
return __dict_replace(data, entities)
data = data.replace(">", "&gt;")
data = data.replace("<", "&lt;")
if entities:
data = __dict_replace(data, entities)
return data
def unescape(data, entities={}):
"""Unescape &amp;, &lt;, and &gt; in a string of data.
@ -40,12 +41,13 @@ def unescape(data, entities={}):
the optional entities parameter. The keys and values must all be
strings; each key will be replaced with its corresponding value.
"""
data = __dict_replace(data, {"&lt;" : "<",
"&gt;" : ">",
})
data = data.replace("&lt;", "<")
data = data.replace("&gt;", ">")
# must do ampersand last
data = data.replace("&amp;", "&")
return __dict_replace(data, entities)
if entities:
data = __dict_replace(data, entities)
return data
def quoteattr(data, entities={}):
"""Escape and quote an attribute value.