Skip to content

Commit f945d4a

Browse files
committed
netpyne-44 Add auto-save from the initial point
1 parent e192576 commit f945d4a

3 files changed

Lines changed: 24 additions & 1 deletion

File tree

webapp/components/NetPyNE.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class NetPyNE extends React.Component {
111111
kernelID: kernel.id
112112
}
113113
}
114-
if (type === "kernel_autorestarting") {
114+
else if (type === "kernel_autorestarting") {
115115
console.log("Kernel restart event caught, trying to re-init the current model")
116116
this.kernelRestartState = {
117117
state: "restarting",
@@ -122,6 +122,13 @@ class NetPyNE extends React.Component {
122122
message: "An action occured that made the kernel restart. We are reloading your model and all the actions you applied on it."
123123
}))
124124
}
125+
else if (type === "kernel_restarting") {
126+
console.log("Kernel restart, perhaps it's a special restart?")
127+
this.kernelRestartState = {
128+
state: "special_restart",
129+
kernelID: kernel.id
130+
}
131+
}
125132
case "init":
126133
if (type === "kernel_ready") {
127134
console.log("Kernel properly initialized")
@@ -130,6 +137,20 @@ class NetPyNE extends React.Component {
130137
kernelID: undefined
131138
}
132139
}
140+
case "special_restart":
141+
if (type == "kernel_autorestarting") {
142+
console.log("Kernel autorestart after a start, we might not have the ready event, we force it then")
143+
replayAll(this.kernelRestartState.kernelID)
144+
this.kernelRestartState = {
145+
state: 'restarting',
146+
kernelID: kernel.id
147+
}
148+
} else {
149+
this.kernelRestartState = {
150+
state: 'idle',
151+
kernelID: undefined
152+
}
153+
}
133154
}
134155
}
135156
window.addEventListener('kernelstatus', handleKernelRestart)

webapp/components/general/CommandRecorder.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ const replayAll = (kernelID) => {
6464
"from jupyter_geppetto import utils",
6565
"from netpyne_ui.netpyne_geppetto import netpyne_geppetto",
6666
"netpyne_geppetto.deleteModel({})",
67+
"netpyne_geppetto.loadFromIndexFile('/tmp/tmpmodel')",
6768
...store.getState()[kernelID]];
6869
const lastCommand = commands.pop() // we drop the last command which is probably the faulty one
6970
const script = commands.join('\n')

webapp/redux/middleware/middleware.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ export default (store) => (next) => (action) => {
290290
next(GeppettoActions.modelLoaded())
291291
getExperiments()
292292
});
293+
Utils.execPythonMessage('netpyne_geppetto.saveToIndexFile(None, "/tmp/tmpmodel", True, True)', ()=>{}, false);
293294

294295
setTimeout(() => {
295296
if (!responded) {

0 commit comments

Comments
 (0)