diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py index 36aca958c76..942a72c0ce7 100644 --- a/Lib/_abcoll.py +++ b/Lib/_abcoll.py @@ -519,6 +519,7 @@ class Sequence(Sized, Iterable, Container): Sequence.register(tuple) Sequence.register(basestring) Sequence.register(buffer) +Sequence.register(xrange) class MutableSequence(Sequence): diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index e11d999a51e..fe96117ffdd 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -393,6 +393,9 @@ class TestCollectionABCs(ABCTestCase): self.failUnless(isinstance(sample(), Sequence)) self.failUnless(issubclass(sample, Sequence)) self.failUnless(issubclass(basestring, Sequence)) + self.failUnless(isinstance(range(10), Sequence)) + self.failUnless(issubclass(xrange, Sequence)) + self.failUnless(issubclass(str, Sequence)) self.validate_abstract_methods(Sequence, '__contains__', '__iter__', '__len__', '__getitem__') diff --git a/Misc/NEWS b/Misc/NEWS index c71c6786cd3..efa19a20a57 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,8 @@ What's New in Python 2.6.2 Core and Builtins ----------------- +- xrange() is now registered as a Sequence. + - Issue #5247: Improve error message when unknown format codes are used when using str.format() with str, unicode, long, int, and float arguments.