Skip to content

Commit 42903cc

Browse files
author
minjk-bl
committed
Add jupyterlite extension type and functions
1 parent 80aa45c commit 42903cc

24 files changed

+125
-191
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
dist/
2+
jupyterlab/_output
23
jupyterlab/lib/visualpython
34
jupyternotebook/visualpython
45
colab/visualpython

jupyterlab/.jupyterlite.doit.db

72 KB
Binary file not shown.

jupyterlab/dev-build.jupyterlab.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,10 @@ grep -rl "__VP_CSS_LOADER__" lib/visualpython/js/* | xargs sed -i "s/__VP_CSS_LO
4444
# jupyter labextension install # install the current directory as an extension
4545

4646
# Run Build for jupyterlab extension
47-
jlpm run build
47+
jlpm run build
48+
49+
# Run Build for jupyterlite
50+
# jupyter lite build
51+
52+
# Run jupyterlite server
53+
# jupyter lite serve

jupyterlab/lib/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ module.exports = [{
2525
);
2626

2727
global.vpExtType = 'lab';
28+
if (app.name === 'JupyterLite') {
29+
global.vpExtType = 'lite';
30+
}
2831
global.vpLab = app;
2932

3033
const VpPanel = require('./VpPanel');

visualpython/css/mainFrame.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ div#vp_wrapper.colab * {
5050
box-sizing: border-box !important;
5151
}
5252
/* LAB: reset position and size */
53-
#vp_wrapper.lab {
53+
#vp_wrapper.lab, #vp_wrapper.lite {
5454
position: unset !important;
5555
width: 100% !important;
5656
height: 100% !important;
5757
min-width: 273px !important;
5858
}
59-
#vp_wrapper.lab * {
59+
#vp_wrapper.lab *, #vp_wrapper.lite * {
6060
box-sizing: border-box !important;
6161
}
6262

visualpython/html/component/fileNavigation.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
<!-- Chrome extension for colab -->
2323
<div class="fnp-sidebar-menu colab" data-path="/">Colab Home</div>
2424
<div class="fnp-sidebar-menu colab" data-path="drive">Drive Home</div>
25+
<!-- Lite -->
26+
<div class="fnp-sidebar-menu lite" data-path="lite-home">Lite Home</div>
2527
</div>
2628
<div class='fileNavigationPage-inner flex-column'
2729
>

visualpython/js/MainFrame.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ define([
103103
// get visualpython minimum width
104104
// resizable setting
105105
// $('#vp_wrapper').resizable('disable');
106-
if (vpConfig.extensionType !== 'lab') {
106+
if (vpConfig.extensionType !== 'lab' && vpConfig.extensionType !== 'lite') {
107107
$('#vp_wrapper').resizable({
108108
// alsoResize: '#vp_menuFrame',
109109
helper: 'vp-wrapper-resizer',
@@ -151,7 +151,7 @@ define([
151151
top: colabHeaderHeight + 'px'
152152
});
153153
this._resizeNotebook(vpWidth);
154-
} else if (vpConfig.extensionType === 'lab') {
154+
} else if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
155155
// LAB: do nothing
156156
}
157157
}
@@ -334,7 +334,7 @@ define([
334334
this.boardFrame.hide();
335335
newVpWidth = menuWidth + MENU_BOARD_SPACING;
336336
$('#vp_wrapper').width(newVpWidth);
337-
if (vpConfig.extensionType === 'lab') {
337+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
338338
// LAB: set parent width and position, min-width
339339
let target = $('#vp_wrapper').parent();
340340
let prevWidth = target[0].getBoundingClientRect().width;
@@ -364,7 +364,7 @@ define([
364364
this.boardFrame.show();
365365
newVpWidth = vpWidth + BOARD_MIN_WIDTH + MENU_BOARD_SPACING;
366366
$('#vp_wrapper').width(newVpWidth);
367-
if (vpConfig.extensionType === 'lab') {
367+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
368368
// LAB: set parent width and position, min-width
369369
let target = $('#vp_wrapper').parent();
370370
let prevWidth = target[0].getBoundingClientRect().width;
@@ -474,7 +474,7 @@ define([
474474
this.boardFrame.showLoadingBar();
475475
// create components
476476
// LAB: use require
477-
if (vpConfig.extensionType === 'lab') {
477+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
478478
let parentBlock = null;
479479
let prevBlock = null;
480480
loadStateList.forEach(obj => {

visualpython/js/board/BoardFrame.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ define([
8787
get blockList() {
8888
let sessionId = 'default';
8989
// LAB: get session id
90-
if (vpConfig.extensionType === 'lab') {
90+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
9191
let panelId = vpKernel.getLabPanelId();
9292
if (panelId) {
9393
sessionId = panelId;
@@ -102,7 +102,7 @@ define([
102102
set blockList(val) {
103103
let sessionId = 'default';
104104
// LAB: get session id
105-
if (vpConfig.extensionType === 'lab') {
105+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
106106
let panelId = vpKernel.getLabPanelId();
107107
if (panelId) {
108108
sessionId = panelId;
@@ -122,7 +122,7 @@ define([
122122
addToBlockList(newVal, position=-1) {
123123
let sessionId = 'default';
124124
// LAB: get session id
125-
if (vpConfig.extensionType === 'lab') {
125+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
126126
let panelId = vpKernel.getLabPanelId();
127127
if (panelId) {
128128
sessionId = panelId;
@@ -154,7 +154,7 @@ define([
154154
removeFromBlockList(removeVal) {
155155
let sessionId = 'default';
156156
// LAB: get session id
157-
if (vpConfig.extensionType === 'lab') {
157+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
158158
let panelId = vpKernel.getLabPanelId();
159159
if (panelId) {
160160
sessionId = panelId;
@@ -173,7 +173,7 @@ define([
173173
getTitle() {
174174
let sessionId = 'default';
175175
// LAB: get session id
176-
if (vpConfig.extensionType === 'lab') {
176+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
177177
let panelId = vpKernel.getLabPanelId();
178178
if (panelId) {
179179
sessionId = panelId;
@@ -189,7 +189,7 @@ define([
189189
setTitle(newTitle) {
190190
let sessionId = 'default';
191191
// LAB: get session id
192-
if (vpConfig.extensionType === 'lab') {
192+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
193193
let panelId = vpKernel.getLabPanelId();
194194
if (panelId) {
195195
sessionId = panelId;
@@ -479,7 +479,7 @@ define([
479479

480480
this.blockMenu = new BlockMenu(this);
481481

482-
if (vpConfig.extensionType === 'lab') {
482+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
483483
let that = this;
484484
vpLab.shell._currentChanged.connect(function(sender, value) {
485485
// if lab tab changed, reset title and reload board
@@ -643,7 +643,7 @@ define([
643643
let vpFilePath = filesPath[0].path;
644644
let vpFileName = filesPath[0].file;
645645
// read file
646-
if (vpConfig.extensionType === 'lab') {
646+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
647647
// LAB: read file using python open
648648
vpKernel.readFile(vpFilePath).then(function(resultObj) {
649649
try {
@@ -972,7 +972,7 @@ define([
972972
moveBlock(startIdx, endIdx, parentBlock=null) {
973973
let sessionId = 'default';
974974
// LAB: get session id
975-
if (vpConfig.extensionType === 'lab') {
975+
if (vpConfig.extensionType === 'lab' || vpConfig.extensionType === 'lite') {
976976
let panelId = vpKernel.getLabPanelId();
977977
if (panelId) {
978978
sessionId = panelId;

visualpython/js/com/com_Config.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,16 @@ define([
4848
/**
4949
*
5050
* @param {*} initialData
51-
* @param {*} extensionType extension type: notebook/colab/lab
51+
* @param {*} extensionType extension type: notebook/colab/lab/lite
5252
*/
5353
constructor(extensionType='notebook', initialData={}) {
5454
// initial mode
55+
this.isReady = false;
5556
this.extensionType = extensionType;
5657
this.parentSelector = 'body';
5758
if (extensionType === 'notebook') {
5859
this.parentSelector = '#site';
59-
} else if (extensionType === 'colab' || extensionType === 'lab') {
60+
} else if (extensionType === 'colab' || extensionType === 'lab' || extensionType === 'lite') {
6061
// this.parentSelector = '.notebook-horizontal';
6162
this.parentSelector = 'body';
6263
}
@@ -463,8 +464,8 @@ define([
463464
// not mounted
464465
reject('Colab Drive is not mounted!');
465466
})
466-
} else if (that.extensionType === 'lab') {
467-
// CHROME: edited to use .visualpython files
467+
} else if (that.extensionType === 'lab' || that.extensionType === 'lite') {
468+
// LAB: edited to use .visualpython files
468469
that._readFromLab('', configKey).then(function(result) {
469470
resolve(result);
470471
}).catch(function(err) {
@@ -526,7 +527,7 @@ define([
526527
// not mounted
527528
reject('Colab Drive is not mounted!');
528529
})
529-
} else if (that.extensionType === 'lab') {
530+
} else if (that.extensionType === 'lab' || that.extensionType === 'lite') {
530531
// LAB: use local .visualpython files
531532
that._readFromLab(configKey).then(function(result) {
532533
let data = result;
@@ -604,7 +605,7 @@ define([
604605
reject();
605606
});
606607
});
607-
} else if (that.extensionType === 'lab') {
608+
} else if (that.extensionType === 'lab' || that.extensionType === 'lite') {
608609
// LAB: use .visualpython files
609610
that.getData('', configKey).then(function(data) {
610611
let newDataObj = {};
@@ -649,7 +650,7 @@ define([
649650
}).catch(function(err) {
650651
reject(false);
651652
})
652-
} else if (that.extensionType === 'lab') {
653+
} else if (that.extensionType === 'lab' || that.extensionType === 'lite') {
653654
// LAB: use .visualpython files
654655
that.getData('', configKey).then(function(data) {
655656
let dataObj = data;
@@ -838,7 +839,7 @@ define([
838839
let that = this;
839840
let nowVersion = this.getVpInstalledVersion();
840841
let packageName = 'visualpython';
841-
if (this.extensionType === 'lab') {
842+
if (this.extensionType === 'lab' || this.extensionType === 'lite') {
842843
packageName = 'jupyterlab-visualpython';
843844
}
844845
this.getPackageVersion(packageName).then(function(latestVersion) {
@@ -908,6 +909,16 @@ define([
908909
];
909910
com_interface.insertCell('markdown', info.join('\n'));
910911
com_interface.insertCell('code', '!pip install jupyterlab-visualpython --upgrade');
912+
} else if (that.extensionType === 'lite') {
913+
// LITE: update lab extension on lite
914+
let info = [
915+
'## Visual Python Upgrade',
916+
'NOTE: ',
917+
'- Refresh your web browser to start a new version.',
918+
'- Save VP Note before refreshing the page.'
919+
];
920+
com_interface.insertCell('markdown', info.join('\n'));
921+
com_interface.insertCell('code', "import piplite\npiplite.install('jupyterlab-visualpython==" + latestVersion + "')");
911922
}
912923

913924
// update version_timestamp

0 commit comments

Comments
 (0)