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]