SynapseLauncher.py 1.3 KB

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