Skip to content

Commit 4b1dff6

Browse files
authored
Merge pull request #2781 from jasongrout/w7jlab2
Widgets 7 in JupyterLab 2.0
2 parents fdd7109 + 05d1bb9 commit 4b1dff6

Some content is hidden

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

57 files changed

+2821
-2455
lines changed

.travis.yml

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
# http://travis-ci.org/#!/jupyter-widgets/ipywidgets
22
language: python
33
dist: xenial
4-
os: linux
5-
arch:
6-
- amd64
7-
- arm64
84
python:
95
- 2.7
106
- 3.4
117
- 3.5
128
- 3.6
139
- 3.7
10+
- 3.8
1411
addons:
1512
apt_packages:
1613
- pandoc
@@ -25,6 +22,7 @@ before_install:
2522
- 'if [[ $GROUP == python ]] ; then bash ./scripts/travis_before_install_py.sh ; fi'
2623
- 'if [[ $GROUP == doc ]] ; then bash ./scripts/travis_before_install_py.sh ; fi'
2724
- 'if [[ $GROUP == spec ]] ; then bash ./scripts/travis_before_install_py.sh ; fi'
25+
- 'if [[ $GROUP == js ]] ; then nvm install 12 ; fi'
2826
install:
2927
- 'if [[ $GROUP == python ]] ; then bash ./scripts/travis_install_py.sh ; fi'
3028
- 'if [[ $GROUP == doc ]] ; then bash ./scripts/travis_install_py.sh ; fi'
@@ -42,6 +40,6 @@ matrix:
4240
- python: 3.6
4341
env: GROUP=doc
4442
- python: 3.6
45-
env: GROUP=js BROWSER=firefox TRAVIS_NODE_VERSION=6.11.0
43+
env: GROUP=js BROWSER=firefox
4644
after_success:
4745
- coveralls

docs/source/examples/Beat Frequencies.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,5 @@
110110
}
111111
},
112112
"nbformat": 4,
113-
"nbformat_minor": 1
113+
"nbformat_minor": 2
114114
}

docs/source/examples/Controller.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@
6969
}
7070
},
7171
"nbformat": 4,
72-
"nbformat_minor": 1
72+
"nbformat_minor": 2
7373
}

docs/source/examples/Exploring Graphs.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,5 +111,5 @@
111111
}
112112
},
113113
"nbformat": 4,
114-
"nbformat_minor": 1
114+
"nbformat_minor": 2
115115
}

docs/source/examples/Export As (nbconvert).ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -175,5 +175,5 @@
175175
}
176176
},
177177
"nbformat": 4,
178-
"nbformat_minor": 1
178+
"nbformat_minor": 2
179179
}

docs/source/examples/Factoring.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,5 @@
9797
}
9898
},
9999
"nbformat": 4,
100-
"nbformat_minor": 1
100+
"nbformat_minor": 2
101101
}

docs/source/examples/Image Browser.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,5 @@
110110
}
111111
},
112112
"nbformat": 4,
113-
"nbformat_minor": 1
113+
"nbformat_minor": 2
114114
}

docs/source/examples/Image Processing.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -222,5 +222,5 @@
222222
}
223223
},
224224
"nbformat": 4,
225-
"nbformat_minor": 1
225+
"nbformat_minor": 2
226226
}

docs/source/examples/Index.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,5 @@
9797
}
9898
},
9999
"nbformat": 4,
100-
"nbformat_minor": 1
100+
"nbformat_minor": 2
101101
}

docs/source/examples/Lorenz Differential Equations.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -270,5 +270,5 @@
270270
}
271271
},
272272
"nbformat": 4,
273-
"nbformat_minor": 1
273+
"nbformat_minor": 2
274274
}

docs/source/examples/Output Widget.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -407,5 +407,5 @@
407407
}
408408
},
409409
"nbformat": 4,
410-
"nbformat_minor": 1
410+
"nbformat_minor": 2
411411
}

docs/source/examples/Using Interact.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -710,5 +710,5 @@
710710
}
711711
},
712712
"nbformat": 4,
713-
"nbformat_minor": 1
713+
"nbformat_minor": 2
714714
}

docs/source/examples/Variable Inspector.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -185,5 +185,5 @@
185185
}
186186
},
187187
"nbformat": 4,
188-
"nbformat_minor": 1
188+
"nbformat_minor": 2
189189
}

docs/source/examples/Widget Alignment.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -263,5 +263,5 @@
263263
}
264264
},
265265
"nbformat": 4,
266-
"nbformat_minor": 1
266+
"nbformat_minor": 2
267267
}

docs/source/examples/Widget Asynchronous.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -253,5 +253,5 @@
253253
}
254254
},
255255
"nbformat": 4,
256-
"nbformat_minor": 1
256+
"nbformat_minor": 2
257257
}

docs/source/examples/Widget Basics.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -414,5 +414,5 @@
414414
}
415415
},
416416
"nbformat": 4,
417-
"nbformat_minor": 1
417+
"nbformat_minor": 2
418418
}

docs/source/examples/Widget Custom.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -688,5 +688,5 @@
688688
}
689689
},
690690
"nbformat": 4,
691-
"nbformat_minor": 1
691+
"nbformat_minor": 2
692692
}

docs/source/examples/Widget Events.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -399,5 +399,5 @@
399399
}
400400
},
401401
"nbformat": 4,
402-
"nbformat_minor": 1
402+
"nbformat_minor": 2
403403
}

docs/source/examples/Widget Low Level.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -544,5 +544,5 @@
544544
}
545545
},
546546
"nbformat": 4,
547-
"nbformat_minor": 1
547+
"nbformat_minor": 2
548548
}

docs/source/examples/Widget Styling.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1419,5 +1419,5 @@
14191419
}
14201420
},
14211421
"nbformat": 4,
1422-
"nbformat_minor": 1
1422+
"nbformat_minor": 2
14231423
}

examples/web1/manager.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var base = require('@jupyter-widgets/base');
22
var controls = require('@jupyter-widgets/controls');
3-
var PhosphorWidget = require('@phosphor/widgets').Widget;
3+
var PhosphorWidget = require('@lumino/widgets').Widget;
44

55
class WidgetManager extends base.ManagerBase {
66
constructor(el) {

examples/web1/package.json

+4-5
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,16 @@
2020
},
2121
"devDependencies": {
2222
"chai": "^4.0.0",
23-
"css-loader": "^3.0.0",
24-
"file-loader": "^4.0.0",
25-
"json-loader": "^0.5.7",
23+
"css-loader": "^3.4.0",
24+
"file-loader": "^5.0.2",
2625
"karma": "^4.1.0",
2726
"karma-chai": "^0.1.0",
2827
"karma-chrome-launcher": "^2.2.0",
2928
"karma-firefox-launcher": "^1.1.0",
3029
"karma-mocha": "^1.3.0",
3130
"karma-mocha-reporter": "^2.2.5",
3231
"mocha": "^6.1.4",
33-
"style-loader": "^0.23.1",
34-
"webpack": "^4.35.0"
32+
"style-loader": "^1.1.2",
33+
"webpack": "^4.41.5"
3534
}
3635
}

examples/web2/manager.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var base = require('@jupyter-widgets/base');
22
var controls = require('@jupyter-widgets/controls');
3-
var PhosphorWidget = require('@phosphor/widgets').Widget;
3+
var PhosphorWidget = require('@lumino/widgets').Widget;
44

55
class WidgetManager extends base.ManagerBase {
66
constructor(el) {

examples/web2/package.json

+6-7
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@
1919
"font-awesome": "^4.7.0"
2020
},
2121
"devDependencies": {
22-
"css-loader": "^3.0.0",
23-
"file-loader": "^4.0.0",
24-
"json-loader": "^0.5.7",
25-
"raw-loader": "^3.0.0",
26-
"style-loader": "^0.23.1",
27-
"url-loader": "^2.0.0",
28-
"webpack": "^4.35.0"
22+
"css-loader": "^3.4.0",
23+
"file-loader": "^5.0.2",
24+
"raw-loader": "^4.0.0",
25+
"style-loader": "^1.1.2",
26+
"url-loader": "^3.0.0",
27+
"webpack": "^4.41.5"
2928
}
3029
}

examples/web3/package.json

+9-10
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,27 @@
1818
"@jupyter-widgets/base": "^2.0.2",
1919
"@jupyter-widgets/controls": "^1.5.3",
2020
"@jupyter-widgets/html-manager": "^0.18.4",
21-
"@jupyterlab/services": "^4.0.0",
22-
"@phosphor/widgets": "^1.3.0",
21+
"@jupyterlab/services": "^5.0.0-rc.0",
22+
"@lumino/widgets": "^1.3.0",
2323
"codemirror": "^5.48.0",
2424
"font-awesome": "^4.7.0",
2525
"http-server": "^0.11.1"
2626
},
2727
"devDependencies": {
2828
"@types/codemirror": "^0.0.74",
2929
"@types/requirejs": "^2.1.31",
30-
"css-loader": "^3.0.0",
31-
"file-loader": "^4.0.0",
30+
"css-loader": "^3.4.0",
31+
"file-loader": "^5.0.2",
3232
"fs-extra": "^8.0.1",
33-
"json-loader": "^0.5.7",
3433
"postcss": "^7.0.17",
3534
"postcss-cssnext": "^3.1.0",
3635
"postcss-import": "^12.0.1",
3736
"postcss-loader": "^3.0.0",
3837
"rimraf": "^2.6.1",
39-
"style-loader": "^0.23.1",
40-
"tslint": "^5.18.0",
41-
"typescript": "~3.5.2",
42-
"url-loader": "^2.0.0",
43-
"webpack": "^4.35.0"
38+
"style-loader": "^1.1.2",
39+
"tslint": "^5.20.1",
40+
"typescript": "~3.7.4",
41+
"url-loader": "^3.0.0",
42+
"webpack": "^4.41.5"
4443
}
4544
}

examples/web3/src/index.ts

+35-40
Original file line numberDiff line numberDiff line change
@@ -7,59 +7,54 @@ import {
77
} from './manager';
88

99
import {
10-
Kernel, ServerConnection, KernelMessage
10+
KernelManager, ServerConnection, KernelMessage
1111
} from '@jupyterlab/services';
1212

1313
let BASEURL = prompt('Notebook BASEURL', 'http://localhost:8888');
1414
let WSURL = 'ws:' + BASEURL.split(':').slice(1).join(':');
1515

16-
document.addEventListener('DOMContentLoaded', function(event) {
16+
document.addEventListener('DOMContentLoaded', async function(event) {
1717

1818
// Connect to the notebook webserver.
1919
let connectionInfo = ServerConnection.makeSettings({
2020
baseUrl: BASEURL,
2121
wsUrl: WSURL
2222
});
23-
Kernel.getSpecs(connectionInfo).then(kernelSpecs => {
24-
return Kernel.startNew({
25-
name: kernelSpecs.default,
26-
serverSettings: connectionInfo
27-
});
28-
}).then(kernel => {
29-
30-
// Create a codemirror instance
31-
let code = require('../widget_code.json').join('\n');
32-
let inputarea = document.getElementsByClassName('inputarea')[0] as HTMLElement;
33-
CodeMirror(inputarea, {
34-
value: code,
35-
mode: 'python',
36-
tabSize: 4,
37-
showCursorWhenSelecting: true,
38-
viewportMargin: Infinity,
39-
readOnly: true
40-
});
41-
42-
// Create the widget area and widget manager
43-
let widgetarea = document.getElementsByClassName('widgetarea')[0] as HTMLElement;
44-
let manager = new WidgetManager(kernel, widgetarea);
23+
let kernelManager = new KernelManager({serverSettings: connectionInfo});
24+
let kernel = await kernelManager.startNew();
25+
26+
// Create a codemirror instance
27+
let code = require('../widget_code.json').join('\n');
28+
let inputarea = document.getElementsByClassName('inputarea')[0] as HTMLElement;
29+
CodeMirror(inputarea, {
30+
value: code,
31+
mode: 'python',
32+
tabSize: 4,
33+
showCursorWhenSelecting: true,
34+
viewportMargin: Infinity,
35+
readOnly: true
36+
});
4537

46-
// Run backend code to create the widgets. You could also create the
47-
// widgets in the frontend, like the other widget examples demonstrate.
48-
let execution = kernel.requestExecute({ code: code });
49-
execution.onIOPub = (msg) => {
50-
// If we have a display message, display the widget.
51-
if (KernelMessage.isDisplayDataMsg(msg)) {
52-
let widgetData: any = msg.content.data['application/vnd.jupyter.widget-view+json'];
53-
if (widgetData !== undefined && widgetData.version_major === 2) {
54-
let model = manager.get_model(widgetData.model_id);
55-
if (model !== undefined) {
56-
model.then(model => {
57-
manager.display_model(msg, model);
58-
});
59-
}
38+
// Create the widget area and widget manager
39+
let widgetarea = document.getElementsByClassName('widgetarea')[0] as HTMLElement;
40+
let manager = new WidgetManager(kernel, widgetarea);
41+
42+
// Run backend code to create the widgets. You could also create the
43+
// widgets in the frontend, like the other widget examples demonstrate.
44+
let execution = kernel.requestExecute({ code: code });
45+
execution.onIOPub = (msg) => {
46+
// If we have a display message, display the widget.
47+
if (KernelMessage.isDisplayDataMsg(msg)) {
48+
let widgetData: any = msg.content.data['application/vnd.jupyter.widget-view+json'];
49+
if (widgetData !== undefined && widgetData.version_major === 2) {
50+
let model = manager.get_model(widgetData.model_id);
51+
if (model !== undefined) {
52+
model.then(model => {
53+
manager.display_model(msg, model);
54+
});
6055
}
6156
}
62-
};
63-
});
57+
}
58+
};
6459
});
6560

examples/web3/src/manager.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as base from '@jupyter-widgets/base';
2-
import * as pWidget from '@phosphor/widgets';
2+
import * as pWidget from '@lumino/widgets';
33

44
import {
55
Kernel
@@ -39,7 +39,7 @@ class WidgetManager extends HTMLManager {
3939
* Create a comm.
4040
*/
4141
async _create_comm(target_name: string, model_id: string, data?: any, metadata?: any): Promise<base.shims.services.Comm> {
42-
let comm = await this.kernel.connectToComm(target_name, model_id);
42+
let comm = this.kernel.createComm(target_name, model_id);
4343
if (data || metadata) {
4444
comm.open(data, metadata);
4545
}
@@ -50,7 +50,7 @@ class WidgetManager extends HTMLManager {
5050
* Get the currently-registered comms.
5151
*/
5252
_get_comm_info(): Promise<any> {
53-
return this.kernel.requestCommInfo({target: this.comm_target_name}).then(reply => (reply.content as any).comms);
53+
return this.kernel.requestCommInfo({target_name: this.comm_target_name}).then(reply => (reply.content as any).comms);
5454
}
5555

5656
kernel: Kernel.IKernelConnection;

examples/web4/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
"font-awesome": "^4.7.0"
1818
},
1919
"devDependencies": {
20-
"css-loader": "^3.0.0",
21-
"file-loader": "^4.0.0",
22-
"style-loader": "^0.23.1",
23-
"url-loader": "^2.0.0",
24-
"webpack": "^4.35.0"
20+
"css-loader": "^3.4.0",
21+
"file-loader": "^5.0.2",
22+
"style-loader": "^1.1.2",
23+
"url-loader": "^3.0.0",
24+
"webpack": "^4.41.5"
2525
}
2626
}

0 commit comments

Comments
 (0)