[Python-Dev] PEP: Adding data-type objects to Python
oliphant.travis at ieee.org
Wed Nov 1 00:03:01 CET 2006
Paul Moore wrote:
> On 10/31/06, Travis Oliphant <oliphant.travis at ieee.org> 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.
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
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.
More information about the Python-Dev