12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from core.ConfigurationManager.BrainLoader import BrainLoader
- from core.NeuroneLauncher import NeuroneLauncher
- class SynapseNameNotFound(Exception):
- pass
- class SynapseLauncher(object):
- def __init__(self):
- pass
- @classmethod
- def start_synapse(cls, name, brain_file=None):
- """
- Start a synapse by it's name
- :param name: Name (Unique ID) of the synapse to launch
- :param brain_file: Brain file path to load instead of the default one
- """
- synapse_name_launch = name
- # get the brain
- if brain_file is None:
- brain = BrainLoader.get_brain()
- else:
- brain = BrainLoader.get_brain(file_path=brain_file)
- # check if we have found and launched the synapse
- synapse_launched = False
- for synapse in brain.synapses:
- if synapse.name == synapse_name_launch:
- cls._run_synapse(synapse)
- synapse_launched = True
- # we found the synapse, we don't need to check the rest of the list
- break
- if not synapse_launched:
- raise SynapseNameNotFound("The synapse name \"%s\" does not exist in the brain file" % name)
- @classmethod
- def _run_synapse(cls, synapse):
- """
- Start all neurons in the synapse
- :param synapse: Synapse for which we run neurons
- :return:
- """
- for neuron in synapse.neurons:
- NeuroneLauncher.start_neurone(neuron)
- return True
|