Source code for bmtk.simulator.filternet.cell

from bmtk.simulator.filternet.pyfunction_cache import py_modules


[docs]class Cell(object): def __init__(self, node, population=None): self._node = node self._gid = node.gid self._node_id = node.node_id self._lgn_cell_obj = None self._default_jitter = (0.0, 0.0) self._population = population @property def gid(self): return self._gid @property def lgn_cell_obj(self): return self._lgn_cell_obj @property def population(self): return self._population @property def default_jitter(self): return self._jitter @default_jitter.setter def default_jitter(self, val): self._default_jitter = val
[docs] def build(self): cell_loaders = self._node.model_processing if len(cell_loaders) > 1: raise Exception('Cannot use more than one model_processing method per cell. Exiting.') elif len(cell_loaders) == 1: model_processing_fnc = py_modules.cell_processor(cell_loaders[0]) else: model_processing_fnc = py_modules.cell_processor('default') if not self._node.predefined_jitter: self._node.jitter = self._default_jitter self._lgn_cell_obj = model_processing_fnc(self, self._node.model_template, self._node.dynamics_params)
[docs] def get(self, item, default): if item in self._node: return self._node[item] else: return default
def __getitem__(self, item): return self._node[item] def __contains__(self, item): return item in self._node def __getattr__(self, name): if name in self.__dict__: return self.__dict__[name] else: return getattr(self._node, name)