Bug #1675967: re patterns pickled with older Python versions can

now be unpickled.
 (backport form rev. 54492)
This commit is contained in:
Žiga Seilnacht 2007-03-21 20:37:39 +00:00
parent 7ed0a65831
commit e5df857cc3
3 changed files with 15 additions and 0 deletions

View File

@ -8,3 +8,6 @@ warnings.warn("The sre module is deprecated, please import re.",
from re import *
from re import __all__
# old pickles expect the _compile() reconstructor in this module
from re import _compile

View File

@ -414,6 +414,15 @@ class ReTests(unittest.TestCase):
self.pickle_test(pickle)
import cPickle
self.pickle_test(cPickle)
# old pickles expect the _compile() reconstructor in sre module
import warnings
original_filters = warnings.filters[:]
try:
warnings.filterwarnings("ignore", "The sre module is deprecated",
DeprecationWarning)
from sre import _compile
finally:
warnings.filters = original_filters
def pickle_test(self, pickle):
oldpat = re.compile('a(?:b|(c|e){1,2}?|d)+?(.)')

View File

@ -217,6 +217,9 @@ Extension Modules
Library
-------
- Bug #1675967: re patterns pickled with Python 2.4 and earlier can
now be unpickled with Python 2.5.
- Bug #1684254: webbrowser now uses shlex to split any command lines
given to get(). It also detects when you use '&' as the last argument
and creates a BackgroundBrowser then.