Thanks for the update. For now, I'll try doing what I need to by sub-classing float. But, I'm gonna miss __array_finalize__ :-).
eric Travis Oliphant wrote: > eric jones wrote: > > >> Hey all, >> >> I am playing around with sub-classing the new-fangled float64 objects >> and friends. I really like the new ndarray subclassing features >> (__array_finalize__, etc.), and was exploring whether or not the scalars >> worked the same way. I've stubbed my toe right out of the blocks >> though. I can sub-class from standard python floats just fine, but when >> I try to do the same from float64, I get a traceback. (examples below) >> Anyone have ideas on how to do this correctly? >> >> >> > > Unfortunately, the array scalars were not originally designed to be > sub-classed. I believe I later set the flag saying they "could be" > sub-classable. However, I did not alter the tp_new code to actually use > the type information passed in as the first argument to actually create > an instance of the sub-class --- effectively making the array scalars > *not* sub-classable. > > Thus, the _arrtype_new code would need to be changed in > scalartypes.inc.src to fix this. Notice that in Python the float_new > command does a special check for when a sub-type is requested and calls > float_subtype_new which creates a regular float and then copies the data > over to the sub-type. > > This special-check is not done in the tp_new function > (<name>_arrtype_new) and so float64.__new__ will *always* return the > array scalars are still not sub-classable (except for the void > scalar). This could be changed, and needs to happen before > sub-classing of array scalars will work. > > -Travis > > > > _______________________________________________ > Numpy-discussion mailing list > Numpy-discussion@scipy.org > http://projects.scipy.org/mailman/listinfo/numpy-discussion > > _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion