Just ignore this solution. It was not quite working and I was able to get a segfault from it.
Pearu On Fri, January 4, 2008 8:58 pm, Pearu Peterson wrote: > On Fri, January 4, 2008 8:00 pm, Pearu Peterson wrote: >> On Fri, January 4, 2008 7:33 pm, Travis E. Oliphant wrote: >>> Pearu Peterson wrote: >>>> Hi, >>>> >>>> Say, one defines >>>> >>>> class A(tuple): >>>> def __repr__(self): >>>> return 'A(%s)' % (tuple.__repr__(self)) >>>> >>>> and I'd like to create an array of A instances. > >>> So, create an empty object array and insert the entries the way you >>> want >>> them: >>> >>> a = np.empty(1,dtype=object) >>> a[0] = A((1,2)) >> >> Meantime I was reading arrayobject.c and it seems that >> before objects are checked for being sequences, their >> __array_interface__ is accessed (eg in Array_FromSequence, >> discover_depth). >> >> Would this provide a solution if the class A would define >> a property __array_interface__? I just don't know what >> the data field should be for an object. > > Ok, I found a partial solution: > > > class A(tuple): > def __repr__(self): > return 'A(%s)' % (tuple.__repr__(self)) > @property > def __array_interface__(self): > import numpy > obj = numpy.empty(1,dtype=object) > obj[0] = self > return obj.__array_interface__.copy() > > _______________________________________________ > 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