mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
SRE bug #441409:
compile should raise error for non-strings SRE bug #432570, 448951: reset group after failed match also bumped version number to 2.2.0
This commit is contained in:
parent
3bb4d214a4
commit
397a654791
3 changed files with 16 additions and 4 deletions
10
Lib/sre.py
10
Lib/sre.py
|
@ -104,7 +104,7 @@ __all__ = [ "match", "search", "sub", "subn", "split", "findall",
|
|||
"U", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE",
|
||||
"UNICODE", "error" ]
|
||||
|
||||
__version__ = "2.1.1"
|
||||
__version__ = "2.2.0"
|
||||
|
||||
# this module works under 1.5.2 and later. don't use string methods
|
||||
import string
|
||||
|
@ -197,6 +197,8 @@ def escape(pattern):
|
|||
_cache = {}
|
||||
_cache_repl = {}
|
||||
|
||||
_pattern_type = type(sre_compile.compile("", 0))
|
||||
|
||||
_MAXCACHE = 100
|
||||
|
||||
def _join(seq, sep):
|
||||
|
@ -209,8 +211,10 @@ def _compile(*key):
|
|||
if p is not None:
|
||||
return p
|
||||
pattern, flags = key
|
||||
if type(pattern) not in sre_compile.STRING_TYPES:
|
||||
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:
|
||||
p = sre_compile.compile(pattern, flags)
|
||||
except error, v:
|
||||
|
@ -312,7 +316,7 @@ import copy_reg
|
|||
def _pickle(p):
|
||||
return _compile, (p.pattern, p.flags)
|
||||
|
||||
copy_reg.pickle(type(_compile("", 0)), _pickle, _compile)
|
||||
copy_reg.pickle(_pattern_type, _pickle, _compile)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# experimental stuff (see python-dev discussions for details)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue