Skip to content

Commit b3096de

Browse files
committed
fixed importModel to transform dict to specs object. Added test cases.
1 parent ba85c4c commit b3096de

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

netpyne_ui/netpyne_geppetto.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,12 @@ def importModel(self, modelParameters):
231231
# Import Model attributes
232232
self.netParams = getattr(net_params_module_name, str(modelParameters["netParamsVariable"]))
233233

234+
if isinstance(self.netParams, dict):
235+
self.netParams = specs.NetParams(self.netParams)
236+
237+
if isinstance(self.simConfig, dict):
238+
self.simConfig = specs.SimConfig(self.simConfig)
239+
234240
for key, value in self.netParams.cellParams.items():
235241
if hasattr(value, 'todict'):
236242
self.netParams.cellParams[key] = value.todict()
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import unittest
2+
import os
3+
import sys
4+
import logging
5+
import json, urllib.request
6+
7+
import netpyne
8+
9+
from netpyne import specs, sim
10+
from netpyne_ui.netpyne_model_interpreter import NetPyNEModelInterpreter
11+
import neuron
12+
import subprocess
13+
14+
from netpyne_ui.netpyne_geppetto import NETPYNE_WORKDIR_PATH
15+
from netpyne_ui.netpyne_geppetto import NetPyNEGeppetto
16+
17+
netpyne.__gui__ = False
18+
sys.path.insert(0, NETPYNE_WORKDIR_PATH)
19+
20+
class TestNetPyNEModelInterpreter(unittest.TestCase):
21+
22+
@classmethod
23+
def setUpClass(cls):
24+
HERE = os.path.dirname(os.path.realpath(__file__))
25+
ROOT = os.path.dirname(HERE)
26+
cls.path = NETPYNE_WORKDIR_PATH
27+
modelpath = os.path.join(NETPYNE_WORKDIR_PATH, 'mod')
28+
subprocess.call(["rm", "-r", os.path.join(modelpath, "x86_64")])
29+
owd = os.getcwd()
30+
os.chdir(modelpath)
31+
p = subprocess.check_output(["nrnivmodl"])
32+
os.chdir(owd)
33+
try:
34+
neuron.load_mechanisms(modelpath)
35+
except:
36+
logging.error("Error loading mechanisms", exc_info=True)
37+
38+
def test_dict_import_1(self):
39+
print("------------------------------------")
40+
print("Dictionary transform importModel:")
41+
print("------------------------------------")
42+
43+
# response = urllib.request.urlopen("https://www.opensourcebrain.org/projects/netpyneshowcase/repository/revisions/test_py36/raw/NetPyNE/UI/HHCellNetwork.txt.json")
44+
netpyne_info = {} #json.loads(response.read())
45+
46+
# print(type(netpyne_info['net']['params']))
47+
48+
netpyne_info['compileMod'] = False
49+
netpyne_info['loadMod'] = False
50+
netpyne_info['modFolder'] = "mod"
51+
netpyne_info['netParamsPath'] = "."
52+
netpyne_info['netParamsModuleName'] = "gui_import_dict"
53+
netpyne_info['netParamsVariable'] = "netParams"
54+
netpyne_info['simConfigPath'] = "."
55+
netpyne_info['simConfigModuleName'] = "gui_import_dict"
56+
netpyne_info['simConfigVariable'] = "simConfig"
57+
58+
netpyne = NetPyNEGeppetto()
59+
netpyne.importModel(netpyne_info)
60+
61+
if __name__ == '__main__':
62+
try:
63+
unittest.main()
64+
except SystemExit as inst:
65+
if inst.args[0]: # raised by sys.exit(True) when tests failed
66+
raise

0 commit comments

Comments
 (0)