]> granicus.if.org Git - python/commitdiff
Close #19078: memoryview now supports reversed
authorNick Coghlan <ncoghlan@gmail.com>
Wed, 2 Oct 2013 12:06:54 +0000 (22:06 +1000)
committerNick Coghlan <ncoghlan@gmail.com>
Wed, 2 Oct 2013 12:06:54 +0000 (22:06 +1000)
Patch by Claudiu Popa

Lib/test/test_memoryview.py
Misc/NEWS
Objects/memoryobject.c

index ee6b15ac14833f6d95afbf1b2ef7873467644e9b..ffd4f5851a20145e24cc36ce1612380f0cc32c8c 100644 (file)
@@ -352,6 +352,15 @@ class AbstractMemoryTests:
             self.assertIs(wr(), None)
             self.assertIs(L[0], b)
 
+    def test_reversed(self):
+        for tp in self._types:
+            b = tp(self._source)
+            m = self._view(b)
+            aslist = list(reversed(m.tolist()))
+            self.assertEqual(list(reversed(m)), aslist)
+            self.assertEqual(list(reversed(m)), list(m[::-1]))
+
+
 # Variations on source objects for the buffer: bytes-like objects, then arrays
 # with itemsize > 1.
 # NOTE: support for multi-dimensional objects is unimplemented.
index 9cf8adafac41a03f2048a771d8471c015c9c14d2..71de0bb68b229af9d9f4b8fb03e3876433f63326 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,10 @@ Projected release date: 2013-10-20
 Core and Builtins
 -----------------
 
+- Issue #19078: memoryview now correctly supports the reversed builtin
+  (Patch by Claudiu Popa)
+
+
 Library
 -------
 
index abd069b324fe58eb564e39e87e06b997ad323610..e57af1832fbe5d6e633c3d402f6439e94cbdb96a 100644 (file)
@@ -2402,7 +2402,7 @@ static PyMappingMethods memory_as_mapping = {
 
 /* As sequence */
 static PySequenceMethods memory_as_sequence = {
-        0,                                /* sq_length */
+        (lenfunc)memory_length,           /* sq_length */
         0,                                /* sq_concat */
         0,                                /* sq_repeat */
         (ssizeargfunc)memory_item,        /* sq_item */