bpo-37723: Fix performance regression on regular expression parsing. (GH-15030)
Improve performance of sre_parse._uniq function.
This commit is contained in:
parent
1b29af83bc
commit
9f55551f3d
|
@ -430,13 +430,7 @@ def _escape(source, escape, state):
|
|||
raise source.error("bad escape %s" % escape, len(escape))
|
||||
|
||||
def _uniq(items):
|
||||
if len(set(items)) == len(items):
|
||||
return items
|
||||
newitems = []
|
||||
for item in items:
|
||||
if item not in newitems:
|
||||
newitems.append(item)
|
||||
return newitems
|
||||
return list(dict.fromkeys(items))
|
||||
|
||||
def _parse_sub(source, state, verbose, nested):
|
||||
# parse an alternation: a|b|c
|
||||
|
|
|
@ -1708,6 +1708,7 @@ Michael Urman
|
|||
Hector Urtubia
|
||||
Lukas Vacek
|
||||
Ville Vainio
|
||||
Yann Vaginay
|
||||
Andi Vajda
|
||||
Case Van Horsen
|
||||
John Mark Vandenberg
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fix performance regression on regular expression parsing with huge
|
||||
character sets. Patch by Yann Vaginay.
|
Loading…
Reference in New Issue