diff options
author | Brett Cannon <bcannon@gmail.com> | 2008-05-29 05:08:50 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2008-05-29 05:08:50 (GMT) |
commit | abb34fe9f3e9a1d4fe2bedee315e360fbf0b2ce5 (patch) | |
tree | 53be4bd55de2d39e02e4314f8c6aa06231b543f2 | |
parent | 5ec330cb2f1b041ebba6dedb6a02cd27a7e9f3da (diff) | |
download | cpython-abb34fe9f3e9a1d4fe2bedee315e360fbf0b2ce5.zip cpython-abb34fe9f3e9a1d4fe2bedee315e360fbf0b2ce5.tar.gz cpython-abb34fe9f3e9a1d4fe2bedee315e360fbf0b2ce5.tar.bz2 |
UserString.MutableString has been removed in Python 3.0.
Works on issue #2877. Thanks Quentin Gallet-Gilles for the patch.
-rw-r--r-- | Doc/library/userdict.rst | 3 | ||||
-rwxr-xr-x | Lib/UserString.py | 3 | ||||
-rw-r--r-- | Lib/test/test_py3kwarn.py | 8 | ||||
-rwxr-xr-x | Lib/test/test_userstring.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
5 files changed, 22 insertions, 2 deletions
diff --git a/Doc/library/userdict.rst b/Doc/library/userdict.rst index 7d36401..b0ef645 100644 --- a/Doc/library/userdict.rst +++ b/Doc/library/userdict.rst @@ -178,6 +178,9 @@ The :mod:`UserString` module defines the following classes: mutable object as dictionary key, which would be otherwise very error prone and hard to track down. + .. deprecated:: 2.6 + The :class:`MutableString` class has been removed in Python 3.0. + In addition to supporting the methods and operations of string and Unicode objects (see section :ref:`string-methods`), :class:`UserString` instances provide the following attribute: diff --git a/Lib/UserString.py b/Lib/UserString.py index 4ef2265..4460797 100755 --- a/Lib/UserString.py +++ b/Lib/UserString.py @@ -146,6 +146,9 @@ class MutableString(UserString, collections.MutableSequence): A faster and better solution is to rewrite your program using lists.""" def __init__(self, string=""): + from warnings import warnpy3k + warnpy3k('the class UserString.MutableString has been removed in ' + 'Python 3.0', stacklevel=2) self.data = string def __hash__(self): raise TypeError, "unhashable type (it is mutable)" diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py index d023e4b..eed46d1 100644 --- a/Lib/test/test_py3kwarn.py +++ b/Lib/test/test_py3kwarn.py @@ -219,6 +219,14 @@ class TestStdlibRemovals(unittest.TestCase): func = getattr(commands, name) self.assertRaises(DeprecationWarning, func, *([None]*arg_count)) + def test_mutablestring_removal(self): + # UserString.MutableString has been removed in 3.0. + import UserString + with catch_warning(record=False): + warnings.filterwarnings("error", ".*MutableString", + DeprecationWarning) + self.assertRaises(DeprecationWarning, UserString.MutableString) + def test_main(): with catch_warning(record=True): diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py index 06636fc..cae610e 100755 --- a/Lib/test/test_userstring.py +++ b/Lib/test/test_userstring.py @@ -4,8 +4,8 @@ import string from test import test_support, string_tests - from UserString import UserString, MutableString +import warnings class UserStringTest( string_tests.CommonTest, @@ -135,7 +135,10 @@ class MutableStringTest(UserStringTest): self.assertEqual(s, "") def test_main(): - test_support.run_unittest(UserStringTest, MutableStringTest) + with test_support.catch_warning(record=False): + warnings.filterwarnings("ignore", ".*MutableString", + DeprecationWarning) + test_support.run_unittest(UserStringTest, MutableStringTest) if __name__ == "__main__": test_main() @@ -63,6 +63,9 @@ Extension Modules Library ------- +Issue #2877 - The UserString.MutableString class has been removed in + Python 3.0. + - Do not close external file objects passed to tarfile.open(mode='w:bz2') when the TarFile is closed. |