Synapse.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. class Synapse(object):
  2. """
  3. This Class is representing a Synapse with its name, and a dict of Neurons and a dict of signals
  4. .. note:: must be defined in the brain.yml
  5. """
  6. def __init__(self, name=None, neurons=None, signals=None):
  7. self.name = name
  8. self.neurons = neurons
  9. self.signals = signals
  10. # init a list where generated tts message will be stored after running each neuron in the synapse
  11. self.answers = list()
  12. def serialize(self):
  13. """
  14. This method allows to serialize in a proper way this object
  15. :return: A dict of name, neurons, signals
  16. :rtype: Dict
  17. """
  18. return {
  19. 'name': self.name,
  20. 'neurons': [e.serialize() for e in self.neurons],
  21. 'signals': [e.serialize() for e in self.signals],
  22. 'answers': str(self.answers)
  23. }
  24. def __str__(self):
  25. return_val = "Synapse name: %s" % self.name
  26. return_val += "\nneurons:"
  27. for el in self.neurons:
  28. return_val += str(el)
  29. return_val += "\nsignals:"
  30. for el in self.signals:
  31. return_val += str(el)
  32. return_val += "\nanswers: %s" % self.answers
  33. return return_val
  34. def __eq__(self, other):
  35. """
  36. This is used to compare 2 objects
  37. :param other:
  38. :return:
  39. """
  40. return self.__dict__ == other.__dict__