def setup(self): "Generic setup" d = N.arange(5) m = MA.make_mask([1,0,0,1,1]) base_d = N.r_[d,d[::-1]].reshape(2,-1).T base_m = N.r_[[m, m[::-1]]].T base = MA.array(base_d, mask=base_m) mrecord = fromarrays(base.T, dtype=[('a',N.float_),('b',N.float_)]) self.data = [d, m, mrecord]
def setup(self): "Generic setup" d = N.arange(5) m = MA.make_mask([1,0,0,1,1]) base_d = N.r_[d,d[::-1]].reshape(2,-1).T base_m = N.r_[[m, m[::-1]]].T base = MA.array(base_d, mask=base_m) mrec = fromarrays(base.T,) self.data = [d, m, mrec]
def setup(self): "Generic setup" d = N.arange(5) m = MA.make_mask([1,0,0,1,1]) base_d = N.r_[d,d[::-1]].reshape(2,-1).T base_m = N.r_[[m, m[::-1]]].T base = MA.array(base_d, mask=base_m) mrec = MR.fromarrays(base.T,) dlist = ['2007-%02i' % (i+1) for i in d] dates = date_array(dlist) ts = time_series(mrec,dates) mts = MultiTimeSeries(mrec,dates) self.data = [d, m, mrec, dlist, dates, ts, mts]
def __setattr__(self, attr, val): newattr = attr not in self.__dict__ try: # Is attr a generic attribute ? ret = object.__setattr__(self, attr, val) except: # Not a generic attribute: exit if it's not a valid field fielddict = self.dtype.names or {} if attr not in fielddict: exctype, value = sys.exc_info()[:2] raise exctype, value else: if attr not in list(self.dtype.names) + ["_dates", "_mask"]: return ret if newattr: # We just added this one try: # or this setattr worked on an internal # attribute. object.__delattr__(self, attr) except: return ret # Case #1.: Basic field ............ base_fmask = self._fieldmask _names = self.dtype.names if attr in _names: fval = filled(val) mval = getmaskarray(val) if self._hardmask: mval = mask_or(mval, base_fmask.__getattr__(attr)) self._data.__setattr__(attr, fval) base_fmask.__setattr__(attr, mval) return elif attr == "_mask": if self._hardmask: val = make_mask(val) if val is not nomask: # mval = getmaskarray(val) for k in _names: m = mask_or(val, base_fmask.__getattr__(k)) base_fmask.__setattr__(k, m) else: mval = getmaskarray(val) for k in _names: base_fmask.__setattr__(k, mval) return
def __getitem__(self, indx): """Returns all the fields sharing the same fieldname base. The fieldname base is either `_data` or `_mask`.""" _localdict = self.__dict__ # We want a field ........ if indx in self.dtype.names: obj = self._data[indx].view(TimeSeries) obj._dates = _localdict["_dates"] obj._mask = make_mask(_localdict["_fieldmask"][indx]) return obj # We want some elements .. (sindx, dindx) = self._TimeSeries__checkindex(indx) # obj = numeric.array(self._data[sindx], # copy=False, subok=True).view(type(self)) obj = numeric.array(self._data[sindx], copy=False, subok=True) obj = obj.view(type(self)) obj.__dict__.update( _dates=_localdict["_dates"][dindx], _fieldmask=_localdict["_fieldmask"][sindx], _fill_value=_localdict["_fill_value"], ) return obj