@@ -217,7 +217,6 @@ def getPlot(self, plotName, LFPflavour):
217217 if LFPflavour :
218218 args ['plots' ] = [LFPflavour ]
219219 fig = getattr (analysis , plotName )(showFig = False , ** args )[0 ]
220- print (fig )
221220 if fig == - 1 :
222221 return fig
223222 elif isinstance (fig , list ):
@@ -289,6 +288,57 @@ def deleteParam(self, paramToDel):
289288
290289 def validateFunction (self , functionString ):
291290 return utils .ValidateFunction (functionString , netParams .__dict__ )
291+
292+ def generateScript (self , metadata ):
293+ def convert2bool (string ):
294+ return string .replace ('true' , 'True' ).replace ('false' , 'False' )
295+
296+ def header (title , spacer = '-' ):
297+ return '\n # ' + title .upper () + ' ' + spacer * (77 - len (title )) + '\n '
298+
299+ try :
300+ params = ['popParams' , 'cellParams' , 'synMechParams' ]
301+ params += ['connParams' , 'stimSourceParams' , 'stimTargetParams' ]
302+
303+ fname = metadata ['scriptName' ] if metadata ['scriptName' ][- 3 :]== '.py' else metadata ['scriptName' ]+ '.py'
304+
305+ with open (fname , 'w' ) as script :
306+ script .write ('from netpyne import specs, sim\n ' )
307+ script .write (header ('documentation' ))
308+ script .write ("''' Script generated with NetPyNE-UI. Please visit:\n " )
309+ script .write (" - https://www.netpyne.org\n - https://github.com/MetaCell/NetPyNE-UI\n '''\n " )
310+ script .write (header ('script' , spacer = '=' ))
311+ script .write ('netParams = specs.NetParams()\n ' )
312+ script .write ('simConfig = specs.SimConfig()\n ' )
313+ script .write (header ('single value attributes' ))
314+ for attr , value in netParams .__dict__ .items ():
315+ if attr not in params :
316+ if value != getattr (specs .NetParams (), attr ):
317+ script .write ('netParams.' + attr + ' = ' )
318+ script .write (convert2bool (json .dumps (value , indent = 4 ))+ '\n ' )
319+
320+ script .write (header ('network attributes' ))
321+ for param in params :
322+ for key , value in getattr (netParams , param ).items ():
323+ script .write ("netParams." + param + "['" + key + "'] = " )
324+ script .write (convert2bool (json .dumps (value , indent = 4 ))+ '\n ' )
325+
326+ script .write (header ('network configuration' ))
327+ for attr , value in simConfig .__dict__ .items ():
328+ if value != getattr (specs .SimConfig (), attr ):
329+ script .write ('netParams.' + attr + ' = ' )
330+ script .write (convert2bool (json .dumps (value , indent = 4 ))+ '\n ' )
331+
332+ script .write (header ('create simulate analyze network' ))
333+ script .write ('sim.createSimulateAnalyze(netParams=netParams, simConfig=simConfig)\n ' )
334+
335+ script .write (header ('end script' , spacer = '=' ))
336+
337+ return self .getJSONReply ()
338+
339+ except :
340+ return self .getJSONError ("Error while importing the NetPyNE model" , traceback .format_exc ())
341+
292342
293343class LoopTimer (threading .Thread ):
294344 """
0 commit comments