[Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48
jvr@users.sourceforge.net
jvr@users.sourceforge.net
Wed, 02 Jul 2003 13:03:06 -0700
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1:/tmp/cvs-serv23477/Lib
Modified Files:
sre.py sre_compile.py
Log Message:
Fix and test for bug #764548:
Use isinstance() instead of comparing types directly, to enable
subclasses of str and unicode to be used as patterns.
Blessed by /F.
Index: sre.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/sre.py,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** sre.py 14 Oct 2002 12:22:17 -0000 1.45
--- sre.py 2 Jul 2003 20:03:04 -0000 1.46
***************
*** 220,226 ****
return p
pattern, flags = key
! if type(pattern) is _pattern_type:
return pattern
! if type(pattern) not in sre_compile.STRING_TYPES:
raise TypeError, "first argument must be string or compiled pattern"
try:
--- 220,226 ----
return p
pattern, flags = key
! if isinstance(pattern, _pattern_type):
return pattern
! if not isinstance(pattern, sre_compile.STRING_TYPES):
raise TypeError, "first argument must be string or compiled pattern"
try:
Index: sre_compile.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/sre_compile.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** sre_compile.py 19 Apr 2003 12:56:07 -0000 1.47
--- sre_compile.py 2 Jul 2003 20:03:04 -0000 1.48
***************
*** 429,438 ****
code[skip] = len(code) - skip
- STRING_TYPES = [type("")]
-
try:
! STRING_TYPES.append(type(unicode("")))
except NameError:
! pass
def _code(p, flags):
--- 429,438 ----
code[skip] = len(code) - skip
try:
! unicode
except NameError:
! STRING_TYPES = type("")
! else:
! STRING_TYPES = (type(""), type(unicode("")))
def _code(p, flags):
***************
*** 454,458 ****
# internal: convert pattern list to internal format
! if type(p) in STRING_TYPES:
import sre_parse
pattern = p
--- 454,458 ----
# internal: convert pattern list to internal format
! if isinstance(p, STRING_TYPES):
import sre_parse
pattern = p