From 45163ccce42ddf7840188c0c91e66ceeb28f0e58 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Wed, 2 Oct 2013 22:31:47 +1000 Subject: Close #18690: register memoryview with Sequence ABC --- Doc/library/stdtypes.rst | 4 ++++ Lib/collections/abc.py | 1 + Lib/test/test_collections.py | 2 ++ Misc/NEWS | 3 +++ 4 files changed, 10 insertions(+) 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 @@ copying. .. 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 @@ class Sequence(Sized, Iterable, Container): 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 @@ class TestCollectionABCs(ABCTestCase): 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 @@ Projected release date: 2013-10-20 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) -- cgit v0.12