Skip to content
This repository was archived by the owner on Sep 1, 2022. It is now read-only.

Commit a3db75f

Browse files
authored
[PR #469] Fix issues with loading ipywidgets 4.1.x dependencies in jupyter 4.2
2 parents ce4f628 + 86fc5c6 commit a3db75f

File tree

4 files changed

+57
-31
lines changed

4 files changed

+57
-31
lines changed

Makefile

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ help:
3434
ROOT_REPO:=jupyter/all-spark-notebook:2d878db5cbff
3535
REPO:=jupyter/all-spark-notebook-bower:2d878db5cbff
3636
REPO4.2:=jupyter/all-spark-notebook-bower-jup4.2:2d878db5cbff
37+
REPO4.2.oldipyw:=jupyter/all-spark-notebook-bower-jup4.2-ipy4.1:2d878db5cbff
3738
SCALA_BUILD_REPO:=1science/sbt
3839

3940
# Global environment defaults
@@ -46,6 +47,7 @@ SPECS?=system-test/urth-core-bind-specs.js system-test/urth-system-test-specs.js
4647
PYTHON2_SPECS?=system-test/urth-system-test-specs.js
4748
ALT_JUPYTER_SPECS?=system-test/urth-system-test-specs.js
4849
ALT_JUPYTER_VERSION?=4.2
50+
ALT_JUPYTER_OLD_IPYW_VERSION?=4.2.oldipyw
4951
PYTHON?=python3
5052
TEST_MSG?="Starting system tests"
5153

@@ -64,7 +66,7 @@ $(URTH_COMP_LINKS): | node_modules/bower $(URTH_SRC_DIRS)
6466
@$(foreach dir, $(URTH_SRC_DIRS), cd $(abspath $(dir)) && $(NPM_BIN_DIR)/bower link $(BOWER_OPTS);)
6567
@$(foreach name, $(URTH_DIRS), $(NPM_BIN_DIR)/bower link $(name) $(BOWER_OPTS);)
6668

67-
init: node_modules dev_image dev_image_4.2
69+
init: node_modules dev_image dev_image_4.2 dev_image_4.2.oldipyw
6870

6971
node_modules: package.json
7072
@npm install --quiet
@@ -103,6 +105,13 @@ dev_image_4.2:
103105
@docker $(DOCKER_OPTS) commit 4.2-build $(REPO4.2)
104106
@-docker $(DOCKER_OPTS) rm -f 4.2-build
105107

108+
dev_image_4.2.oldipyw:
109+
@-docker $(DOCKER_OPTS) rm -f 4.2.oldipyw-build
110+
@docker $(DOCKER_OPTS) run -it --user root --name 4.2.oldipyw-build \
111+
$(REPO) bash -c 'pip install --upgrade notebook==4.2.0 $(PIP_OPTS)'
112+
@docker $(DOCKER_OPTS) commit 4.2.oldipyw-build $(REPO4.2.oldipyw)
113+
@-docker $(DOCKER_OPTS) rm -f 4.2.oldipyw-build
114+
106115
clean: clean-dist
107116
@-rm -rf *.egg-info
108117
@-rm -rf __pycache__ */__pycache__ */*/__pycache__
@@ -347,6 +356,14 @@ server_4.2: VOL_MAP?=-v `pwd`/etc/notebooks:/home/jovyan/work
347356
server_4.2: REPO=$(REPO4.2)
348357
server_4.2: _run-$(PYTHON)
349358

359+
server_4.2.oldipyw: CMD?=jupyter notebook --no-browser --port 8888 --ip="*"
360+
server_4.2.oldipyw: INSTALL_DECLWID_CMD?=pip install $(PIP_OPTS) --no-binary ::all: $$(ls -1 /src/dist/*.tar.gz | tail -n 1) && jupyter declarativewidgets quick-setup --user && jupyter declarativewidgets installr --library=/opt/conda/lib/R/library;
361+
server_4.2.oldipyw: SERVER_NAME?=urth_widgets_server
362+
server_4.2.oldipyw: OPTIONS?=-it --rm
363+
server_4.2.oldipyw: VOL_MAP?=-v `pwd`/etc/notebooks:/home/jovyan/work
364+
server_4.2.oldipyw: REPO=$(REPO4.2.oldipyw)
365+
server_4.2.oldipyw: _run-$(PYTHON)
366+
350367
remove-server:
351368
-@docker $(DOCKER_OPTS) rm -f $(SERVER_NAME)
352369

@@ -420,7 +437,13 @@ system-test-alt-jupyter: TEST_MSG="Starting system tests for Jupyter $(ALT_JUPYT
420437
system-test-alt-jupyter:
421438
@TEST_MSG=$(TEST_MSG) TEST_TYPE=$(TEST_TYPE) BROWSER_LIST="$(ALT_BROWSER_LIST)" JUPYTER=$(JUPYTER) SPECS="$(SPECS)" BASEURL=$(BASEURL) $(MAKE) run-test
422439

423-
system-test-all: system-test-python3 system-test-python2 system-test-alt-jupyter
440+
system-test-alt-jupyter.oldipyw: JUPYTER:=_$(ALT_JUPYTER_OLD_IPYW_VERSION)
441+
system-test-alt-jupyter.oldipyw: SPECS:=$(ALT_JUPYTER_SPECS)
442+
system-test-alt-jupyter.oldipyw: TEST_MSG="Starting system tests for Jupyter $(ALT_JUPYTER_OLD_IPYW_VERSION)"
443+
system-test-alt-jupyter.oldipyw:
444+
@TEST_MSG=$(TEST_MSG) TEST_TYPE=$(TEST_TYPE) BROWSER_LIST="$(ALT_BROWSER_LIST)" JUPYTER=$(JUPYTER) SPECS="$(SPECS)" BASEURL=$(BASEURL) $(MAKE) run-test
445+
446+
system-test-all: system-test-python3 system-test-python2 system-test-alt-jupyter system-test-alt-jupyter.oldipyw
424447

425448
start-selenium: node_modules stop-selenium
426449
@echo "Installing and starting Selenium Server..."

etc/notebooks/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/*.ipynb

nb-extension/js/init/init.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
*/
1010
define([
1111
'module',
12-
'jquery',
13-
'jupyter-js-widgets'
12+
'jquery'
1413
], function(module, $) {
1514
'use strict';
1615

nb-extension/js/main.js

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,40 @@ define([
1717

1818
return {
1919
load_ipython_extension: function () {
20-
//create a mapping for declarativewidgets and its dependencies
21-
requirejs.config({
22-
map: {
23-
'*': {
24-
'jupyter-decl-widgets': 'nbextensions/declarativewidgets/js/widgets'
20+
return new Promise(function(resolve) {
21+
//create a mapping for declarativewidgets and its dependencies
22+
requirejs.config({
23+
map: {
24+
'*': {
25+
'jupyter-decl-widgets': 'nbextensions/declarativewidgets/js/widgets'
26+
},
27+
'nbextensions/declarativewidgets/js': {
28+
'jupyter-js-widgets': 'ipywidgets4-or-jupyter-js-widgets'
29+
}
2530
},
26-
'nbextensions/declarativewidgets/js': {
27-
'jupyter-js-widgets': 'ipywidgets4-or-jupyter-js-widgets'
31+
paths: {
32+
'ipywidgets4-or-jupyter-js-widgets': [
33+
'does/not/exist', //HACK: fallbacks was acting strange with 2 items
34+
Jupyter.notebook.base_url+'nbextensions/widgets/widgets/js/widget',
35+
Jupyter.notebook.base_url+'nbextensions/jupyter-js-widgets/extension',
36+
]
2837
}
29-
},
30-
paths: {
31-
'ipywidgets4-or-jupyter-js-widgets': [
32-
'does/not/exist', //HACK: fallbacks was acting strange with 2 items
33-
Jupyter.notebook.base_url+'nbextensions/widgets/widgets/js/widget',
34-
Jupyter.notebook.base_url+'nbextensions/jupyter-js-widgets/extension',
35-
]
36-
}
37-
});
38-
39-
require([
40-
'base/js/namespace',
41-
'base/js/events',
42-
'./init/init'
43-
],function(Jupyter, events, init) {
44-
init({
45-
namespace: Jupyter,
46-
events: events
4738
});
4839

49-
load_css(window.Urth._getModuleBasedComponentRoot() + 'css/main.css');
50-
console.debug('loaded declarativewidgets');
40+
require([
41+
'base/js/namespace',
42+
'base/js/events',
43+
'./init/init'
44+
],function(Jupyter, events, init) {
45+
init({
46+
namespace: Jupyter,
47+
events: events
48+
});
49+
50+
load_css(window.Urth._getModuleBasedComponentRoot() + 'css/main.css');
51+
console.debug('loaded declarativewidgets');
52+
resolve();
53+
});
5154
});
5255
}
5356
};

0 commit comments

Comments
 (0)