diff --git a/.github/workflows/omv-ci.yml b/.github/workflows/omv-ci.yml
index f4e448c..9e717ed 100644
--- a/.github/workflows/omv-ci.yml
+++ b/.github/workflows/omv-ci.yml
@@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: [ "3.10", "3.12", "3.13" ] # Brian no longer supported on py3.9!
+ python-version: [ "3.12", "3.13" ] # Brian no longer supported on py3.10!
engine: [ jNeuroML, jNeuroML_NEURON, jNeuroML_PyNN_NEURON, jNeuroML_validate, PyNN_NEURON, PyNN_Nest, PyNN_NeuroML, PyNN_Brian2]
steps:
@@ -32,6 +32,9 @@ jobs:
run: |
pip install matplotlib "cython<3.1.0" # let omv handle other deps...
+ pip install 'numpy==2.2.6' # to test against older numpy versions... TODO: remove when pynn v0.12 used!
+
+ pip list
- name: Run OMV tests on engine ${{ matrix.engine }}
@@ -40,11 +43,10 @@ jobs:
- name: Regenerate
run: |
- export JNML_HOME=/home/runner/jnml/jNeuroMLJar
- export PATH=$JNML_HOME:$PATH
+ omv install pyNeuroML # required for regeneration (installs jnml too)...
omv install PyNN # required for regeneration...
- omv install pyNeuroML # required for regeneration...
- omv install jNeuroML
+
+ which pynml
which jnml
./regenerate.sh
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 320ab91..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-# Framework for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation
-
-dist: bionic # bionic + py3.6 required for building Nest using omv...
-
-addons:
- apt:
- packages:
- # Requirements for Brian & NEST
- - python-numpy
- - python-scipy
- - python-matplotlib
- - python-sympy
- - python-tables
- - python-tornado
- - libreadline6-dev
- - libncurses5-dev
- - libgsl0-dev
- - cython
-
-
-language: python
-python:
- - 2.7
- - 3.6 # bionic + py3.6 required for building Nest using omv...
-
-env:
- - OMV_ENGINE=jNeuroML
- - OMV_ENGINE=jNeuroML_NEURON
- - OMV_ENGINE=jNeuroML_PyNN_NEURON
- - OMV_ENGINE=jNeuroML_validate
- - OMV_ENGINE=PyNN_NEURON
- - OMV_ENGINE=PyNN_Nest
- - OMV_ENGINE=PyNN_Brian1
- - OMV_ENGINE=PyNN_NeuroML
-
-install:
- - pip install git+https://github.com/OpenSourceBrain/osb-model-validation
- - pip install tables scipy # Why is this needed? Doesn't seem to get installed correctly on travis with addons above...
-
- # Need to pre install NEURON for PyNN_NEURON so nrnivmodl can be run on generated mods
- - if [[ ${OMV_ENGINE} == "PyNN_NEURON" ]]; then
- omv install NEURON;
- cd PyNN;
- /home/travis/neuron/nrn/x86_64/bin/nrnivmodl;
- cd ..;
- omv list-engines;
- fi;
-
-script:
- - omv all -V --ignore-non-py3 # will ignore Brian1 tests when run on py3
- - omv list -V
- - pip freeze
- - env
diff --git a/NeuroML2/ConnectionsTest.net.nml b/NeuroML2/ConnectionsTest.net.nml
index 285088b..fbf1dab 100644
--- a/NeuroML2/ConnectionsTest.net.nml
+++ b/NeuroML2/ConnectionsTest.net.nml
@@ -3,7 +3,7 @@
This NeuroML 2 file has been generated from:
PyNN v0.11.0
libNeuroML v0.6.8
- pyNeuroML v1.3.19
+ pyNeuroML v1.3.22
@@ -17,38 +17,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/NeuroML2/Inputs.net.nml b/NeuroML2/Inputs.net.nml
index d3069dd..ddf4e4b 100644
--- a/NeuroML2/Inputs.net.nml
+++ b/NeuroML2/Inputs.net.nml
@@ -3,7 +3,7 @@
This NeuroML 2 file has been generated from:
PyNN v0.11.0
libNeuroML v0.6.8
- pyNeuroML v1.3.19
+ pyNeuroML v1.3.22
diff --git a/NeuroML2/LEMS_Sim_Inputs.xml b/NeuroML2/LEMS_Sim_Inputs.xml
index 24f72d3..e3a7efb 100644
--- a/NeuroML2/LEMS_Sim_Inputs.xml
+++ b/NeuroML2/LEMS_Sim_Inputs.xml
@@ -4,7 +4,7 @@
This LEMS file has been generated from:
PyNN v0.11.0
libNeuroML v0.6.8
- pyNeuroML v1.3.19
+ pyNeuroML v1.3.22
-->
diff --git a/NeuroML2/LEMS_Sim_PyNN_NeuroML2_Export.xml b/NeuroML2/LEMS_Sim_PyNN_NeuroML2_Export.xml
index ca0d527..c3eda93 100644
--- a/NeuroML2/LEMS_Sim_PyNN_NeuroML2_Export.xml
+++ b/NeuroML2/LEMS_Sim_PyNN_NeuroML2_Export.xml
@@ -4,7 +4,7 @@
This LEMS file has been generated from:
PyNN v0.11.0
libNeuroML v0.6.8
- pyNeuroML v1.3.19
+ pyNeuroML v1.3.22
-->
diff --git a/NeuroML2/PyNN_NeuroML2_Export.net.nml b/NeuroML2/PyNN_NeuroML2_Export.net.nml
index c59bb93..67a3add 100644
--- a/NeuroML2/PyNN_NeuroML2_Export.net.nml
+++ b/NeuroML2/PyNN_NeuroML2_Export.net.nml
@@ -3,7 +3,7 @@
This NeuroML 2 file has been generated from:
PyNN v0.11.0
libNeuroML v0.6.8
- pyNeuroML v1.3.19
+ pyNeuroML v1.3.22
diff --git a/PyNN/NeuroMLTest_PyNN0.9.py b/PyNN/NeuroMLTest_PyNN0.9.py
index 87c8d9e..f55f01a 100644
--- a/PyNN/NeuroMLTest_PyNN0.9.py
+++ b/PyNN/NeuroMLTest_PyNN0.9.py
@@ -100,11 +100,18 @@ def get_source_id(spiketrain):
elif 'channel_id' in spiketrain.annotations: # See https://github.com/NeuralEnsemble/PyNN/pull/762
return spiketrain.annotations['channel_id']
+ def get_source_ids_as(analogsignal):
+ if 'source_ids' in analogsignal.annotations:
+ return analogsignal.annotations['source_ids']
+ elif 'channel_ids' in analogsignal.annotations: # See https://github.com/NeuralEnsemble/PyNN/pull/762
+ return analogsignal.annotations['channel_ids']
+
+
for pop in [pop_IF_curr_alpha, pop_IF_curr_exp, pop_IF_cond_exp, pop_IF_cond_alpha,pop_EIF_cond_exp_isfa_ista, pop_HH_cond_exp, pop_post1,pop_post2]:
data = pop.get_data('v', gather=False)
analogsignal = data.segments[0].analogsignals[0]
name = analogsignal.name
- source_ids = analogsignal.annotations['source_ids']
+ source_ids = get_source_ids_as(analogsignal)
print('Saving data recorded for %s in pop %s, global ids: %s'%(name, pop.label, source_ids))
for i in range(len(source_ids)):
glob_id = source_ids[i]