Beispiel #1
0
 def set_address(self, address):
     if isinstance(address, basestring):
         address = self._experiment.variables[address]
     
     if not _vars.isaddress(address):
         try:
             address = _vars.Address(address)
         except ValueError:
             raise ValueError("Need to provide valid address argument")    
     self._address = address
Beispiel #2
0
 def set(self, address):
     """
     This parameter stores a biovars.Address object.
      
     """
     if isinstance(address, basestring):
         address = self._p._dataset.experiment.variables.get(address)
     
     if address is None or isaddress(address):
         Param.set(self, address)
     else:
         Param.set(self, asaddress(address))
Beispiel #3
0
    def __getitem__(self, name):
        if biovars.isaddress(name):
            return _data_subset(self, name)
#            return name.filter(self.segments)
        elif isinstance(name, basestring):
            if name in self.properties:
                return self.properties[name]
            elif hasattr(self, 'compiled'):
                if name in self.compiled:
                    return self.compiled[name]
            raise KeyError("Property %r neither in properties nor compiled" % name)

        else:
            return self.segments[name]
Beispiel #4
0
    def __getitem__(self, name):
        """
        returns, for the following inputs:
        int -> return event with index
        Address -> 
        else -> Segment.__getitem__
        
        """
#        if hasattr(name, 'contains'):
        if isvar(name) or isinstance(name, basestring):
            return Segment.__getitem__(self, name)
        elif np.isscalar(name):
            if int(name) != name:
                raise ValueError("index needs to be int")
            if name >= len(self.data):
                raise KeyError("n events < %s"%name)
            else:
                values = self.data[name]
                evt = self._get_static_vars()
                for var, val in zip(self.varlist, values):
                    evt[var] = val
                return evt
        else:
            properties = self.get_full_properties()
            if isaddress(name):
                select = []
                for i, evt in enumerate(self):
                    if name.contains(evt):
                        select.append(i)
                data = self.data[select]
            else:
                data = self.data[name]
                assert data.shape[1] == len(self.varlist)
                
            return Event_Segment(properties, self.varlist[:], 
                                 varsource=self.variables, data=data,
                                 name=self.name)
Beispiel #5
0
 def set_evt_address(self, address):
     "Change the subset of events being drawn (Address, slice or None)"
     if _vars.isaddress(address) or isinstance(address, slice):
         self._evt_address = address
     else:
         self._evt_address = None