Andrew Straw wrote:
> Dag Sverre Seljebotn wrote:
>> Stefan Behnel wrote:
>>   
>>> Dag Sverre Seljebotn wrote:
>>>     
>>>> As for Python 2.6, it appears that we have the option to generate
>>>> objects using the new buffer slots, but we can also generate objects
>>>> without. Thoughts?
>>>>
>>>> Mine: At least as long as NumPy doesn't implement this for 2.6, I'd like
>>>> to stay with emulation. If I get the time then perhaps a "dual-mode"
>>>> where the slots are checked first, and if the object doesn't have the
>>>> slots (i.e. the flags of the type is set to not supporting the new
>>>> buffers) then emulation is used.
>>>>       
>>> If I understand correctly, you only refer to /getting/ the buffer of a
>>> however implemented object, not about implementing the __getbuffer__()
>>> method, right? So Cython implemented buffer objects would have their
>>> __getbuffer__() in any case?
>>>     
>> Not sure I understand this.
>>
>> The point anyway is that Cython currently does not fill the getbuffer 
>> slot on Py2.6. However, if we added Py_TPFLAGS_HAVE_NEWBUFFER to the 
>> type flags it seems we could do this, right? (I don't know much about 
>> these things so I'll have to listen to you here.)
>>
>> So the real question is whether we should change things so that 
>> bf_getbuffer is filled in under Py2.6; I suppose this calls for changing 
>> tp_flags on the classes which has __getbuffer__ or __releasebuffer__ 
>> implemented.
>>
>>   
> The whole reason I started using Cython and the PyObject_GetBuffer()
> stuff is to move my code (e.g.
> http://code.astraw.com/projects/motmot/browser/trunk/FastImage/src/FastImage.pyx
> ) away from the __array_interface__ and __array_struct__ conventions and
> move to the now standard Python mechanism. I'd much prefer to do this
> with 2.6 than 3.0. Two serious issues with not doing it:

(However, you still need those if you want to construct ndarrays from 
them until NumPy grows PEP-3118 support.)

Thanks for the feedback, and you are absolutely right, I'll see if I can 
get around to it sometime. This is now

http://trac.cython.org/cython_trac/ticket/62

(I don't think fixing the inheritance in the emulation is awfully 
difficult if you suddenly have a desperate need for it, it is just a 
matter of sorting a list by inheritance somewhere, but with everything 
moving towards slots anyway I suppose I should spend my time elsewhere.)

-- 
Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to