Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r59708:3d2ff1e85bf5
Date: 2013-01-04 18:55 -0800
http://bitbucket.org/pypy/pypy/changeset/3d2ff1e85bf5/
Log: Optimize match.group('name') by making it a module dict.
diff --git a/lib-python/2.7/sre_parse.py b/lib-python/2.7/sre_parse.py
--- a/lib-python/2.7/sre_parse.py
+++ b/lib-python/2.7/sre_parse.py
@@ -16,6 +16,12 @@
from sre_constants import *
+try:
+ from __pypy__ import newdict
+except ImportError:
+ def newdict(tp):
+ return {}
+
SPECIAL_CHARS = ".\\[{()*+?^$|"
REPEAT_CHARS = "*+?{"
@@ -68,7 +74,7 @@
self.flags = 0
self.open = []
self.groups = 1
- self.groupdict = {}
+ self.groupdict = newdict("module")
def opengroup(self, name=None):
gid = self.groups
self.groups = gid + 1
diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -90,7 +90,7 @@
# SRE_Pattern class
class W_SRE_Pattern(Wrappable):
- _immutable_fields_ = ["code", "flags", "num_groups"]
+ _immutable_fields_ = ["code", "flags", "num_groups", "w_indexgroup"]
def cannot_copy_w(self):
space = self.space
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit