[Numpy-discussion] Array Protocol change for Python 2.6

Tim Hochberg tim.hochberg at cox.net
Thu Jun 8 17:57:29 EDT 2006


Sasha wrote:

>On 6/8/06, Travis Oliphant <oliphant at ee.byu.edu> wrote:
>  
>
>>...
>>__array_struct__   (perhaps we could call this __array_interface__ but
>>I'm happy keeping the name the same too.)
>>    
>>
>
>+0 on the name change and consider making it a method rather than an attribute.
>  
>
I'm not thrilled with either name, nor do I have a better one, so put me 
down as undecided on name.

I marginally prefer an attribute to a name here.

I'm +1 on narrowing the interface though.

>>If __array_struct__ is a CObject then it behaves as it does now.
>>
>>If __array_struct__ is a tuple then each entry in the tuple is one of
>>the items currently obtained by an additional attribute access (except
>>the first item is always an integer indicating the version of the
>>protocol --- unused entries are None).
>>
>>    
>>
>
>-1
>
>This will complicate the use of array interface.  
>
I concur.

>I would propose
>creating a subtype of CObject that has the necessary attributes so
>that one can do a.__array_interface__.shape, for example.  I did not
>check if CObject is subclassable in 2.5, but if not, we can propose to
>make it subclassable for 2.6.
>  
>
Alternatively, if this proves to be a hassle, a function, 
unpack_interface or some such, could be provided that takes an 
__array_interface__ object and spits out the appropriate tuple or, 
perhaps better, and object with the appropriate field.

>  
>
>>...
>>
>>I would like to eliminate all the other array protocol attributes before
>>NumPy 1.0 (and re-label those such as __array_data__ that are useful in
>>other contexts --- like ctypes).
>>    
>>
>+1
>  
>
+1.


-tim





More information about the NumPy-Discussion mailing list