homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: PyBuffer_FillInfo returns 'B' buffer, whose behavior has changed w.r.t. 3.1/3.2
Type: behavior Stage: resolved
Components: Versions: Python 3.3, Python 3.4
process
Status: closed Resolution: duplicate
Dependencies: Superseder: memoryviews and ctypes
View: 15944
Assigned To: Nosy List: piro, skrah, vstinner
Priority: normal Keywords: 3.3regression

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) * (Python committer) 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) * (Python committer) 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:37adminsetgithub: 60408
2013年03月23日 13:07:43skrahsetstatus: open -> closed
superseder: memoryviews and ctypes
messages: + msg185046

resolution: duplicate
stage: resolved
2013年03月23日 12:55:16vstinnersetnosy: + vstinner
messages: + msg185044
2012年10月11日 23:50:08pitrousetkeywords: + 3.3regression
nosy: + skrah

versions: + Python 3.4
2012年10月11日 23:08:17pirocreate

AltStyle によって変換されたページ (->オリジナル) /