[Python-3000] PEP Draft: Enhancing the buffer protcol (original) (raw)
Jim Jewett jimjjewett at gmail.com
Thu Mar 1 15:28:58 CET 2007
- Previous message: [Python-3000] Stars
- Next message: [Python-3000] Draft PEP for New IO system
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2/27/07, Travis E. Oliphant <oliphant.travis at ieee.org> wrote:
Rationale
(This was a good section; thank you.)
5. There is no shape information provided for the memory. But, several array-like Python types could make use of a standard way to describe the shape-interpretation of the memory (!wxPython, GTK, pyQT, CVXOPT, !PyVox, Audio and Video Libraries, ctypes, !NumPy, data-base interfaces, etc.)
Are the "!" characters meaningful?
This view object should be used in the other API calls and does not need to be decref'd. It should be "released" if the interface exporter provides the bfreleasebuffer function.
Pity you can't use decref instead of release ... could the description object be treated as a real object, and decrefed to indicate release? (Or are there lots of tiny buffers with identical large descriptions?)
Additions to the struct string-syntax
The struct string-syntax is missing some characters to fully implement data-format descriptions already available elsewhere (in ctypes and NumPy for example). Here are the proposed additions: Character Description ================================== '1' bit (number before states how many bits)
How do you distinguish the "1" for bit from a trailing 1 in a number? It sounds like
"21" means 2 bits "2g" means 2 long doubles "21g" means either 2 bits and a long double, or 21 long doubles.
Code should also be able to request contiguous memory if needed and objects exporting the buffer interface should be able to handle that either by raising an error
Do you want to specify the error?
-jJ
- Previous message: [Python-3000] Stars
- Next message: [Python-3000] Draft PEP for New IO system
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]