diff options
author | Just van Rossum <just@letterror.com> | 2003-07-02 20:03:04 (GMT) |
---|---|---|
committer | Just van Rossum <just@letterror.com> | 2003-07-02 20:03:04 (GMT) |
commit | 12723baceab61f8812d68575c962696cc4e77fa1 (patch) | |
tree | 6ca9be800da1a9e5f3900302f5e82b883edb0231 /Lib/sre_compile.py | |
parent | 5e4e39f12a9ec71650e9d8296b1fb69831c808de (diff) | |
download | cpython-12723baceab61f8812d68575c962696cc4e77fa1.zip cpython-12723baceab61f8812d68575c962696cc4e77fa1.tar.gz cpython-12723baceab61f8812d68575c962696cc4e77fa1.tar.bz2 |
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.
Diffstat (limited to 'Lib/sre_compile.py')
-rw-r--r-- | Lib/sre_compile.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/sre_compile.py b/Lib/sre_compile.py index 1d59d7e..96f337a 100644 --- a/Lib/sre_compile.py +++ b/Lib/sre_compile.py @@ -428,12 +428,12 @@ def _compile_info(code, pattern, flags): _compile_charset(charset, flags, code) code[skip] = len(code) - skip -STRING_TYPES = [type("")] - try: - STRING_TYPES.append(type(unicode(""))) + unicode except NameError: - pass + STRING_TYPES = type("") +else: + STRING_TYPES = (type(""), type(unicode(""))) def _code(p, flags): @@ -453,7 +453,7 @@ def _code(p, flags): def compile(p, flags=0): # internal: convert pattern list to internal format - if type(p) in STRING_TYPES: + if isinstance(p, STRING_TYPES): import sre_parse pattern = p p = sre_parse.parse(p, flags) |