Exemple #1
0
 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
Exemple #2
0
 def __init__(self, x, y):
     x = marray(x, copy=False, subok=True, dtype=float_, order='F').ravel()
     y = marray(y, copy=False, subok=True, dtype=float_, order='F').ravel()
     if x.size != y.size:
         msg = "Incompatible size between observations (%s) and response (%s)!" 
         raise ValueError(msg % (x.size, y.size))
     idx = x.argsort()
     self._x = x[idx]
     self._y = y[idx]
     self._mask = mask_or(self._x._mask, self._y._mask, 
                          copy=False, small_mask=False)