Close #18690: register memoryview with Sequence ABC
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index cf989cf..bd275af 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2458,6 +2458,10 @@
.. versionchanged:: 3.3
One-dimensional memoryviews with formats 'B', 'b' or 'c' are now hashable.
+ .. versionchanged:: 3.4
+ memoryview is now registered automatically with
+ :class:`collections.abc.Sequence`
+
:class:`memoryview` has several methods:
.. method:: __eq__(exporter)
diff --git a/Lib/collections/abc.py b/Lib/collections/abc.py
index a8681ea..d19e592 100644
--- a/Lib/collections/abc.py
+++ b/Lib/collections/abc.py
@@ -643,6 +643,7 @@
Sequence.register(tuple)
Sequence.register(str)
Sequence.register(range)
+Sequence.register(memoryview)
class ByteString(Sequence):
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 706cc9e..6c733ee 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -782,6 +782,8 @@
self.assertTrue(issubclass(sample, Sequence))
self.assertIsInstance(range(10), Sequence)
self.assertTrue(issubclass(range, Sequence))
+ self.assertIsInstance(memoryview(b""), Sequence)
+ self.assertTrue(issubclass(memoryview, Sequence))
self.assertTrue(issubclass(str, Sequence))
self.validate_abstract_methods(Sequence, '__contains__', '__iter__', '__len__',
'__getitem__')
diff --git a/Misc/NEWS b/Misc/NEWS
index 71de0bb..f7a118c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
Core and Builtins
-----------------
+- Issue #18690: memoryview is now automatically registered with
+ collections.abc.Sequence
+
- Issue #19078: memoryview now correctly supports the reversed builtin
(Patch by Claudiu Popa)