Skip to content

Commit c0146f1

Browse files
authored
Merge pull request #137 from MetaCell/feature/135
Feature/135
2 parents 6ccd6f5 + 4252944 commit c0146f1

87 files changed

Lines changed: 3067 additions & 1737 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ Dockerfile_mini
1818
npm*
1919
.vscode
2020
app.log
21+
utilities/x86_64
22+
.idea

k8s/cf.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ steps:
6060
6161
resources:
6262
requests:
63-
cpu: 200m
64-
memory: 512Mi
63+
cpu: 100m
64+
memory: 128Mi
6565

6666
allowNamedServers: true
6767
namedServerLimitPerUser: 2
@@ -123,7 +123,7 @@ steps:
123123
environment:
124124
- CHART_NAME=jupyterhub
125125
- RELEASE_NAME=${{RELEASE_NAME}}
126-
- KUBE_CONTEXT=geppetto-cluster@metacellllc
126+
- KUBE_CONTEXT=${{CLUSTER_NAME}}
127127
- NAMESPACE=${{NAMESPACE}}
128128
- TILLER_NAMESPACE=kube-system
129129
- CHART_VERSION=0.9.0-beta.4

netpyne_ui/netpyne_model_interpreter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import pygeppetto.model as pygeppetto
77
from pygeppetto.model.model_factory import GeppettoModelFactory
88
from pygeppetto.model.values import Point, ArrayElement, ArrayValue
9+
from pygeppetto.services.model_interpreter import ModelInterpreter
910

10-
11-
class NetPyNEModelInterpreter():
11+
class NetPyNEModelInterpreter(ModelInterpreter):
1212

1313
def __init__(self):
1414
self.factory = GeppettoModelFactory()

package-lock.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/jupyter-geppetto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 840c78f5ff64a291af5af87332f749df1ee84d48

webapp/Main.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,25 @@ global.GEPPETTO_CONFIGURATION = require('./GeppettoConfiguration.json');
33

44
jQuery(function () {
55
require('geppetto-client-initialization');
6-
var ReactDOM = require('react-dom');
7-
var React = require('react');
8-
var getMuiTheme = require('@material-ui/core/styles/createMuiTheme').default;
9-
var MuiThemeProvider = require('@material-ui/core/styles').MuiThemeProvider;
10-
var NetPyNE = require('./NetPyNE').default;
6+
const ReactDOM = require('react-dom');
7+
const React = require('react');
8+
const getMuiTheme = require('@material-ui/core/styles/createMuiTheme').default;
9+
const MuiThemeProvider = require('@material-ui/core/styles').MuiThemeProvider;
10+
const NetPyNE = require('./components').NetPyNE;
1111

1212

13-
var Utils = require('./Utils').default;
14-
var Console = require('geppetto-client/js/components/interface/console/Console');
15-
var TabbedDrawer = require('geppetto-client/js/components/interface/drawer/TabbedDrawer');
16-
var PythonConsole = require('geppetto-client/js/components/interface/pythonConsole/PythonConsole');
17-
var theme = require('./Theme').default
13+
const Utils = require('./Utils').default;
14+
const Console = require('geppetto-client/js/components/interface/console/Console');
15+
const TabbedDrawer = require('geppetto-client/js/components/interface/drawer/TabbedDrawer');
16+
const PythonConsole = require('geppetto-client/js/components/interface/pythonConsole/PythonConsole');
17+
18+
const theme = require('./Theme').default
1819

1920
const Provider = require("react-redux").Provider;
2021
const configureStore = require('./redux/store').default;
2122

23+
const modelLoaded = require('./redux/actions/general').modelLoaded;
24+
2225
require('./css/netpyne.less');
2326
require('./css/material.less');
2427
require('./css/traceback.less');
@@ -51,15 +54,19 @@ jQuery(function () {
5154
GEPPETTO.G.debug(false); // Change this to true to see messages on the Geppetto console while loading
5255
GEPPETTO.Resources.COLORS.DEFAULT = "#6f54aa";
5356
GEPPETTO.trigger(GEPPETTO.Events.Show_spinner, "Initialising NetPyNE");
57+
5458

5559
GEPPETTO.on('jupyter_geppetto_extension_ready', data => {
5660
let project = { id: 1, name: 'Project', experiments: [{ "id": 1, "name": 'Experiment', "status": 'DESIGN' }] }
5761
GEPPETTO.Manager.loadProject(project, false);
5862
GEPPETTO.Manager.loadExperiment(1, [], []);
5963
Utils.execPythonMessage('from netpyne_ui.netpyne_geppetto import netpyne_geppetto');
6064
Utils.evalPythonMessage('netpyne_geppetto.getData',[]).then(response => {
61-
var data = Utils.convertToJSON(response)
62-
ReactDOM.render(<App data={data} />, document.querySelector('#mainContainer'));
65+
const data = Utils.convertToJSON(response);
66+
GEPPETTO.on(GEPPETTO.Events.Model_loaded, () => {
67+
store.dispatch(modelLoaded);
68+
});
69+
ReactDOM.render(<App data={data} />, document.querySelector('#mainContainer'), store.dispatch(modelLoaded));
6370
GEPPETTO.trigger("spinner:hide");
6471
})
6572
});

webapp/NetPyNE.js

Lines changed: 0 additions & 189 deletions
This file was deleted.

webapp/Utils.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ const Utils = {
145145
},
146146

147147
parsePythonException (exception){
148-
return <pre dangerouslySetInnerHTML={{ __html: IPython.utils.fixConsole(exception) }}></pre>
148+
return <pre style={{ whiteSpace: 'pre-wrap' }} dangerouslySetInnerHTML={{ __html: IPython.utils.fixConsole(exception) }}></pre>
149149
},
150150

151151
handleUpdate (updateCondition, newValue, originalValue, context, componentName) {
@@ -185,4 +185,32 @@ const Utils = {
185185
evalPythonMessage: evalPythonMessage
186186
}
187187

188+
/**
189+
* Deep object comparison
190+
* @param {*} a
191+
* @param {*} b
192+
*/
193+
export function isEqual (a, b) {
194+
if (a === b) {
195+
return true;
196+
}
197+
if (a instanceof Date && b instanceof Date) {
198+
return a.getTime() === b.getTime();
199+
}
200+
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) {
201+
return a === b;
202+
}
203+
if (a === null || a === undefined || b === null || b === undefined) {
204+
return false;
205+
}
206+
if (a.prototype !== b.prototype) {
207+
return false;
208+
}
209+
let keys = Object.keys(a);
210+
if (keys.length !== Object.keys(b).length) {
211+
return false;
212+
}
213+
return keys.every(k => isEqual(a[k], b[k]));
214+
}
215+
188216
export default Utils

0 commit comments

Comments
 (0)