Backport 69934: Register xrange() as a Sequence.
diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py
index 36aca95..942a72c 100644
--- a/Lib/_abcoll.py
+++ b/Lib/_abcoll.py
@@ -519,6 +519,7 @@
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 e11d999..fe96117 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -393,6 +393,9 @@
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 c71c678..efa19a2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
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.