[Python-Dev] C basetype mapping protocol difference between 2.2.1 and 2.3

Todd Miller jmiller@stsci.edu
Fri, 09 Aug 2002 12:13:34 -0400


Guido van Rossum wrote:

>>Doesn't the current wrapper narrow the acceptable definitions for 
>>_ndarray_subscript?  The reason I noticed this is that my 2.2.1 code 
>>raises an exception:
>>
>> >>> import numarray
>> >>> a=numarray.arange(10)
>> >>> a
>>Traceback (most recent call last):
>>File "<stdin>", line 1, in ?
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/numarray.py", 
>>line 622, in __repr__
>>MAX_LINE_WIDTH, PRECISION, SUPPRESS_SMALL, ', ', 1)
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/arrayprint.py", 
>>line 156, in array2string
>>separator, array_output)
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/arrayprint.py", 
>>line 112, in _array2string
>>max_str_len = max(len(str(max_reduce(data))),
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/ufunc.py", line 
>>759, in reduce
>>r = self.areduce(inarr, dim, outarr)
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/ufunc.py", line 
>>745, in areduce
>>_outarr1 = self._cumulative("reduce", _inarr, _outarr0)
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/ufunc.py", line 
>>653, in _cumulative
>>toutarr = self._reduce_out(inarr, outarr, outtype)
>>File "/home/jmiller/lib/python2.2/site-packages/numarray/ufunc.py", line 
>>591, in _reduce_out
>>toutarr = inarr[...,0].copy().astype(outtype)
>>TypeError: an integer is required
>>
>
>I guess that means it's going through the *sequence* getitem, not the
>
Yes.

>
>*mapping* getitem.  Have you tried leaving the sequence getitem slot
>NULL, and doing everything through your mapping getitem slot?  
>
No.

>That
>should work in 2.2.
>
It does now.

>
>
>--Guido van Rossum (home page: http://www.python.org/~guido/)
>
Thanks!
Todd

-- 
Todd Miller 			jmiller@stsci.edu
STSCI / SSG