OSBModelValidation 0.3.10__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0/OSBModelValidation.egg-info}/PKG-INFO +4 -4
  2. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/OSBModelValidation.egg-info/SOURCES.txt +1 -3
  3. {osbmodelvalidation-0.3.10/OSBModelValidation.egg-info → osbmodelvalidation-0.4.0}/PKG-INFO +4 -4
  4. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/README.md +3 -3
  5. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/autogen.py +1 -1
  6. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/__init__.py +0 -2
  7. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getbrian2.py +1 -3
  8. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getmoose.py +2 -0
  9. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getnest.py +1 -1
  10. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getnetpyne.py +0 -14
  11. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getnrn.py +9 -11
  12. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/neuron_.py +1 -5
  13. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pyneuron.py +1 -5
  14. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/omv_util.py +12 -15
  15. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/parse_omt.py +1 -5
  16. osbmodelvalidation-0.4.0/omv/test/test_drop_py2_bits.py +57 -0
  17. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/setup.cfg +1 -1
  18. osbmodelvalidation-0.3.10/omv/engines/brian1.py +0 -59
  19. osbmodelvalidation-0.3.10/omv/engines/jneuromlbrian.py +0 -65
  20. osbmodelvalidation-0.3.10/omv/engines/pynnbrian1.py +0 -59
  21. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/LICENSE.lesser +0 -0
  22. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/MANIFEST.in +0 -0
  23. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/OSBModelValidation.egg-info/dependency_links.txt +0 -0
  24. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/OSBModelValidation.egg-info/entry_points.txt +0 -0
  25. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/OSBModelValidation.egg-info/requires.txt +0 -0
  26. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/OSBModelValidation.egg-info/top_level.txt +0 -0
  27. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/__init__.py +0 -0
  28. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/__init__.py +0 -0
  29. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/activation.py +0 -0
  30. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/analyzer.py +0 -0
  31. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/dryrun.py +0 -0
  32. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/input_resistance.py +0 -0
  33. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/morphology.py +0 -0
  34. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/rates.py +0 -0
  35. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/resting.py +0 -0
  36. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/spikes.py +0 -0
  37. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/temperature.py +0 -0
  38. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/timeseries.py +0 -0
  39. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/utils/__init__.py +0 -0
  40. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/utils/filenode.py +0 -0
  41. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/analyzers/utils/timeseries.py +0 -0
  42. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/common/__init__.py +0 -0
  43. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/common/inout.py +0 -0
  44. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/arbor_.py +0 -0
  45. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/brian2_.py +0 -0
  46. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/eden_.py +0 -0
  47. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/engine.py +0 -0
  48. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/genesis.py +0 -0
  49. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getarbor.py +0 -0
  50. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getbrian1.py +0 -0
  51. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/geteden.py +0 -0
  52. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getgenesis.py +0 -0
  53. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getjlems.py +0 -0
  54. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getjnml.py +0 -0
  55. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getlibsbml.py +0 -0
  56. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getneuroconstruct.py +0 -0
  57. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getnml2.py +0 -0
  58. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getoctave.py +0 -0
  59. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getpylems.py +0 -0
  60. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getpyneuroml.py +0 -0
  61. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getpynn.py +0 -0
  62. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/getxpp.py +0 -0
  63. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jlems.py +0 -0
  64. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuroml.py +0 -0
  65. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlbrian2.py +0 -0
  66. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromleden.py +0 -0
  67. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlmoose.py +0 -0
  68. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlnetpyne.py +0 -0
  69. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlnetpyne_np2.py +0 -0
  70. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlnetpyne_np4.py +0 -0
  71. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlnrn.py +0 -0
  72. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlpynnnrn.py +0 -0
  73. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlvalidate.py +0 -0
  74. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlvalidatev1.py +0 -0
  75. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/jneuromlxpp.py +0 -0
  76. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/moose_.py +0 -0
  77. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/nestsli.py +0 -0
  78. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/netpyne_.py +0 -0
  79. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/netpyne__np2.py +0 -0
  80. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/netpyne__np4.py +0 -0
  81. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/octave.py +0 -0
  82. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pylems.py +0 -0
  83. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pylemsnml2.py +0 -0
  84. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynest.py +0 -0
  85. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pyneuroconstruct.py +0 -0
  86. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pyneuroml_.py +0 -0
  87. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pyneuromlvalidatesbml.py +0 -0
  88. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pyneuromlxpp.py +0 -0
  89. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynn.py +0 -0
  90. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynnbrian2.py +0 -0
  91. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynnnest.py +0 -0
  92. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynnneuroml.py +0 -0
  93. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/pynnneuron.py +0 -0
  94. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/utils/__init__.py +0 -0
  95. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/utils/genesis_utils.g +0 -0
  96. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/utils/wdir.py +0 -0
  97. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/engines/xpp.py +0 -0
  98. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/experiment.py +0 -0
  99. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/find_tests.py +0 -0
  100. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/omt_mep_parser.py +0 -0
  101. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/mep.yaml +0 -0
  102. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/observable_datafile.yaml +0 -0
  103. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/observable_literal.yaml +0 -0
  104. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/observables.yaml +0 -0
  105. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/test/observable_datafile.yaml +0 -0
  106. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/test/observable_literal.1.yaml +0 -0
  107. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/base/test/observable_literal.3.yaml +0 -0
  108. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/expected.yaml +0 -0
  109. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/experiment.yaml +0 -0
  110. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/observable.yaml +0 -0
  111. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/protocol.yaml +0 -0
  112. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/protocol_properties.yaml +0 -0
  113. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/expected.1.yaml +0 -0
  114. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/expected.2.yaml +0 -0
  115. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/expected.3.yaml +0 -0
  116. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/expected.4.yaml +0 -0
  117. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/experiment.1.yaml +0 -0
  118. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/experiment.2.yaml +0 -0
  119. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/observable.yaml +0 -0
  120. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/protocol.1.yaml +0 -0
  121. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/schemata/types/test/protocol.2.yaml +0 -0
  122. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/tally.py +0 -0
  123. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/test/__init__.py +0 -0
  124. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/test/test_rates.py +0 -0
  125. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/test/test_types.py +0 -0
  126. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/validation/__init__.py +0 -0
  127. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/validation/rx_validator.py +0 -0
  128. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/validation/utils.py +0 -0
  129. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/validation/validate.py +0 -0
  130. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/omv/validation/validate_mep.py +0 -0
  131. {osbmodelvalidation-0.3.10 → osbmodelvalidation-0.4.0}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OSBModelValidation
3
- Version: 0.3.10
3
+ Version: 0.4.0
4
4
  Summary: Open Source Brain Model validation
5
5
  Home-page: https://github.com/OpenSourceBrain/osb-model-validation
6
6
  Author: Boris Marin, Padraig Gleeson
@@ -37,14 +37,14 @@ Dynamic: license-file
37
37
 
38
38
  # OSB Model Validation
39
39
 
40
- Tools for automated model validation in [Open Source Brain](http://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
40
+ Tools for automated model validation in [Open Source Brain](https://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
41
41
 
42
42
  - on your local machine when developing models
43
43
  - on [GitHub Actions](https://github.com/features/actions), to ensure tests pass on every commit.
44
44
 
45
45
  To see this framework in action, click on some of the green buttons below:
46
46
 
47
- | OSB project | Tests on GitHub Actions | Test workflow script |
47
+ | OSBv1 project | Tests on GitHub Actions | Test workflow script |
48
48
  |----------|:-------------:|:------:|
49
49
  |[FitzHugh Nagumo](http://www.opensourcebrain.org/projects/fitzhugh-nagumo-fitzhugh-1969) | [![Continuous build using OMV](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/.github/workflows/omv-ci.yml) |
50
50
  |[Auditory cortex network](http://www.opensourcebrain.org/projects/acnet2)| [![Continuous build using OMV](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/ACnet2/blob/master/.github/workflows/omv-ci.yml) |
@@ -82,7 +82,7 @@ Setting up validation for a model and simulation written in NeuroML2/LEMS requir
82
82
  ### Write MEP files
83
83
 
84
84
  Depending on the size of your model, you can run validation on the full fledged model, or you can create smaller stripped down versions that test particular aspects of the model.
85
- Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHugNagamo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
85
+ Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHughNagumo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
86
86
 
87
87
  ``` yaml
88
88
  # Script for running automated tests on OSBrain, see https://github.com/OpenSourceBrain/osb-model-validation
@@ -35,7 +35,6 @@ omv/common/__init__.py
35
35
  omv/common/inout.py
36
36
  omv/engines/__init__.py
37
37
  omv/engines/arbor_.py
38
- omv/engines/brian1.py
39
38
  omv/engines/brian2_.py
40
39
  omv/engines/eden_.py
41
40
  omv/engines/engine.py
@@ -61,7 +60,6 @@ omv/engines/getpynn.py
61
60
  omv/engines/getxpp.py
62
61
  omv/engines/jlems.py
63
62
  omv/engines/jneuroml.py
64
- omv/engines/jneuromlbrian.py
65
63
  omv/engines/jneuromlbrian2.py
66
64
  omv/engines/jneuromleden.py
67
65
  omv/engines/jneuromlmoose.py
@@ -89,7 +87,6 @@ omv/engines/pyneuromlvalidatesbml.py
89
87
  omv/engines/pyneuromlxpp.py
90
88
  omv/engines/pyneuron.py
91
89
  omv/engines/pynn.py
92
- omv/engines/pynnbrian1.py
93
90
  omv/engines/pynnbrian2.py
94
91
  omv/engines/pynnnest.py
95
92
  omv/engines/pynnneuroml.py
@@ -120,6 +117,7 @@ omv/schemata/types/test/observable.yaml
120
117
  omv/schemata/types/test/protocol.1.yaml
121
118
  omv/schemata/types/test/protocol.2.yaml
122
119
  omv/test/__init__.py
120
+ omv/test/test_drop_py2_bits.py
123
121
  omv/test/test_rates.py
124
122
  omv/test/test_types.py
125
123
  omv/validation/__init__.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OSBModelValidation
3
- Version: 0.3.10
3
+ Version: 0.4.0
4
4
  Summary: Open Source Brain Model validation
5
5
  Home-page: https://github.com/OpenSourceBrain/osb-model-validation
6
6
  Author: Boris Marin, Padraig Gleeson
@@ -37,14 +37,14 @@ Dynamic: license-file
37
37
 
38
38
  # OSB Model Validation
39
39
 
40
- Tools for automated model validation in [Open Source Brain](http://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
40
+ Tools for automated model validation in [Open Source Brain](https://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
41
41
 
42
42
  - on your local machine when developing models
43
43
  - on [GitHub Actions](https://github.com/features/actions), to ensure tests pass on every commit.
44
44
 
45
45
  To see this framework in action, click on some of the green buttons below:
46
46
 
47
- | OSB project | Tests on GitHub Actions | Test workflow script |
47
+ | OSBv1 project | Tests on GitHub Actions | Test workflow script |
48
48
  |----------|:-------------:|:------:|
49
49
  |[FitzHugh Nagumo](http://www.opensourcebrain.org/projects/fitzhugh-nagumo-fitzhugh-1969) | [![Continuous build using OMV](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/.github/workflows/omv-ci.yml) |
50
50
  |[Auditory cortex network](http://www.opensourcebrain.org/projects/acnet2)| [![Continuous build using OMV](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/ACnet2/blob/master/.github/workflows/omv-ci.yml) |
@@ -82,7 +82,7 @@ Setting up validation for a model and simulation written in NeuroML2/LEMS requir
82
82
  ### Write MEP files
83
83
 
84
84
  Depending on the size of your model, you can run validation on the full fledged model, or you can create smaller stripped down versions that test particular aspects of the model.
85
- Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHugNagamo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
85
+ Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHughNagumo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
86
86
 
87
87
  ``` yaml
88
88
  # Script for running automated tests on OSBrain, see https://github.com/OpenSourceBrain/osb-model-validation
@@ -9,14 +9,14 @@
9
9
 
10
10
  # OSB Model Validation
11
11
 
12
- Tools for automated model validation in [Open Source Brain](http://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
12
+ Tools for automated model validation in [Open Source Brain](https://www.opensourcebrain.org) projects, which can also be used for testing model behaviour on many [simulation engines](https://github.com/OpenSourceBrain/osb-model-validation/tree/master/omv/engines) both:
13
13
 
14
14
  - on your local machine when developing models
15
15
  - on [GitHub Actions](https://github.com/features/actions), to ensure tests pass on every commit.
16
16
 
17
17
  To see this framework in action, click on some of the green buttons below:
18
18
 
19
- | OSB project | Tests on GitHub Actions | Test workflow script |
19
+ | OSBv1 project | Tests on GitHub Actions | Test workflow script |
20
20
  |----------|:-------------:|:------:|
21
21
  |[FitzHugh Nagumo](http://www.opensourcebrain.org/projects/fitzhugh-nagumo-fitzhugh-1969) | [![Continuous build using OMV](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/.github/workflows/omv-ci.yml) |
22
22
  |[Auditory cortex network](http://www.opensourcebrain.org/projects/acnet2)| [![Continuous build using OMV](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/OpenSourceBrain/ACnet2/actions/workflows/omv-ci.yml) | [omv-ci.yml](https://github.com/OpenSourceBrain/ACnet2/blob/master/.github/workflows/omv-ci.yml) |
@@ -54,7 +54,7 @@ Setting up validation for a model and simulation written in NeuroML2/LEMS requir
54
54
  ### Write MEP files
55
55
 
56
56
  Depending on the size of your model, you can run validation on the full fledged model, or you can create smaller stripped down versions that test particular aspects of the model.
57
- Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHugNagamo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
57
+ Here is an example LEMS file for the FitzHugh-Nagumo model on Open Source Brain: [LEMS_FitzHughNagumo.xml](https://github.com/OpenSourceBrain/FitzHugh-Nagumo/blob/master/NeuroML2/LEMS_FitzHughNagumo.xml).
58
58
 
59
59
  ``` yaml
60
60
  # Script for running automated tests on OSBrain, see https://github.com/OpenSourceBrain/osb-model-validation
@@ -80,7 +80,7 @@ def generate_dottravis(targets):
80
80
  travis = UnsortableOrderedDict(
81
81
  [
82
82
  ("language", "python"),
83
- ("python", 2.7),
83
+ ("python", 3.12),
84
84
  ("env", engines),
85
85
  ("install", ["pip install " + repo]),
86
86
  ("script", ["omv all"]),
@@ -21,7 +21,6 @@ from omv.engines.pylems import PyLemsEngine
21
21
  from omv.engines.pylemsnml2 import PyLemsNeuroML2Engine
22
22
  from omv.engines.genesis import GenesisEngine
23
23
 
24
- # from omv.engines.brian1 import Brian1Engine
25
24
  from omv.engines.brian2_ import Brian2Engine
26
25
  from omv.engines.arbor_ import ArborEngine
27
26
  from omv.engines.xpp import XppEngine
@@ -33,7 +32,6 @@ from omv.engines.pynn import PyNNEngine
33
32
  from omv.engines.pynnneuron import PyNNNRNEngine
34
33
  from omv.engines.pyneuron import PyNRNEngine
35
34
 
36
- # from omv.engines.pynnbrian1 import PyNNBrian1Engine
37
35
  from omv.engines.pynnbrian2 import PyNNBrian2Engine
38
36
  from omv.engines.pynnnest import PyNNNestEngine
39
37
  from omv.engines.pynnneuroml import PyNNNeuroMLEngine
@@ -1,11 +1,9 @@
1
1
  from omv.common.inout import pip_install
2
2
 
3
- from omv.engines.getbrian1 import check_scipy_dev
4
-
5
3
 
6
4
  def install_brian2(version):
7
5
  if not version:
8
- version = "2.7.1"
6
+ version = "2.10.1"
9
7
  try:
10
8
  pip_install("brian2", version)
11
9
  import brian2
@@ -4,8 +4,10 @@ from omv.common.inout import pip_install
4
4
  def install_moose(version):
5
5
  if not version:
6
6
  version = "4.0.0.dev20240411"
7
+ version = "4.1.4" # temp test this, it is the latest on pypi...
7
8
  try:
8
9
  pip_install("pymoose", version)
10
+ pip_install("pint")
9
11
  import moose
10
12
 
11
13
  m = "Successfully installed MOOSE..."
@@ -8,7 +8,7 @@ import sys
8
8
 
9
9
  def install_nest(version):
10
10
  if not version:
11
- version = "3.5"
11
+ version = "3.7"
12
12
 
13
13
  inform("Installing NEST", indent=2, verbosity=1)
14
14
  nestpath = os.path.join(os.environ["HOME"], "nest")
@@ -2,7 +2,6 @@ from omv.common.inout import check_output
2
2
  from omv.engines.utils.wdir import working_dir
3
3
  from omv.common.inout import pip_install
4
4
  import os
5
- import sys
6
5
 
7
6
 
8
7
  def install_netpyne(version=None):
@@ -33,19 +32,6 @@ def install_netpyne(version=None):
33
32
  print(check_output(["pwd"]))
34
33
 
35
34
  with working_dir(path):
36
- if sys.version_info.major == 2:
37
- pip_install(
38
- [
39
- "kiwisolver==1.0.1",
40
- "matplotlib==2.2.4",
41
- "pandas==0.23.4",
42
- "bokeh==1.4.0",
43
- "Pillow==5.4.1",
44
- "matplotlib-scalebar==0.5.1",
45
- "scipy==1.2.2",
46
- "python-dateutil==2.8.0",
47
- ]
48
- )
49
35
  pip_install(".")
50
36
 
51
37
  m = "Successfully installed NetPyNE..."
@@ -1,20 +1,24 @@
1
1
  import os
2
2
  import sys
3
+ import re
3
4
  from subprocess import check_output as co
4
5
  from omv.common.inout import inform
5
6
  from omv.common.inout import pip_install
6
7
 
7
8
  from omv.engines.utils.wdir import working_dir
8
9
 
10
+ DEFAULT_NEURON_VERSION = "8.2.7"
11
+
12
+
13
+ def _supports_pip_install(version):
14
+ return bool(re.match(r"^7\.8($|\.)|^8\.", version))
15
+
9
16
 
10
17
  def install_neuron(version):
11
18
  if not version:
12
- if sys.version_info.major == 3:
13
- version = "8.2.7" # for pynn 0.11.0
14
- else:
15
- version = "7.6"
19
+ version = DEFAULT_NEURON_VERSION
16
20
 
17
- if sys.version_info.major == 3 and ("7.8" in version or "8." in version):
21
+ if _supports_pip_install(version):
18
22
  pip_install("neuron==%s" % version)
19
23
  import neuron
20
24
 
@@ -31,12 +35,6 @@ def install_neuron(version):
31
35
  )
32
36
  dl_file = "nrn-%s.tar.gz" % version
33
37
 
34
- # See below re 7.8 on py2...
35
- if "7.8" in version or "8.0" in version:
36
- nrn_url = "https://github.com/neuronsimulator/nrn/archive/%s.tar.gz" % (
37
- version
38
- )
39
- dl_file = "%s.tar.gz" % version
40
38
  print(co(["wget", "-nv", nrn_url]))
41
39
  print(co(["tar", "xzvf", dl_file]))
42
40
  print(co(["mv", "nrn-%s" % version, "nrn"]))
@@ -1,5 +1,4 @@
1
1
  import os
2
- import sys
3
2
  from glob import glob
4
3
  import platform
5
4
  import subprocess as sp
@@ -175,10 +174,7 @@ class NeuronEngine(OMVEngine):
175
174
  self.modelpath,
176
175
  "\n".join(self.extra_pars),
177
176
  )
178
- if sys.version_info[0] == 3:
179
- c = dedent(cmd).encode()
180
- else:
181
- c = dedent(cmd)
177
+ c = dedent(cmd).encode()
182
178
  stdout, stderr = p.communicate(c)
183
179
  # with open('/tmp/omv_test.nrn.stdout', 'w') as f:
184
180
  # f.write(stdout)
@@ -2,7 +2,6 @@ import subprocess as sp
2
2
  from textwrap import dedent
3
3
  from omv.engines.utils.wdir import working_dir
4
4
  from os.path import dirname
5
- import sys
6
5
 
7
6
  from omv.engines.neuron_ import NeuronEngine
8
7
 
@@ -73,10 +72,7 @@ class PyNRNEngine(NeuronEngine):
73
72
  cmd = """\
74
73
  %s
75
74
  """ % ("\n".join(self.extra_pars))
76
- if sys.version_info[0] == 3:
77
- c = dedent(cmd).encode()
78
- else:
79
- c = dedent(cmd)
75
+ c = dedent(cmd).encode()
80
76
  stdout, stderr = p.communicate(c)
81
77
  # with open('/tmp/omv_test.nrn.stdout', 'w') as f:
82
78
  # f.write(stdout)
@@ -2,9 +2,9 @@
2
2
  ============================================
3
3
 
4
4
  Usage:
5
- omv all [-V | --verbose] [--engine=engine] [--ignore-non-py3]
6
- omv all_ [-V | --verbose] [--engine=engine]
7
- omv test <testMe.omt> [-V | --verbose]
5
+ omv all [-V | --verbose] [--engine=engine] [--ignore-non-py3] [--exit-zero]
6
+ omv all_ [-V | --verbose] [--engine=engine] [--ignore-non-py3] [--exit-zero]
7
+ omv test <testMe.omt> [-V | --verbose] [--exit-zero]
8
8
  omv autogen [options]
9
9
  omv install <engine>
10
10
  omv find
@@ -20,6 +20,7 @@
20
20
  -V --verbose Display additional diagnosis messages [default: False].
21
21
  --version Show version.
22
22
  --ignore-non-py3 If Python 3, ignore tests on non Py3 compatible engines [default: False]
23
+ --exit-zero Run tests as normal and report failures, but always exit with code 0 [default: False]
23
24
  -y Auto-select default options (non-interactive mode)
24
25
  """
25
26
 
@@ -46,12 +47,15 @@ def main():
46
47
  if arguments["--verbose"]:
47
48
  set_verbosity(1)
48
49
 
50
+ exit_zero = arguments["--exit-zero"]
51
+
49
52
  if arguments["test"]:
50
53
  try:
51
54
  test_one(arguments["<testMe.omt>"])
52
55
  except AssertionError:
53
56
  inform("Failed due to non passing tests")
54
- exit(1)
57
+ if not exit_zero:
58
+ exit(1)
55
59
 
56
60
  elif arguments["all"]:
57
61
  try:
@@ -74,7 +78,8 @@ def main():
74
78
  )
75
79
  except AssertionError:
76
80
  inform("Failed due to non passing tests")
77
- exit(1)
81
+ if not exit_zero:
82
+ exit(1)
78
83
 
79
84
  # Includes *.omt_, i.e. temporary test files
80
85
  elif arguments["all_"]:
@@ -86,7 +91,8 @@ def main():
86
91
  )
87
92
  except AssertionError:
88
93
  inform("Failed due to non passing tests")
89
- exit(1)
94
+ if not exit_zero:
95
+ exit(1)
90
96
 
91
97
  elif arguments["find"]:
92
98
  try:
@@ -364,15 +370,6 @@ def _install_engine(eng):
364
370
 
365
371
  install_netpyne(engine_version)
366
372
 
367
- elif eng.lower() == "Brian".lower():
368
- if engine_version is not None:
369
- raise Exception(
370
- "Currently, cannot install a specific version of engine %s" % eng
371
- )
372
- from omv.engines.getbrian1 import install_brian
373
-
374
- install_brian()
375
-
376
373
  elif eng.lower() == "Brian2".lower():
377
374
  from omv.engines.brian2_ import Brian2Engine as ee
378
375
 
@@ -3,7 +3,6 @@ from omv.engines.engine import EngineInstallationError, EngineExecutionError
3
3
  from omv.omt_mep_parser import OMVTestParser
4
4
  from omv.common.inout import inform, check, trim_path
5
5
  from omv.tally import Tallyman
6
- import sys
7
6
  import platform
8
7
 
9
8
 
@@ -67,10 +66,7 @@ def parse_omt(omt_path, do_not_run=False, engine_version=None, ignore_non_py3=Fa
67
66
  indent=3,
68
67
  )
69
68
  for rn, rv in results.items():
70
- if sys.version_info >= (3, 0):
71
- inform("{:<30}{:^20}".format(rn, check(rv)), indent=3)
72
- else:
73
- inform("{:<30}{:^20}".format(rn, check(rv)), indent=3)
69
+ inform("{:<30}{:^20}".format(rn, check(rv)), indent=3)
74
70
  if not rv:
75
71
  some_failed = True
76
72
  tally.add_experiment(exp, results)
@@ -0,0 +1,57 @@
1
+ from contextlib import contextmanager
2
+ import sys
3
+ import types
4
+
5
+ import pytest
6
+
7
+ from omv.engines import getnetpyne, getnrn
8
+
9
+
10
+ def test_install_neuron_defaults_to_modern_version(monkeypatch):
11
+ pip_calls = []
12
+
13
+ monkeypatch.setattr(getnrn, "pip_install", lambda spec: pip_calls.append(spec))
14
+ monkeypatch.setattr(getnrn, "inform", lambda *args, **kwargs: None)
15
+ monkeypatch.setitem(sys.modules, "neuron", types.SimpleNamespace())
16
+
17
+ getnrn.install_neuron(None)
18
+
19
+ assert pip_calls == [f"neuron=={getnrn.DEFAULT_NEURON_VERSION}"]
20
+
21
+
22
+ @pytest.mark.parametrize("version", ["7.8.1", "8.2.7"])
23
+ def test_install_neuron_supported_versions_use_pip(monkeypatch, version):
24
+ pip_calls = []
25
+
26
+ monkeypatch.setattr(getnrn, "pip_install", lambda spec: pip_calls.append(spec))
27
+ monkeypatch.setattr(getnrn, "inform", lambda *args, **kwargs: None)
28
+ monkeypatch.setitem(sys.modules, "neuron", types.SimpleNamespace())
29
+
30
+ getnrn.install_neuron(version)
31
+
32
+ assert pip_calls == [f"neuron=={version}"]
33
+
34
+
35
+ @pytest.mark.parametrize(
36
+ "version,expected",
37
+ [("7.8", True), ("7.8.1", True), ("8.2.7", True), ("7.80", False), ("7.7.2", False)],
38
+ )
39
+ def test_supports_pip_install_matches_supported_families(version, expected):
40
+ assert getnrn._supports_pip_install(version) is expected
41
+
42
+
43
+ def test_install_netpyne_without_version_only_installs_package(monkeypatch):
44
+ pip_calls = []
45
+
46
+ @contextmanager
47
+ def no_op_working_dir(_):
48
+ yield
49
+
50
+ monkeypatch.setattr(getnetpyne.os.path, "isdir", lambda _: True)
51
+ monkeypatch.setattr(getnetpyne, "working_dir", no_op_working_dir)
52
+ monkeypatch.setattr(getnetpyne, "check_output", lambda *_: "")
53
+ monkeypatch.setattr(getnetpyne, "pip_install", lambda spec: pip_calls.append(spec))
54
+
55
+ getnetpyne.install_netpyne()
56
+
57
+ assert pip_calls == ["."]
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = OSBModelValidation
3
- version = 0.3.10
3
+ version = 0.4.0
4
4
  author = Boris Marin, Padraig Gleeson
5
5
  author_email = borismarin@gmail.com
6
6
  url = https://github.com/OpenSourceBrain/osb-model-validation
@@ -1,59 +0,0 @@
1
- import os
2
- import subprocess as sp
3
-
4
- from omv.common.inout import inform, trim_path, check_output, is_verbose
5
- from omv.engines.engine import OMVEngine, EngineExecutionError
6
-
7
-
8
- class Brian1Engine(OMVEngine):
9
- name = "Brian"
10
-
11
- python3_compatible = False
12
-
13
- @staticmethod
14
- def is_installed():
15
- ret = False
16
- try:
17
- import brian
18
-
19
- if is_verbose():
20
- inform(
21
- "Brian version %s is correctly installed..." % brian.__version__,
22
- indent=2,
23
- )
24
-
25
- ret = "v%s" % brian.__version__
26
-
27
- except Exception as err:
28
- inform("Couldn't import Brian into Python: ", err, indent=1)
29
- ret = False
30
- return ret
31
-
32
- @staticmethod
33
- def install(version):
34
- from omv.engines.getbrian1 import install_brian
35
-
36
- home = os.environ["HOME"]
37
- inform("Will fetch and install the latest Brian (version 1.x)", indent=2)
38
- install_brian()
39
- inform("Done...", indent=2)
40
-
41
- def run(self):
42
- try:
43
- inform(
44
- "Running file %s with %s" % (trim_path(self.modelpath), self.name),
45
- indent=1,
46
- )
47
- self.stdout = check_output(
48
- ["python", self.modelpath, "-nogui"],
49
- cwd=os.path.dirname(self.modelpath),
50
- )
51
- self.returncode = 0
52
- except sp.CalledProcessError as err:
53
- self.returncode = err.returncode
54
- self.stdout = err.output
55
- raise EngineExecutionError
56
- except Exception as err:
57
- inform("Another error with running %s: " % self.name, err, indent=1)
58
- self.returncode = -1
59
- self.stdout = "???"
@@ -1,65 +0,0 @@
1
- import os
2
- import subprocess as sp
3
-
4
- from omv.engines.jneuroml import JNeuroMLEngine
5
- from omv.engines.brian1 import Brian1Engine
6
- from omv.common.inout import inform, trim_path, check_output, is_verbose
7
- from omv.engines.engine import EngineExecutionError
8
-
9
-
10
- class JNeuroMLBrianEngine(JNeuroMLEngine):
11
- name = "jNeuroML_Brian"
12
-
13
- python3_compatible = Brian1Engine.python3_compatible
14
-
15
- @staticmethod
16
- def is_installed():
17
- if is_verbose():
18
- inform(
19
- "Checking whether %s is installed..." % JNeuroMLBrianEngine.name,
20
- indent=1,
21
- )
22
- return JNeuroMLEngine.is_installed() and Brian1Engine.is_installed()
23
-
24
- @staticmethod
25
- def install(version):
26
- if not JNeuroMLEngine.is_installed():
27
- JNeuroMLEngine.install(None)
28
- if not Brian1Engine.is_installed():
29
- Brian1Engine.install(version)
30
-
31
- JNeuroMLBrianEngine.path = JNeuroMLEngine.path + ":" + Brian1Engine.path
32
- JNeuroMLBrianEngine.environment_vars = {}
33
- JNeuroMLBrianEngine.environment_vars.update(JNeuroMLEngine.environment_vars)
34
- JNeuroMLBrianEngine.environment_vars.update(Brian1Engine.environment_vars)
35
- inform("PATH: " + JNeuroMLBrianEngine.path)
36
- inform("Env vars: %s" % JNeuroMLBrianEngine.environment_vars)
37
-
38
- def run(self):
39
- try:
40
- inform(
41
- "Running file %s with %s"
42
- % (trim_path(self.modelpath), JNeuroMLBrianEngine.name),
43
- indent=1,
44
- )
45
-
46
- from omv.engines.jneuroml import JNeuroMLEngine
47
-
48
- jnml = JNeuroMLEngine.get_executable()
49
-
50
- self.stdout = check_output(
51
- [jnml, self.modelpath, "-brian"],
52
- cwd=os.path.dirname(self.modelpath),
53
- env=JNeuroMLEngine.get_environment(),
54
- )
55
- self.stdout += check_output(
56
- ["python", self.modelpath.replace(".xml", "_brian.py"), "-nogui"],
57
- cwd=os.path.dirname(self.modelpath),
58
- )
59
- inform("Success with running ", JNeuroMLBrianEngine.name, indent=1)
60
- self.returncode = 0
61
- except sp.CalledProcessError as err:
62
- inform("Error with ", JNeuroMLBrianEngine.name, indent=1)
63
- self.returncode = err.returncode
64
- self.stdout = err.output
65
- raise EngineExecutionError
@@ -1,59 +0,0 @@
1
- import os
2
- import subprocess as sp
3
-
4
- from omv.engines.brian1 import Brian1Engine
5
- from omv.engines.pynn import PyNNEngine
6
-
7
- from omv.common.inout import inform, trim_path, check_output, is_verbose
8
- from omv.engines.engine import EngineExecutionError
9
-
10
-
11
- class PyNNBrian1Engine(PyNNEngine):
12
- name = "PyNN_Brian1"
13
- python3_compatible = Brian1Engine.python3_compatible
14
-
15
- @staticmethod
16
- def is_installed():
17
- if is_verbose():
18
- inform(
19
- "Checking whether %s is installed..." % PyNNBrian1Engine.name, indent=1
20
- )
21
- return PyNNEngine.is_installed() and Brian1Engine.is_installed()
22
-
23
- @staticmethod
24
- def install(version):
25
- if not Brian1Engine.is_installed():
26
- Brian1Engine.install(version) # interpret version as version of Brian!
27
- inform(
28
- "%s installed Brian..." % PyNNBrian1Engine.name, indent=2, verbosity=1
29
- )
30
- if not PyNNEngine.is_installed():
31
- PyNNEngine.install(None)
32
- inform(
33
- "%s installed PyNN..." % PyNNBrian1Engine.name, indent=2, verbosity=1
34
- )
35
-
36
- PyNNBrian1Engine.path = PyNNEngine.path + ":" + Brian1Engine.path
37
- PyNNBrian1Engine.environment_vars = {}
38
- PyNNBrian1Engine.environment_vars.update(PyNNEngine.environment_vars)
39
- PyNNBrian1Engine.environment_vars.update(Brian1Engine.environment_vars)
40
- inform("PATH: " + PyNNBrian1Engine.path)
41
-
42
- def run(self):
43
- try:
44
- inform(
45
- "Running file %s with %s" % (trim_path(self.modelpath), self.name),
46
- indent=1,
47
- )
48
- self.stdout = check_output(
49
- ["python", self.modelpath, "brian"], cwd=os.path.dirname(self.modelpath)
50
- )
51
- self.returncode = 0
52
- except sp.CalledProcessError as err:
53
- self.returncode = err.returncode
54
- self.stdout = err.output
55
- raise EngineExecutionError
56
- except Exception as err:
57
- inform("Another error with running %s: " % self.name, err, indent=1)
58
- self.returncode = -1
59
- self.stdout = "???"