From e5df857cc3eb646d6d921eab14398fc8f47b8be9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=BDiga=20Seilnacht?= Date: Wed, 21 Mar 2007 20:37:39 +0000 Subject: [PATCH] Bug #1675967: re patterns pickled with older Python versions can now be unpickled. (backport form rev. 54492) --- Lib/sre.py | 3 +++ Lib/test/test_re.py | 9 +++++++++ Misc/NEWS | 3 +++ 3 files changed, 15 insertions(+) diff --git a/Lib/sre.py b/Lib/sre.py index 390094aaa6..c04576bafa 100644 --- a/Lib/sre.py +++ b/Lib/sre.py @@ -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 diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 14a0acfc6b..a8851804e4 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -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)+?(.)') diff --git a/Misc/NEWS b/Misc/NEWS index 19b8f1cee8..e526ac332d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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. -- 2.50.1