On Friday 15 February 2008 10:51:04 Alexander Michael wrote:
d = numpy.empty((5,4), dtype=[('value', float),('source', int)]) a = ma.MaskedArray(d, mask=True, fill_value=(0.0,0)) a[0,0] = (10.0, 1)
numpy\ma\core.py in __setitem__(self, indx, value) 1359 return 1360 #.... -> 1361 dval = getdata(value).astype(self.dtype) 1362 valmask = getmask(value) 1363 if self._mask is nomask:
TypeError: expected a readable buffer object
Good call. The easiest is still to replace the line 1361 with: dval = narray(value, copy=False, dtype=self.dtype) The problem with the initial method was that the tuple got transformed into a (2,) array whose type could not be changed afterwards. With the new line, we directly transform value to a ndarray of the proper type. Mmh. Where should I commit the fix ? Directly to the trunk ?