Source code for bmtk.simulator.popnet.ssn.popnode



[docs] class SSNNode: def __init__(self, population, node_id, gid, **node_properties): self.population = population self.node_id = node_id self.gid = gid self.type = None self.input_offset = [] self.scaling_coef = [] self.exponent = [] self.decay_const = [] self.init_value = 0.0 self.external_inputs = None self.node_properties = node_properties self._sonata_node = self.node_properties.get('node', {}) def __contains__(self, property): return property in self.node_properties or property in self._sonata_node def __getitem__(self, property): if property in self.node_properties: return self.node_properties[property] elif property in self._sonata_node: return self._sonata_node[property] elif property in ['node_id', 'node_ids']: return self.node_id elif property in ['population', 'population_name']: return self.population else: raise KeyError(f'{self.__class__.__name__} does not contain property "{property}"')
[docs] def get(self, property, default=None): if property in self: return self[property] else: return default
def __repr__(self) -> str: return f'{self.__class__.__name__} {self.gid} > ({self.population}.{self.node_id})'