Issue 2394: [Py3k] Finish the memoryview object implementation (original) (raw)

Created on 2008-03-18 15:59 by teoliphant, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (19)
msg63928 - (view) Author: Travis Oliphant (teoliphant) * (Python committer) Date: 2008-03-18 15:59
The memoryview object in Python 3.0 needs to be finished. There are a few methods that are not complete. In particular, the __getitem__ and __setitem__ functionality needs to be finished as well as the tolist() method.
msg67429 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2008-05-27 20:31
Raising priority.
msg70406 - (view) Author: Stefan Behnel (scoder) * (Python committer) Date: 2008-07-29 17:46
Also, the implementation does not follow the revised buffer PEP 3118. It still calls get/releasebuffer(NULL) to acquire a lock, which is no longer allowed by the buffer protocol. I think this should become a release blocker for the last beta.
msg70407 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2008-07-29 18:16
I agree, buffer interface should be completed before going into rc phase.
msg71165 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-15 09:38
See also #3560.
msg71412 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 12:39
Here is a preliminary patch implementing slices with getitem, adding a bunch of tests, and fixing a few problems. As stated elsewhere I only bother to test with simple byte buffers. The semantics of other types of buffers are too fuzzy for me.
msg71415 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2008-08-19 13:08
Antoine, if this is a "cleanup", perhaps you could fix #3101 while you're at it.
msg71419 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 14:24
Here is another patch with setitem too (integers and slices supported), and further tests.
msg71423 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 15:16
This patch fixes a crash in the codecs module. However, memoryview should also support comparisons (just == and !=) with bytes/bytearray objects (or any buffer-enabled objects), otherwise utf-8-sig produces wrong values (and there are no tests for it).
msg71428 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 15:38
Here is a patch to support comparisons of memoryview objects with other objects offering the buffer interface. Two objects are equal if their buffers have the same characteristics and compare equal bytewise. It also improves the test in test_codecs.py, ensuring the problem has been fixed.
msg71430 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 15:45
Adding some comparison tests.
msg71467 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 19:22
This patch changes all bytearray results (in indexing, tobytes()) to bytes, and adds the implementation the tolist(). Note: the tolist() implementation only handles one-dimensional byte buffers. It will have to be re-written using the struct module! But at least once that patch applied, I think we may drop down this bug to critical.
msg71469 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 19:26
Please review at http://codereview.appspot.com/3004
msg71493 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-19 22:11
Committed in r65886 after review from Benjamin and some small fixes. I'm downgrading this to critical for the remains of the memoryview API (support for more format types, multi-dimensional objects...). Perhaps those remainings will have to wait for 3.1.
msg71736 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-22 09:51
Guido, do we retarget the rest of this to 3.1? It sounds more reasonable to me.
msg71880 - (view) Author: Travis Oliphant (teoliphant) * (Python committer) Date: 2008-08-24 21:36
It would have been nice to finish the memoryview object for 3.0, but I ran into time constraints. The pieces that are left can be pushed to 3.1
msg71881 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2008-08-24 21:37
Great. It would be nice if you could at least do a quick review what has been committed though.
msg123887 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-12-13 18:01
It looks to me like the critical parts of this have been done, so I'm downgrading the priority.
msg154324 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-02-26 10:42
I think this issue is now superseded by #10181 and #3132.
History
Date User Action Args
2022-04-11 14:56:32 admin set github: 46646
2012-02-26 10:42:35 skrah set status: pending -> closed
2012-02-26 10:42:23 skrah set status: open -> pendingsuperseder: Problems with Py_buffer management in memoryobject.c (and elsewhere?)nosy: + skrahmessages: + resolution: duplicatestage: test needed -> resolved
2010-12-13 18:01:16 r.david.murray set priority: critical -> highversions: + Python 3.2, - Python 3.1nosy: + r.david.murraymessages: +
2010-05-28 04:14:26 belopolsky set nosy: + belopolsky
2009-03-14 01:15:05 pitrou set stage: test needed
2009-03-14 01:14:50 pitrou set files: - mem1.patch
2009-03-14 01:14:33 pitrou set files: - mem2.patch
2009-03-14 01:14:29 pitrou set files: - mem3.patch
2009-03-14 01:14:26 pitrou set files: - mem4.patch
2009-03-14 01:14:20 pitrou set files: - mem5.patch
2009-03-14 01:14:14 pitrou set files: - mem6.patch
2008-08-24 21:37:32 pitrou set messages: +
2008-08-24 21:36:51 teoliphant set versions: + Python 3.1, - Python 3.0
2008-08-24 21:36:31 teoliphant set messages: +
2008-08-22 09:51:33 pitrou set nosy: + gvanrossummessages: +
2008-08-19 22:11:42 pitrou set priority: release blocker -> criticalmessages: +
2008-08-19 19:26:31 pitrou set messages: +
2008-08-19 19:22:26 pitrou set files: + mem6.patchmessages: +
2008-08-19 15:45:10 pitrou set files: + mem5.patchmessages: +
2008-08-19 15:38:58 pitrou set files: + mem4.patchmessages: +
2008-08-19 15:16:07 pitrou set files: + mem3.patchmessages: +
2008-08-19 14:24:02 pitrou set files: + mem2.patchmessages: +
2008-08-19 13:08:07 benjamin.peterson set messages: +
2008-08-19 12:39:57 pitrou set files: + mem1.patchkeywords: + patchmessages: +
2008-08-15 09:38:43 pitrou set messages: +
2008-08-14 02:40:06 benjamin.peterson set nosy: + benjamin.peterson
2008-08-11 18:28:08 pitrou set nosy: + pitrou
2008-07-29 18:16:31 georg.brandl set priority: critical -> release blockermessages: +
2008-07-29 17:46:49 scoder set nosy: + scodermessages: +
2008-05-27 20:31:17 georg.brandl set priority: criticalassignee: teoliphantmessages: + nosy: + georg.brandl
2008-03-18 16:05:35 teoliphant set title: Finish the memoryview object implementation -> [Py3k] Finish the memoryview object implementation
2008-03-18 15:59:47 teoliphant create