Commit ebb7f301 authored by Raymond Hettinger's avatar Raymond Hettinger

Speed-up escape()

parent d430726b
...@@ -188,12 +188,18 @@ def template(pattern, flags=0): ...@@ -188,12 +188,18 @@ def template(pattern, flags=0):
"Compile a template pattern, returning a pattern object" "Compile a template pattern, returning a pattern object"
return _compile(pattern, flags|T) return _compile(pattern, flags|T)
_alphanum = {}
for c in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890':
_alphanum[c] = 1
del c
def escape(pattern): def escape(pattern):
"Escape all non-alphanumeric characters in pattern." "Escape all non-alphanumeric characters in pattern."
s = list(pattern) s = list(pattern)
alphanum = _alphanum
for i in range(len(pattern)): for i in range(len(pattern)):
c = pattern[i] c = pattern[i]
if not ("a" <= c <= "z" or "A" <= c <= "Z" or "0" <= c <= "9"): if c not in alphanum:
if c == "\000": if c == "\000":
s[i] = "\\000" s[i] = "\\000"
else: else:
......
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