Paul Moore wrote:
On 10/31/06, Travis Oliphant email@example.com wrote:
Martin v. Löwis wrote:
[...] because I still don't quite understand what the PEP wants to achieve.
Are you saying you still don't understand after having read the extended buffer protocol PEP, yet?
I can't speak for Martin, but I don't understand how I, as a Python programmer, might use the data type objects specified in the PEP. I have skimmed the extended buffer protocol PEP, but I'm conscious that no objects I currently use support the extended buffer protocol (and the PEP doesn't mention adding support to existing objects), so I don't see that as too relevant to me.
Do you use the PIL? The PIL supports the array interface.
CVXOPT supports the array interface.
Numarray Numeric NumPy
all support the array interface.
I have also installed numpy, and looked at the help for numpy.dtype, but that doesn't add much to the PEP.
The source-code is available.
The freely available chapters of the numpy book explain how dtypes describe data structures, but not how to use them.
The freely available Numeric documentation doesn't
refer to dtypes, as far as I can tell.
It kind of does, they are PyArray_Descr * structures in Numeric. They just aren't Python objects.
Is there any documentation on
how to use dtypes, independently of other features of numpy?
There are examples and other help pages at http://www.scipy.org
can you clarify where the benefit lies for a Python user of this proposal? (I understand the benefits of a common language for extensions to communicate datatype information, but why expose it to Python? How do Python users use it?)
The only benefit I imagine would be for an extension module library writer and for users of the struct and array modules. But, other than that, I don't know. It actually doesn't have to be exposed to Python. I used Python notation in the PEP to explain what is basically a C-structure. I don't care if the object ever gets exposed to Python.
Maybe that's part of the communication problem.
This is probably all self-evident to the numpy community, but I think that as the PEP is aimed at a wider audience it needs a little more background.
It's hard to write that background because most of what I understand is from the NumPy community. I can't give you all the examples but my concern is that you have all these third party libraries out there describing what is essentially binary data and using either string-copies or the buffer protocol + extra information obtained by some method or attribute that varies across the implementations. There should really be a standard for describing this data.
There are attempts at it in the struct and array module. There is the approach of ctypes but I claim that using Python type objects is over-kill for the purposes of describing data-formats.