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
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))
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]
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)
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