import NEST_SYNAPSE_TYPES from nest.__init__.py
The variable NEST_SYNAPSE_TYPES is defined once and then used by pyNN.nest.standardmodels.synapses._get_nest_synapse_model to check for available synapse types in NEST. Before, the function called nest.Models(mtype='synapses') at every function call, which slowed down things a lot, especially in the case of many single projections.
According to Yury, in #228, NEST_SYNAPSE_TYPES needs to be re-initialised after nest.ResetKernel(), so defining it only once will not work. Perhaps move the variable into the State class?
Hi, yes that's of course an important concern.
Thus, we have to re-initialize NEST_SYNAPSE_TYPES after each nest.ResetKernel.
With "moving into the State class", do you mean setting NEST_SYNAPSE_TYPES in State.clear(), where nest.ResetKernel() is called?
However, I think we cannot circumvent the problem if the user explicitely calls nest.ResetKernel() via pyNEST.
Another point is that the list has to be updated after each new synapse model definition. Is this only done in nest/synapses.py and nest/standardmodels/synapses.py, i.e. at every creation of a connection?