SynapseLauncher.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from core.ConfigurationManager.BrainLoader import BrainLoader
  2. from core.NeuroneLauncher import NeuroneLauncher
  3. class SynapseNameNotFound(Exception):
  4. """
  5. The Synapse has not been found
  6. .. seealso: Synapse
  7. """
  8. pass
  9. class SynapseLauncher(object):
  10. def __init__(self):
  11. pass
  12. @classmethod
  13. def start_synapse(cls, name, brain=None):
  14. """
  15. Start a synapse by it's name
  16. :param name: Name (Unique ID) of the synapse to launch
  17. :param brain: Brain instance
  18. """
  19. synapse_name_launch = name
  20. # get the brain
  21. cls.brain = brain
  22. # check if we have found and launched the synapse
  23. synapse_launched = False
  24. for synapse in cls.brain.synapses:
  25. if synapse.name == synapse_name_launch:
  26. cls._run_synapse(synapse)
  27. synapse_launched = True
  28. # we found the synapse, we don't need to check the rest of the list
  29. break
  30. if not synapse_launched:
  31. raise SynapseNameNotFound("The synapse name \"%s\" does not exist in the brain file" % name)
  32. @classmethod
  33. def _run_synapse(cls, synapse):
  34. """
  35. Start all neurons in the synapse
  36. :param synapse: Synapse for which we run neurons
  37. :return:
  38. """
  39. for neuron in synapse.neurons:
  40. NeuroneLauncher.start_neurone(neuron)
  41. return True