Issue 16204: PyBuffer_FillInfo returns 'B' buffer, whose behavior has changed w.r.t. 3.1/3.2 (original) (raw)
Issue16204
Created on 2012-10-11 23:08 by piro, last changed 2022-04-11 14:57 by admin. This issue is now closed.
Messages (3) | ||
---|---|---|
msg172710 - (view) | Author: Daniele Varrazzo (piro) * | Date: 2012-10-11 23:08 |
Definitely related to this change in Python 3.3: Accessing a memoryview element with format ‘B’ (unsigned bytes) now returns an integer (in accordance with the struct module syntax). For returning a bytes object the view must be cast to ‘c’ first. The object returned by PyBuffer_FillInfo is 'B' format: this means that python code finds itself dealing in Py 3.3 with a different object respect to what returned in Py 3.1 and 3.2. Is this change in the behavior wanted? Wouldn't have been better having FillInfo return a 'c' buffer instead? I'm adding support to Py 3.3 to psycopg2 and the B buffers make the test suite fail. I want psycopg to return consistent objects across 3.x. Is the change in this commit correct? https://github.com/dvarrazzo/psycopg/commit/469b6f8aff4cafe203d851b19bedfab0128e795a Is this a good way to return a 'c' buffer? | ||
msg185044 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2013-03-23 12:55 |
@skrah: ping! @piro: can't you modify psycopg2 to add conditional code depending on the Python version? IMO the behaviour change is wanted. http://www.python.org/dev/peps/pep-3118/ | ||
msg185046 - (view) | Author: Stefan Krah (skrah) * ![]() |
Date: 2013-03-23 13:07 |
I've corresponded privately with Daniele Varrazzo about the psycopg2 issue already and then forgot about this (the psycopg2 fix is good). Yes, the change was intentional. There's one open issue (#15944) where dabeaz isn't happy about the change, so let's make that a superseder. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:57:37 | admin | set | github: 60408 |
2013-03-23 13:07:43 | skrah | set | status: open -> closedsuperseder: memoryviews and ctypesmessages: + resolution: duplicatestage: resolved |
2013-03-23 12:55:16 | vstinner | set | nosy: + vstinnermessages: + |
2012-10-11 23:50:08 | pitrou | set | keywords: + 3.3regressionnosy: + skrahversions: + Python 3.4 |
2012-10-11 23:08:17 | piro | create |