[Python-Dev] PEP: Adding data-type objects to Python
Travis Oliphant
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.
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
If not,
> 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.
-Travis
More information about the Python-Dev
mailing list