class Synapse(object): """ This Class is representing a Synapse with its name, and a dict of Neurons and a dict of signals .. note:: must be defined in the brain.yml """ def __init__(self, name=None, neurons=None, signals=None): self.name = name self.neurons = neurons self.signals = signals def serialize(self): """ This method allows to serialize in a proper way this object :return: A dict of name, neurons, signals :rtype: Dict """ return { 'name': self.name, 'neurons': [e.serialize() for e in self.neurons], 'signals': [e.serialize() for e in self.signals] } def __str__(self): return_val = "Synapse name: %s" % self.name return_val += "\nneurons:" for el in self.neurons: return_val += str(el) return_val += "\nsignals:" for el in self.signals: return_val += str(el) return return_val def __eq__(self, other): """ This is used to compare 2 objects :param other: :return: """ return self.__dict__ == other.__dict__