def test_build_create(): population_class = Mock() create_function = common.build_create(population_class) assert isfunction(create_function) p = create_function("cell class", "cell params", n=999) population_class.assert_called_with(999, "cell class", cellparams="cell params")
def _create_overloaded_functions(spinnaker_simulator): """ Creates functions that the main PyNN interface supports\ (given from PyNN) :param spinnaker_simulator: the simulator object we use underneath :rtype: None """ # overload the failed ones with now valid ones, now that we're in setup # phase. __pynn["run"], __pynn["run_until"] = pynn_common.build_run( spinnaker_simulator) __pynn["get_current_time"], __pynn["get_time_step"], \ __pynn["get_min_delay"], __pynn["get_max_delay"], \ __pynn["num_processes"], __pynn["rank"] = \ pynn_common.build_state_queries(spinnaker_simulator) __pynn["reset"] = pynn_common.build_reset(spinnaker_simulator) __pynn["create"] = pynn_common.build_create(Population) __pynn["connect"] = pynn_common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) __pynn["record"] = pynn_common.build_record(spinnaker_simulator)
def end(compatible_output=True): """Do any necessary cleaning up before exiting.""" for (population, variables, filename) in simulator.state.write_on_end: io = get_io(filename) population.write_data(io, variables) simulator.state.write_on_end = [] # should have common implementation of end() run, run_until = common.build_run(simulator) run_for = run reset = common.build_reset(simulator) initialize = common.initialize get_current_time, get_time_step, get_min_delay, get_max_delay, \ num_processes, rank = common.build_state_queries(simulator) create = common.build_create(Population) connect = common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) record = common.build_record(simulator) record_v = lambda source, filename: record(['v'], source, filename) record_gsyn = lambda source, filename: record(['gsyn_exc', 'gsyn_inh'], source, filename)
synapse_object = target._cell.esyn elif self.synapse_type == "inhibitory": synapse_object = target._cell.isyn else: synapse_object = getattr(target._cell, self.synapse_type) source._cell.source.connect('event', synapse_object, 'synapse') synapse_object.n_incoming_connections += 1 index = synapse_object.n_incoming_connections - 1 synapse_object.setWeight(index, weight) synapse_object.setDelay(index, delay) self.connections.append((source, target, index)) # ============================================================================== # Low-level API for creating, connecting and recording from individual neurons # ============================================================================== create = common.build_create(Population) connect = common.build_connect(Projection, FixedProbabilityConnector) set = common.set record = common.build_record('spikes', simulator) record_v = common.build_record('v', simulator) record_gsyn = common.build_record('gsyn', simulator) # ==============================================================================