Works on issue #2877. Thanks Quentin Gallet-Gilles for the patch.
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:
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)"
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):
import string
from test import test_support, string_tests
-
from UserString import UserString, MutableString
+import warnings
class UserStringTest(
string_tests.CommonTest,
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()
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.