diff --git a/.github/workflows/python_actions.yml b/.github/workflows/python_actions.yml index 8f3cb007..54f3d640 100644 --- a/.github/workflows/python_actions.yml +++ b/.github/workflows/python_actions.yml @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -40,7 +40,7 @@ jobs: - name: Install pip, etc uses: ./support/actions/python-tools - name: Install Spinnaker Dependencies - uses: ./support/actions/checkout-spinn-deps + uses: ./support/actions/install-spinn-deps with: repositories: > SpiNNUtils SpiNNMachine SpiNNMan PACMAN DataSpecification spalloc @@ -72,7 +72,9 @@ jobs: repository: SpiNNakerManchester/SupportScripts path: support - name: Run rat copyright enforcement - if: matrix.python-version == 3.8 uses: ./support/actions/check-copyrights with: config_file: rat_asl20.xml + + - name: Validate CITATION.cff + uses: dieghernan/cff-validator@main diff --git a/.pylintrc b/.pylintrc index 618f40ad..3547e832 100644 --- a/.pylintrc +++ b/.pylintrc @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..733367a5 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,108 @@ +# Copyright (c) 2017 The University of Manchester +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cff-version: 1.2.0 +message: If you use this software, please cite it as below. +preferred-citation: + type: article + doi: 10.3389/fnins.2018.00816 + issn: 1662-453X + url: https://www.frontiersin.org/articles/10.3389/fnins.2018.00816 + title: "sPyNNaker: A Software Package for Running PyNN Simulations on SpiNNaker" + journal: Frontiers in Neuroscience + volume: 12 + year: 2018 + month: 11 + abstract: This work presents sPyNNaker 4.0.0, the latest version of the software package for simulating PyNN-defined spiking neural networks (SNNs) on the SpiNNaker neuromorphic platform. Operations underpinning realtime SNN execution are presented, including an event-based operating system facilitating efficient time-driven neuron state updates and pipelined event-driven spike processing. Preprocessing, realtime execution, and neuron/synapse model implementations are discussed, all in the context of a simple example SNN. Simulation results are demonstrated, together with performance profiling providing insights into how software interacts with the underlying hardware to achieve realtime execution. System performance is shown to be within a factor of 2 of the original design target of 10,000 synaptic events per millisecond, however SNN topology is shown to influence performance considerably. A cost model is therefore developed characterizing the effect of network connectivity and SNN partitioning. This model enables users to estimate SNN simulation performance, allows the SpiNNaker team to make predictions on the impact of performance improvements, and helps demonstrate the continued potential of the SpiNNaker neuromorphic hardware. + authors: + - given-names: Oliver + family-names: Rhodes + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0003-1728-2828 + website: https://research.manchester.ac.uk/en/persons/oliver.rhodes + - given-names: Petrut + family-names: Bogdan + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0001-5535-7865 + - given-names: Christian Y. + family-names: Brenninkmeijer + affiliation: University Of Manchester + email: christian.brenninkmeijer@manchester.ac.uk + orcid: https://orcid.org/0000-0002-2937-7819 + website: https://www.researchgate.net/profile/Christian_Brenninkmeijer + - given-names: Simon + family-names: Davidson + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0001-5385-442X + website: https://research.manchester.ac.uk/en/persons/simon.davidson + - given-names: Donal + family-names: Fellows + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0002-9091-5938 + website: https://www.researchgate.net/profile/Donal-Fellows + - given-names: Andrew + family-names: Gait + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0001-9349-1096 + website: https://personalpages.manchester.ac.uk/staff/andrew.gait/ + - given-names: David R. + family-names: Lester + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0002-7267-291X + - given-names: Mantas + family-names: Mikaitis + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0001-8706-1436 + website: https://research.manchester.ac.uk/en/persons/mantas.mikaitis + - given-names: Luis A. + family-names: Plana + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0002-6113-3929 + website: https://research.manchester.ac.uk/en/persons/luis.plana + - given-names: Andrew G. D. + family-names: Rowley + affiliation: University Of Manchester + email: Andrew.Rowley@manchester.ac.uk + orcid: https://orcid.org/0000-0002-2646-8520 + website: https://www.researchgate.net/profile/Andrew_Rowley2 + - given-names: Alan B. + family-names: Stokes + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0002-6110-1484 + - given-names: Steve B. + family-names: Furber + affiliation: University Of Manchester + orcid: https://orcid.org/0000-0002-6524-3367 + website: https://research.manchester.ac.uk/en/persons/steve.furber + +title: This repository holds miscellaneous examples of using sPyNNaker for PyNN +authors: + - name: SpiNNaker Software Team + alias: For a list of contributors see https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors or for a combined list see https://spinnakermanchester.github.io/latest/LicenseAgreement.html#contributors + address: University of Manchester, Oxford Road + city: Manchester + country: GB + email: spinnakerusers@googlegroups.com + post-code: M13 9PL + website: https://apt.cs.manchester.ac.uk/projects/SpiNNaker/ +url: https://spinnakermanchester.github.io/ +contact: +- address: University of Manchester, Oxford Road + city: Manchester + country: GB + email: spinnakerusers@googlegroups.com + name: SpiNNaker Software Team + post-code: M13 9PL +license: Apache-2.0 +repository: https://github.com/SpiNNakerManchester/PyNN8Examples diff --git a/LICENSE b/LICENSE index d6456956..62589edd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ Apache License Version 2.0, January 2004 - http://www.apache.org/licenses/ + https://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION @@ -193,7 +193,7 @@ you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/LICENSE.md b/LICENSE_POLICY.md similarity index 52% rename from LICENSE.md rename to LICENSE_POLICY.md index a5bac630..ab4ab40c 100644 --- a/LICENSE.md +++ b/LICENSE_POLICY.md @@ -1,17 +1,17 @@ # License Agreement -Up to date information for the whole [SpiNNakerManchester Projects](https://github.com/SpiNNakerManchester) can be found [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html) +Up to date information for the whole [SpiNNakerManchester Projects](https://github.com/SpiNNakerManchester) can be found [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html) -As shown there the software is currently being released under the GPL version 3 license listed [here](http://www.gnu.org/copyleft/gpl.html) +As shown there the software is currently being released under the Apache License 2.0 listed [here](https://www.apache.org/licenses/LICENSE-2.0) # Paper Authorship -See: [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#paper-authorship) +See: [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#paper-authorship) # Modifications -See: [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#modifications) +See: [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#modifications) # Contributors @@ -19,5 +19,5 @@ For up to date information on Contributors see the graphs/contributors pages on For example [https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors](https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors) -[Combined list](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#contributors) +[Combined list](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#contributors) diff --git a/examples/__init__.py b/examples/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/__init__.py +++ b/examples/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/current_injection_example.py b/examples/current_injection_example.py index b3bf8902..532086e1 100644 --- a/examples/current_injection_example.py +++ b/examples/current_injection_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -24,7 +24,8 @@ Any other current waveforms could be implemented using StepCurrentSource. -Script from http://neuralensemble.org/docs/PyNN/examples/current_injection.html +Script from +https://neuralensemble.org/docs/PyNN/examples/current_injection.html """ diff --git a/examples/external_devices_examples/__init__.py b/examples/external_devices_examples/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/external_devices_examples/__init__.py +++ b/examples/external_devices_examples/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/live_examples/__init__.py b/examples/external_devices_examples/live_examples/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/external_devices_examples/live_examples/__init__.py +++ b/examples/external_devices_examples/live_examples/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/live_examples/balanced_random_live_rate.py b/examples/external_devices_examples/live_examples/balanced_random_live_rate.py index 5681e23c..2b15ae4d 100644 --- a/examples/external_devices_examples/live_examples/balanced_random_live_rate.py +++ b/examples/external_devices_examples/live_examples/balanced_random_live_rate.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/live_examples/spike_io.py b/examples/external_devices_examples/live_examples/spike_io.py index ef8a645e..a12ae428 100644 --- a/examples/external_devices_examples/live_examples/spike_io.py +++ b/examples/external_devices_examples/live_examples/spike_io.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/live_examples/spike_io_interactive_demo_with_c_vis.py b/examples/external_devices_examples/live_examples/spike_io_interactive_demo_with_c_vis.py index e0a41f25..bb817bff 100644 --- a/examples/external_devices_examples/live_examples/spike_io_interactive_demo_with_c_vis.py +++ b/examples/external_devices_examples/live_examples/spike_io_interactive_demo_with_c_vis.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/live_examples/synfire_if_curr_exp_live.py b/examples/external_devices_examples/live_examples/synfire_if_curr_exp_live.py index 3b4ee63f..1633df8e 100644 --- a/examples/external_devices_examples/live_examples/synfire_if_curr_exp_live.py +++ b/examples/external_devices_examples/live_examples/synfire_if_curr_exp_live.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/motor_example.py b/examples/external_devices_examples/motor_example.py index eafd51df..f1082675 100644 --- a/examples/external_devices_examples/motor_example.py +++ b/examples/external_devices_examples/motor_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/external_devices_examples/pushbot_ethernet_example.py b/examples/external_devices_examples/pushbot_ethernet_example.py index fc8e6618..852089e8 100644 --- a/examples/external_devices_examples/pushbot_ethernet_example.py +++ b/examples/external_devices_examples/pushbot_ethernet_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -12,14 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from spynnaker.pyNN.protocols import MUNICH_MODES import pyNN.spiNNaker as p p.setup(1.0) # Set up the PushBot devices pushbot_protocol = p.external_devices.MunichIoSpiNNakerLinkProtocol( - mode=MUNICH_MODES.PUSH_BOT, uart_id=0) + mode=p.external_devices.protocols.MUNICH_MODES.PUSH_BOT, uart_id=0) motor_0 = p.external_devices.PushBotEthernetMotorDevice( p.external_devices.PushBotMotor.MOTOR_0_PERMANENT, pushbot_protocol) motor_1 = p.external_devices.PushBotEthernetMotorDevice( @@ -52,7 +51,8 @@ len(devices), p.external_devices.PushBotLifEthernet( protocol=pushbot_protocol, devices=devices, - pushbot_ip_address="10.162.177.57", + pushbot_ip_address="10.10.10.1", + pushbot_port=3000, # "pushbot_ip_address": "127.0.0.1", tau_syn_E=500.0), label="PushBot" @@ -76,14 +76,14 @@ p.external_devices.PushBotEthernetRetinaDevice( protocol=pushbot_protocol, resolution=retina_resolution, - pushbot_ip_address="10.162.177.57" + pushbot_ip_address="10.10.10.1", + pushbot_port=3000, + retina_injector_label="Retina" )) -viewer = p.external_devices.PushBotRetinaViewer( - retina_resolution.value, port=17895) +retina_viewer = p.external_devices.PushBotRetinaViewer( + retina_resolution, pushbot_retina.label, p) p.external_devices.activate_live_output_for( - pushbot_retina, port=viewer.local_port, notify=False) + pushbot_retina, database_notify_port_num=retina_viewer.port) -viewer.start() -p.run(len(devices) * 1000) -p.end() +retina_viewer.run(len(devices) * 1000) diff --git a/examples/external_devices_examples/pushbot_light_follower.py b/examples/external_devices_examples/pushbot_light_follower.py new file mode 100644 index 00000000..5f12d7b0 --- /dev/null +++ b/examples/external_devices_examples/pushbot_light_follower.py @@ -0,0 +1,242 @@ +# Copyright (c) 2017 The University of Manchester +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +########################################### +# Import libraries +############################################ +import numpy +import pyNN.spiNNaker as p + + +########################################### +# Connection and simulation specifications +########################################### + +# The UART port on IO Board the pushbot connected to +UART_ID = 0 + +# SpiNNaker link ID (IO Board connected to) +spinnaker_link = 0 + +# Retina resolution +retina_resolution = \ + p.external_devices.PushBotRetinaResolution.DOWNSAMPLE_32_X_32 + +# Name to call the retina +retina_label = "Retina" + +retina_viewer = p.external_devices.PushBotRetinaViewer( + retina_resolution, retina_label, p) + +# Simulate with 1 ms time step +p.setup(1.0) +# p.set_number_of_neurons_per_core(p.IF_curr_exp, 150) + + +########################################### +# Create external devices +########################################### +# Create the pushbot protocols to pass to the devices of Pushbot +# (i.e. motors, laser, etc) +pushbot_protocol = p.external_devices.MunichIoSpiNNakerLinkProtocol( + mode=p.external_devices.protocols.MUNICH_MODES.PUSH_BOT, + uart_id=UART_ID) + +# Create motor devices on SpiNNaker +motor_0 = p.external_devices.PushBotSpiNNakerLinkMotorDevice( + p.external_devices.PushBotMotor.MOTOR_0_PERMANENT, pushbot_protocol, + spinnaker_link) + +motor_1 = p.external_devices.PushBotSpiNNakerLinkMotorDevice( + p.external_devices.PushBotMotor.MOTOR_1_PERMANENT, pushbot_protocol, + spinnaker_link) + +# Create retina device on SpiNNaker +retina_device = p.external_devices.PushBotSpiNNakerLinkRetinaDevice( + spinnaker_link_id=spinnaker_link, + protocol=pushbot_protocol, + resolution=retina_resolution) + +# Motor devices for connection +devices = [motor_0, motor_1] + +########################################### +# Create populations +########################################### + +# Retina population ( num of neurons:n_pixel*n_pixel*2 ) +pushbot_retina = p.Population( + retina_resolution.value.n_neurons, retina_device, label=retina_label) +p.external_devices.activate_live_output_for( + pushbot_retina, database_notify_port_num=retina_viewer.port) + + +# Network implementation +# An excitatory population is inhibited by an inhibitory population and +# only the neurons receiving enough number of retina events to break the +# inhibition will activate the relevant neurons to drive the robot +exc_pop = p.Population( + retina_resolution.value.n_neurons / 2, + p.IF_cond_exp(cm=0.75, tau_m=1.0), + label='exc_pop') +inh_pop = p.Population( + retina_resolution.value.n_neurons / 2, + p.IF_cond_exp(cm=0.75, tau_m=1.0, i_offset=13, tau_refrac=0.01), + label='inh_pop') + +# A conceptual neuron population to drive motor neurons +# (0: left, 1:right, 2: forward) +driver_pop = p.Population(3, p.IF_curr_exp(cm=0.75, tau_m=1.0), label='driver') + +########################################### +# Connections lists +########################################### + +# Connection from exc_pop to driver_pop +# Number of columns to separate for left, right and forward +n_conn = 3 * (retina_resolution.value.pixels / 8) + +# The events coming from the specified columns of exc_pop population +# will be connected to the relevant neuron in driver_pop +# Starting column of the left-side column group +start_of_left = 0 + +# Last column of the left-side column group +end_of_left = n_conn + +# Starting column of the right-side column group +start_of_right = retina_resolution.value.pixels - n_conn + +# Last column of the right-side column group +end_of_right = retina_resolution.value.pixels + +# Connection weights for this connection list +w_conn = 0.2 + +# Connection delays for this connection list +d_conn = 1 + +# Array containing id of each neuron +arr = numpy.arange(retina_resolution.value.n_neurons / 2) + +# Determines which neuron IDs are on the left group +id_to_left = (arr % retina_resolution.value.pixels) < end_of_left + +# Determines which neuron IDs are on the right group +id_to_right = (arr % retina_resolution.value.pixels) > start_of_right + +# Determines which neuron IDs are in the middle +id_to_middle_up_1 = (arr % retina_resolution.value.pixels) <= start_of_right + +# Determines which neuron IDs are in the middle +id_to_middle_up_2 = (arr % retina_resolution.value.pixels) >= end_of_left + +# Determines which neuron IDs are on the upper part +id_to_middle_up_3 = ( + (arr / retina_resolution.value.pixels) < + (retina_resolution.value.pixels / 2)) + +# The variable to determine which neuron IDs are on the middle-up +id_to_middle_up = id_to_middle_up_1 & id_to_middle_up_2 # & id_to_middle_up_3 + +# Extracts the neuron IDs to be connected to the left neuron of driver_pop +id_to_left = numpy.extract(id_to_left, arr) +print("left =", id_to_left) + +# Extracts the neuron IDs to be connected to the right neuron of driver_pop +id_to_right = numpy.extract(id_to_right, arr) +print("right =", id_to_right) + +# Extracts the neuron IDs to be connected to the forward neuron of driver_pop +id_to_middle_up = numpy.extract(id_to_middle_up, arr) +print("middle =", id_to_middle_up) + +# Conn list: (source neuron, target neuron, weight, delay) +# Creates connection list to connect left neuron +conn_list_left = [(i, 0, w_conn, d_conn) for i in id_to_left] + +# Creates connection list to connect right neuron +conn_list_right = [(i, 1, w_conn, d_conn) for i in id_to_right] + +# Creates connection list to connect forward neuron +conn_list_middle_up = [(i, 2, w_conn, d_conn) for i in id_to_middle_up] + +# Concatenates the lists into one list +conn_list = conn_list_left + conn_list_right + conn_list_middle_up + +# Winner-takes-all connections from driver_pop to motor neurons +w_motor = 1 +conn_motor_exc = [(0, 1, w_motor, 1), (1, 0, w_motor, 1)] +conn_motor_inh = [(0, 0, w_motor, 1), (1, 1, w_motor, 1)] + +# Creates connection list from retina population to exc_pop +# Each neuron in retina population excites the neuron with the same ID in +# exc_pop and its 8 neighbours including the diagonals +w_conn, w_inh = (0.35, 1.00) # (3.7,95)#(3.8, 90.)# (3.7,65,15) + +conn_list_local = [] +n_row = retina_resolution.value.pixels +conn_inc = numpy.array( + [-n_row-1, -n_row, -n_row + 1, -1, 0, 1, n_row - 1, n_row, n_row + 1]) +cont_inc = numpy.array([1, 1, 1, 0, 0, 0, -1, -1, -1]) +for i in range(retina_resolution.value.n_neurons): + sources = i + conn_inc + cont_1 = i / n_row + cont_2 = sources / n_row + cont_inc + for j, k in zip(sources, cont_2): + if j >= 0 and j < retina_resolution.value.n_neurons and cont_1 == k: + conn_list_local.append((i, j, w_conn, 1)) + + +########################################### +# Projections +########################################### + +# w_inh=90.#70 + +# Pushbot motor neuron population +# Each member of population is a LIF neuron without a threshold +pushbot = p.Population( + len(devices), p.external_devices.PushBotLifSpinnakerLink( + protocol=pushbot_protocol, + devices=devices, + tau_syn_E=5.0, tau_syn_I=5.0), + label="PushBot" +) + +p.Projection(pushbot_retina, exc_pop, p.FromListConnector(conn_list_local)) +p.Projection( + inh_pop, exc_pop, p.OneToOneConnector(), + synapse_type=p.StaticSynapse(weight=w_inh, delay=1.0), + receptor_type='inhibitory') +p.Projection(exc_pop, driver_pop, p.FromListConnector(conn_list)) +p.Projection(driver_pop, pushbot, p.FromListConnector(conn_motor_exc)) +p.Projection( + driver_pop, pushbot, p.FromListConnector(conn_motor_inh), + receptor_type='inhibitory') + + +########################################### +# Simulation +########################################### + +# Record spikes +# exc_pop.record(['spikes']) +# inh_pop.record(['spikes']) +# driver_pop.record(['spikes']) + +# Record spikes and membrane potentials +# driver_pop.record(['spikes','v']) + +retina_viewer.run_until_closed() diff --git a/examples/external_devices_examples/pushbot_spinnaker_link_example.py b/examples/external_devices_examples/pushbot_spinnaker_link_example.py index c96e9416..ba9cce6a 100644 --- a/examples/external_devices_examples/pushbot_spinnaker_link_example.py +++ b/examples/external_devices_examples/pushbot_spinnaker_link_example.py @@ -4,44 +4,39 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - -from spynnaker.pyNN.protocols import MUNICH_MODES import pyNN.spiNNaker as p p.setup(1.0) # Set up the PushBot devices pushbot_protocol = p.external_devices.MunichIoSpiNNakerLinkProtocol( - mode=MUNICH_MODES.PUSH_BOT, uart_id=0) + mode=p.external_devices.protocols.MUNICH_MODES.PUSH_BOT, uart_id=0) spinnaker_link = 0 -board_address = None motor_0 = p.external_devices.PushBotSpiNNakerLinkMotorDevice( p.external_devices.PushBotMotor.MOTOR_0_PERMANENT, pushbot_protocol, - spinnaker_link, board_address=board_address) + spinnaker_link) motor_1 = p.external_devices.PushBotSpiNNakerLinkMotorDevice( p.external_devices.PushBotMotor.MOTOR_1_PERMANENT, pushbot_protocol, - spinnaker_link, board_address=board_address) + spinnaker_link) speaker = p.external_devices.PushBotSpiNNakerLinkSpeakerDevice( p.external_devices.PushBotSpeaker.SPEAKER_TONE, pushbot_protocol, - spinnaker_link, board_address=board_address) + spinnaker_link) laser = p.external_devices.PushBotSpiNNakerLinkLaserDevice( p.external_devices.PushBotLaser.LASER_ACTIVE_TIME, pushbot_protocol, - spinnaker_link, board_address=board_address, start_total_period=1000) + spinnaker_link, start_total_period=1000) led_front = p.external_devices.PushBotSpiNNakerLinkLEDDevice( p.external_devices.PushBotLED.LED_FRONT_ACTIVE_TIME, pushbot_protocol, - spinnaker_link, board_address=board_address, - start_total_period=1000) + spinnaker_link, start_total_period=1000) led_back = p.external_devices.PushBotSpiNNakerLinkLEDDevice( p.external_devices.PushBotLED.LED_BACK_ACTIVE_TIME, pushbot_protocol, - spinnaker_link, board_address=board_address, - start_total_period=1000) + spinnaker_link, start_total_period=1000) weights = { motor_0: 10.0, @@ -81,15 +76,13 @@ retina_resolution.value.n_neurons, p.external_devices.PushBotSpiNNakerLinkRetinaDevice( spinnaker_link_id=spinnaker_link, - board_address=board_address, protocol=pushbot_protocol, - resolution=retina_resolution)) + resolution=retina_resolution), + label="Retina") -viewer = p.external_devices.PushBotRetinaViewer( - retina_resolution.value, port=17895) +retina_viewer = p.external_devices.PushBotRetinaViewer( + retina_resolution, pushbot_retina.label, p) p.external_devices.activate_live_output_for( - pushbot_retina, port=viewer.local_port, notify=False) + pushbot_retina, database_notify_port_num=retina_viewer.port) -viewer.start() -p.run(len(devices) * 1000) -p.end() +retina_viewer.run(len(devices) * 1000) diff --git a/examples/external_devices_examples/retina_example.py b/examples/external_devices_examples/retina_example.py index 74f595c4..0ad0fb5a 100644 --- a/examples/external_devices_examples/retina_example.py +++ b/examples/external_devices_examples/retina_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/IF_cond_exp_stoc.py b/examples/extra_models_examples/IF_cond_exp_stoc.py index 4a6ddf2e..a14ce562 100644 --- a/examples/extra_models_examples/IF_cond_exp_stoc.py +++ b/examples/extra_models_examples/IF_cond_exp_stoc.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/IF_curr_delta.py b/examples/extra_models_examples/IF_curr_delta.py index 3722a717..5d14d9d0 100644 --- a/examples/extra_models_examples/IF_curr_delta.py +++ b/examples/extra_models_examples/IF_curr_delta.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/IF_curr_exp_ca2_adaptive.py b/examples/extra_models_examples/IF_curr_exp_ca2_adaptive.py index 33b3cc1a..3cfb0789 100644 --- a/examples/extra_models_examples/IF_curr_exp_ca2_adaptive.py +++ b/examples/extra_models_examples/IF_curr_exp_ca2_adaptive.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/IF_curr_exp_sEMD.py b/examples/extra_models_examples/IF_curr_exp_sEMD.py index e3c58234..35778a5b 100644 --- a/examples/extra_models_examples/IF_curr_exp_sEMD.py +++ b/examples/extra_models_examples/IF_curr_exp_sEMD.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/LGN_Izhikevich.py b/examples/extra_models_examples/LGN_Izhikevich.py index e6546d59..9e1dcaaa 100644 --- a/examples/extra_models_examples/LGN_Izhikevich.py +++ b/examples/extra_models_examples/LGN_Izhikevich.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -37,7 +37,7 @@ SpiNNaker machine", Frontiers in Neuroscience, vol. 11 (454), 2017. Free online access: -http://journal.frontiersin.org/article/10.3389/fnins.2017.00454/abstract +https://journal.frontiersin.org/article/10.3389/fnins.2017.00454/abstract """ import pyNN.spiNNaker as p diff --git a/examples/extra_models_examples/__init__.py b/examples/extra_models_examples/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/extra_models_examples/__init__.py +++ b/examples/extra_models_examples/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/stdp_associative_memory.py b/examples/extra_models_examples/stdp_associative_memory.py index 0f61fb7c..e653885f 100644 --- a/examples/extra_models_examples/stdp_associative_memory.py +++ b/examples/extra_models_examples/stdp_associative_memory.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/stdp_example_izk_cond.py b/examples/extra_models_examples/stdp_example_izk_cond.py index da2b19e5..c2f46727 100644 --- a/examples/extra_models_examples/stdp_example_izk_cond.py +++ b/examples/extra_models_examples/stdp_example_izk_cond.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -41,7 +41,7 @@ $ ./stdp_example This example requires that the NeuroTools package is installed -(http://neuralensemble.org/trac/NeuroTools) +(https://neuralensemble.org/trac/NeuroTools) Authors : Catherine Wacongne < catherine.waco@gmail.com > Xavier Lagorce < Xavier.Lagorce@crans.org > diff --git a/examples/extra_models_examples/stdp_triplet.py b/examples/extra_models_examples/stdp_triplet.py index fbd313dc..86ac2aec 100644 --- a/examples/extra_models_examples/stdp_triplet.py +++ b/examples/extra_models_examples/stdp_triplet.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/synfire_if_curr_dual_exp.py b/examples/extra_models_examples/synfire_if_curr_dual_exp.py index 7df4760b..c5112e6d 100644 --- a/examples/extra_models_examples/synfire_if_curr_dual_exp.py +++ b/examples/extra_models_examples/synfire_if_curr_dual_exp.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/vogel_2011/__init__.py b/examples/extra_models_examples/vogel_2011/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/extra_models_examples/vogel_2011/__init__.py +++ b/examples/extra_models_examples/vogel_2011/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/extra_models_examples/vogel_2011/vogels_2011.py b/examples/extra_models_examples/vogel_2011/vogels_2011.py index eb1b3c6d..f2887ff9 100644 --- a/examples/extra_models_examples/vogel_2011/vogels_2011.py +++ b/examples/extra_models_examples/vogel_2011/vogels_2011.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -38,7 +38,7 @@ class Vogels2011(object): This example uses the sPyNNaker implementation of the inhibitory Plasticity rule developed by Vogels, Sprekeler, Zenke et al (2011) https://www.ncbi.nlm.nih.gov/pubmed/22075724 - http://www.opensourcebrain.org/projects/vogelsetal2011/wiki + https://www.opensourcebrain.org/projects/vogelsetal2011/wiki To reproduce the experiment from their paper """ diff --git a/examples/extra_models_examples/vogel_2011/vogels_2011_live.py b/examples/extra_models_examples/vogel_2011/vogels_2011_live.py index e46d2be5..3b30ee4e 100644 --- a/examples/extra_models_examples/vogel_2011/vogels_2011_live.py +++ b/examples/extra_models_examples/vogel_2011/vogels_2011_live.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/hbp_neuroguidebook_example.py b/examples/hbp_neuroguidebook_example.py index 5e14f3fd..62b15077 100644 --- a/examples/hbp_neuroguidebook_example.py +++ b/examples/hbp_neuroguidebook_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/if_curr_alpha.py b/examples/if_curr_alpha.py index e8773ffe..7ef3e202 100644 --- a/examples/if_curr_alpha.py +++ b/examples/if_curr_alpha.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/if_curr_delta.py b/examples/if_curr_delta.py index 40ef17c8..47956d9b 100644 --- a/examples/if_curr_delta.py +++ b/examples/if_curr_delta.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/partitioner_examples/__init__.py b/examples/partitioner_examples/__init__.py index b60e6d9f..6725518b 100644 --- a/examples/partitioner_examples/__init__.py +++ b/examples/partitioner_examples/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/partitioner_examples/splitter_usage.py b/examples/partitioner_examples/splitter_usage.py index 4cebd4f2..ba454c4d 100644 --- a/examples/partitioner_examples/splitter_usage.py +++ b/examples/partitioner_examples/splitter_usage.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -15,10 +15,10 @@ from pyNN.utility.plotting import Figure, Panel import matplotlib.pyplot as plt from pacman.model.partitioner_splitters import ( - SplitterOneToOneLegacy as OneToOneSplitter) + SplitterOneToOneLegacy as OneToOneSplitter, + SplitterFixedLegacy) from spynnaker.pyNN.extra_algorithms.splitter_components import ( - SplitterAbstractPopulationVertexFixed, - SpynnakerSplitterFixedLegacy as LegacySplitter) + SplitterAbstractPopulationVertexFixed) runtime = 1000 n_neurons = 100 # number of neurons in each population @@ -48,7 +48,7 @@ input1 = p.Population( n_neurons, p.SpikeSourcePoisson(), label='inputSpikes_1', additional_parameters={ - "splitter_object": LegacySplitter()}) + "splitter_object": SplitterFixedLegacy()}) input2 = p.Population( n_neurons, p.SpikeSourcePoisson(), label='inputSpikes_2', additional_parameters={ diff --git a/examples/pynnBrunnel.py b/examples/pynnBrunnel.py index 510e417e..d76e95f6 100644 --- a/examples/pynnBrunnel.py +++ b/examples/pynnBrunnel.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/simple_STDP.py b/examples/simple_STDP.py index 053f7c20..c2bd0caa 100644 --- a/examples/simple_STDP.py +++ b/examples/simple_STDP.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -23,7 +23,7 @@ We plot the amount of potentiation or depression of each synapse as a function of the time difference. -Adapted from http://neuralensemble.org/docs/PyNN/examples/simple_STDP.html +Adapted from https://neuralensemble.org/docs/PyNN/examples/simple_STDP.html to run on SpiNNaker, but with alpha-synapses rather than conductance neurons; the weights involved are too low to be resolved using fixed-point arithmetic, so some alteration of parameters is necessary to get a similar effect. diff --git a/examples/spike_time_compare.py b/examples/spike_time_compare.py index a753e5b9..56c583a9 100644 --- a/examples/spike_time_compare.py +++ b/examples/spike_time_compare.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/split_examples/pynnBrunnelSplit.py b/examples/split_examples/pynnBrunnelSplit.py index c1fbbb4f..8c204a9d 100755 --- a/examples/split_examples/pynnBrunnelSplit.py +++ b/examples/split_examples/pynnBrunnelSplit.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/split_examples/stdp_neuromodulated_example_split.py b/examples/split_examples/stdp_neuromodulated_example_split.py index f3feed5c..687ca111 100644 --- a/examples/split_examples/stdp_neuromodulated_example_split.py +++ b/examples/split_examples/stdp_neuromodulated_example_split.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/split_examples/structural_plasticity_with_stdp_neuromodulated.py b/examples/split_examples/structural_plasticity_with_stdp_neuromodulated.py index f771942b..fd5e0445 100644 --- a/examples/split_examples/structural_plasticity_with_stdp_neuromodulated.py +++ b/examples/split_examples/structural_plasticity_with_stdp_neuromodulated.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/split_examples/va_benchmark_split.py b/examples/split_examples/va_benchmark_split.py index add85a2c..83734a1f 100755 --- a/examples/split_examples/va_benchmark_split.py +++ b/examples/split_examples/va_benchmark_split.py @@ -5,7 +5,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/stdp_curve.py b/examples/stdp_curve.py index 2444278c..9f41036c 100644 --- a/examples/stdp_curve.py +++ b/examples/stdp_curve.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/stdp_curve_cond.py b/examples/stdp_curve_cond.py index b04b760f..fbafed08 100644 --- a/examples/stdp_curve_cond.py +++ b/examples/stdp_curve_cond.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/stdp_example.py b/examples/stdp_example.py index 075642dc..89318ab1 100644 --- a/examples/stdp_example.py +++ b/examples/stdp_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -35,7 +35,7 @@ $ ./stdp_example This example requires that the NeuroTools package is installed -(http://neuralensemble.org/trac/NeuroTools) +(https://neuralensemble.org/trac/NeuroTools) Authors : Catherine Wacongne < catherine.waco@gmail.com > Xavier Lagorce < Xavier.Lagorce@crans.org > diff --git a/examples/stdp_example_cond.py b/examples/stdp_example_cond.py index 8382f236..0002c9a4 100644 --- a/examples/stdp_example_cond.py +++ b/examples/stdp_example_cond.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -35,7 +35,7 @@ $ ./stdp_example This example requires that the NeuroTools package is installed -(http://neuralensemble.org/trac/NeuroTools) +(https://neuralensemble.org/trac/NeuroTools) Authors : Catherine Wacongne < catherine.waco@gmail.com > Xavier Lagorce < Xavier.Lagorce@crans.org > diff --git a/examples/stdp_example_get_plastic_params.py b/examples/stdp_example_get_plastic_params.py index d809b377..ee28c449 100644 --- a/examples/stdp_example_get_plastic_params.py +++ b/examples/stdp_example_get_plastic_params.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -35,7 +35,7 @@ $ ./stdp_example This example requires that the NeuroTools package is installed -(http://neuralensemble.org/trac/NeuroTools) +(https://neuralensemble.org/trac/NeuroTools) Authors : Catherine Wacongne < catherine.waco@gmail.com > Xavier Lagorce < Xavier.Lagorce@crans.org > diff --git a/examples/stdp_example_izk.py b/examples/stdp_example_izk.py index 9796c7f2..8617cf76 100644 --- a/examples/stdp_example_izk.py +++ b/examples/stdp_example_izk.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -41,7 +41,7 @@ $ ./stdp_example This example requires that the NeuroTools package is installed -(http://neuralensemble.org/trac/NeuroTools) +(https://neuralensemble.org/trac/NeuroTools) Authors : Catherine Wacongne < catherine.waco@gmail.com > Xavier Lagorce < Xavier.Lagorce@crans.org > diff --git a/examples/stdp_neuromodulated_example.py b/examples/stdp_neuromodulated_example.py index bc696772..7358d69e 100644 --- a/examples/stdp_neuromodulated_example.py +++ b/examples/stdp_neuromodulated_example.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/stdp_neuromodulation_test.py b/examples/stdp_neuromodulation_test.py index 2beba934..236e05bc 100644 --- a/examples/stdp_neuromodulation_test.py +++ b/examples/stdp_neuromodulation_test.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/stdp_pairing.py b/examples/stdp_pairing.py index 7574d607..2b74b63d 100644 --- a/examples/stdp_pairing.py +++ b/examples/stdp_pairing.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/structural_plasticity_with_stdp_2d.py b/examples/structural_plasticity_with_stdp_2d.py index ea3f0a18..4ebd1fba 100644 --- a/examples/structural_plasticity_with_stdp_2d.py +++ b/examples/structural_plasticity_with_stdp_2d.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/structural_plasticity_with_stdp_neuromodulated_separate_pops.py b/examples/structural_plasticity_with_stdp_neuromodulated_separate_pops.py index 1853cfa7..4cbbf4ee 100644 --- a/examples/structural_plasticity_with_stdp_neuromodulated_separate_pops.py +++ b/examples/structural_plasticity_with_stdp_neuromodulated_separate_pops.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/structural_plasticity_without_stdp_2d.py b/examples/structural_plasticity_without_stdp_2d.py index 7ebf07b0..ae18c8fa 100644 --- a/examples/structural_plasticity_without_stdp_2d.py +++ b/examples/structural_plasticity_without_stdp_2d.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_if_cond_exp.py b/examples/synfire_if_cond_exp.py index 738f718f..2e639d68 100644 --- a/examples/synfire_if_cond_exp.py +++ b/examples/synfire_if_cond_exp.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_if_curr_exp.py b/examples/synfire_if_curr_exp.py index 9e89befc..973838fe 100644 --- a/examples/synfire_if_curr_exp.py +++ b/examples/synfire_if_curr_exp.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_if_curr_exp_get_weights.py b/examples/synfire_if_curr_exp_get_weights.py index 53580ec6..d188f2a7 100644 --- a/examples/synfire_if_curr_exp_get_weights.py +++ b/examples/synfire_if_curr_exp_get_weights.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_if_curr_exp_large_array.py b/examples/synfire_if_curr_exp_large_array.py index c18965ff..ea1144e8 100644 --- a/examples/synfire_if_curr_exp_large_array.py +++ b/examples/synfire_if_curr_exp_large_array.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_if_curr_exp_random.py b/examples/synfire_if_curr_exp_random.py index 62ac82bc..9165beee 100644 --- a/examples/synfire_if_curr_exp_random.py +++ b/examples/synfire_if_curr_exp_random.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/synfire_izk_curr_exp.py b/examples/synfire_izk_curr_exp.py index 6af5df49..f1976ad6 100644 --- a/examples/synfire_izk_curr_exp.py +++ b/examples/synfire_izk_curr_exp.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/examples/va_benchmark.py b/examples/va_benchmark.py index 9ec5bfc5..bcca0462 100644 --- a/examples/va_benchmark.py +++ b/examples/va_benchmark.py @@ -6,7 +6,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/integration_tests/__init__.py b/integration_tests/__init__.py index b60e6d9f..6725518b 100644 --- a/integration_tests/__init__.py +++ b/integration_tests/__init__.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/integration_tests/script_builder.py b/integration_tests/script_builder.py index 77736502..dd0f3985 100644 --- a/integration_tests/script_builder.py +++ b/integration_tests/script_builder.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -26,6 +26,7 @@ def build_scripts(self): # These scripts raise a SkipTest with the reasons given exceptions = {} exceptions["pushbot_ethernet_example.py"] = "Needs a physical pushbot" + exceptions["pushbot_light_follower.py"] = "Runs forever" # For branches these raise a SkipTest quoting the time given # For cron and manual runs these just and a warning diff --git a/integration_tests/test_scripts.py b/integration_tests/test_scripts.py index 95e5efe3..cf328b97 100644 --- a/integration_tests/test_scripts.py +++ b/integration_tests/test_scripts.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/requirements-test.txt b/requirements-test.txt index 930ba09b..856e7dfa 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -12,10 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -coverage >= 4.4, < 5.0 -flake8 # pytest will be brought in by pytest-cov pytest-cov -sphinx >= 2 -pylint testfixtures diff --git a/unittests/test_cfg_checker.py b/unittests/test_cfg_checker.py index 41d17251..8c58b54a 100644 --- a/unittests/test_cfg_checker.py +++ b/unittests/test_cfg_checker.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS,