Skip to content

Commit 9508b4d

Browse files
committed
Adds jupyterlite nb + fixes nav for voila
1 parent d372d98 commit 9508b4d

File tree

4 files changed

+234
-13
lines changed

4 files changed

+234
-13
lines changed

notebooks/08.Voila/08.00-voila.ipynb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"metadata": {},
66
"source": [
77
"<!--NAVIGATION-->\n",
8-
"< [ipyvolume: 3D plotting in the notebook](07.04-ipyvolume.ipynb) | [Contents](00.00-index.ipynb) | [So easy, *voilà*!](08.01-voila-basics.ipynb) >"
8+
"[Contents](00.00-index.ipynb) | [So easy, *voilà*!](08.01-voila-basics.ipynb) >"
99
]
1010
},
1111
{
@@ -22,15 +22,15 @@
2222
"metadata": {},
2323
"source": [
2424
"<!--NAVIGATION-->\n",
25-
"< [ipyvolume: 3D plotting in the notebook](07.04-ipyvolume.ipynb) | [Contents](00.00-index.ipynb) | [So easy, *voilà*!](08.01-voila-basics.ipynb) >"
25+
"[Contents](00.00-index.ipynb) | [So easy, *voilà*!](08.01-voila-basics.ipynb) >"
2626
]
2727
}
2828
],
2929
"metadata": {
3030
"kernelspec": {
31-
"display_name": "widgets-tutorial",
31+
"display_name": "Python 3 (ipykernel)",
3232
"language": "python",
33-
"name": "widgets-tutorial"
33+
"name": "python3"
3434
},
3535
"language_info": {
3636
"codemirror_mode": {
@@ -42,7 +42,7 @@
4242
"name": "python",
4343
"nbconvert_exporter": "python",
4444
"pygments_lexer": "ipython3",
45-
"version": "3.8.10"
45+
"version": "3.9.13"
4646
}
4747
},
4848
"nbformat": 4,

notebooks/08.Voila/08.01-voila-basics.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@
7878
"metadata": {
7979
"celltoolbar": "Tags",
8080
"kernelspec": {
81-
"display_name": "widgets-tutorial",
81+
"display_name": "Python 3 (ipykernel)",
8282
"language": "python",
83-
"name": "widgets-tutorial"
83+
"name": "python3"
8484
},
8585
"language_info": {
8686
"codemirror_mode": {
@@ -92,7 +92,7 @@
9292
"name": "python",
9393
"nbconvert_exporter": "python",
9494
"pygments_lexer": "ipython3",
95-
"version": "3.8.10"
95+
"version": "3.9.13"
9696
},
9797
"widgets": {
9898
"application/vnd.jupyter.widget-state+json": {

notebooks/08.Voila/08.02-voila-vuetify.ipynb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"metadata": {},
2121
"source": [
2222
"<!--NAVIGATION-->\n",
23-
"< [So easy, *voilà*!](08.01-voila-basics.ipynb) | [Contents](00.00-index.ipynb) |"
23+
"< [So easy, *voilà*!](08.01-voila-basics.ipynb) | [Contents](00.00-index.ipynb) | [Jupyter Lite](08.03-jupyterlite.ipynb) >"
2424
]
2525
},
2626
{
@@ -169,15 +169,15 @@
169169
"metadata": {},
170170
"source": [
171171
"<!--NAVIGATION-->\n",
172-
"< [So easy, *voilà*!](08.01-voila-basics.ipynb) | [Contents](00.00-index.ipynb) |"
172+
"< [So easy, *voilà*!](08.01-voila-basics.ipynb) | [Contents](00.00-index.ipynb) | [Jupyter Lite](08.03-jupyterlite.ipynb) >"
173173
]
174174
}
175175
],
176176
"metadata": {
177177
"kernelspec": {
178-
"display_name": "widgets-tutorial",
178+
"display_name": "Python 3 (ipykernel)",
179179
"language": "python",
180-
"name": "widgets-tutorial"
180+
"name": "python3"
181181
},
182182
"language_info": {
183183
"codemirror_mode": {
@@ -189,7 +189,7 @@
189189
"name": "python",
190190
"nbconvert_exporter": "python",
191191
"pygments_lexer": "ipython3",
192-
"version": "3.8.10"
192+
"version": "3.9.13"
193193
}
194194
},
195195
"nbformat": 4,
Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "d5cdbafb-2160-4a2b-a6d6-ac69e54d613e",
6+
"metadata": {},
7+
"source": [
8+
"<p style=\"text-align: center\">\n",
9+
" <img src=\"https://jupyterlite.readthedocs.io/en/latest/_static/wordmark.svg\" width=512>\n",
10+
"</p>"
11+
]
12+
},
13+
{
14+
"cell_type": "markdown",
15+
"id": "8fb76af9-a3f0-4421-a266-f4f65c4d84af",
16+
"metadata": {},
17+
"source": [
18+
"<br><br><br><br>"
19+
]
20+
},
21+
{
22+
"cell_type": "markdown",
23+
"id": "298eada0-8213-43ea-a2c9-8eac84cf92e3",
24+
"metadata": {},
25+
"source": [
26+
"# Lightweight Jupyter Frontend running in the browser\n",
27+
"\n",
28+
"<img src=\"https://raw.githubusercontent.com/jupyterlite/jupyterlite/main/docs/_static/badge-launch.svg\" width=128 />\n",
29+
"\n",
30+
"### ✅ no server\n",
31+
"\n",
32+
"### ✅ no command line\n",
33+
"\n",
34+
"### ✅ no need to install Python and other packages locally"
35+
]
36+
},
37+
{
38+
"cell_type": "markdown",
39+
"id": "897c4537-6d44-447c-a000-298f393ec295",
40+
"metadata": {},
41+
"source": [
42+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
43+
]
44+
},
45+
{
46+
"cell_type": "markdown",
47+
"id": "b6ec8f63-789e-40bd-bc7d-69776dffe5b7",
48+
"metadata": {},
49+
"source": [
50+
"## Boots in seconds\n",
51+
"\n",
52+
"Useful to quickly try something out: https://jupyterlite.github.io/demo/lab/index.html.\n",
53+
"\n",
54+
"<p style=\"text-align: center\">\n",
55+
" <img src=\"https://user-images.githubusercontent.com/591645/120649478-18258400-c47d-11eb-80e5-185e52ff2702.gif\">\n",
56+
"</p>"
57+
]
58+
},
59+
{
60+
"cell_type": "markdown",
61+
"id": "38c5d85c-d15c-451b-a418-068ef30c847e",
62+
"metadata": {},
63+
"source": [
64+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
65+
]
66+
},
67+
{
68+
"cell_type": "markdown",
69+
"id": "e3dcf01a-9ab0-4cc5-bdad-50ccf058fa3d",
70+
"metadata": {},
71+
"source": [
72+
"# Create your own in minutes! ⏲️\n",
73+
"\n",
74+
"## The JupyterLite Demo repo: https://github.com/jupyterlite/demo\n",
75+
"\n",
76+
"![](https://user-images.githubusercontent.com/21197331/125816904-5768008a-77de-4cb3-8013-f3999b135c02.gif)"
77+
]
78+
},
79+
{
80+
"cell_type": "markdown",
81+
"id": "c6e0c255-c73c-4385-a481-9c38fa66b56a",
82+
"metadata": {},
83+
"source": [
84+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
85+
]
86+
},
87+
{
88+
"cell_type": "markdown",
89+
"id": "6631e409-04c5-4d4c-bbb9-537c26657477",
90+
"metadata": {},
91+
"source": [
92+
"# Standing on the shoulders of giants 💁‍♂️\n",
93+
"\n",
94+
"## ✳️ Built from the ground-up using JupyterLab components and extensions\n",
95+
"\n",
96+
"## ✳️ The frontend communicates to the in-browser kernels via the Jupyter Protocol\n",
97+
"\n",
98+
"![lite-ecosystem](https://user-images.githubusercontent.com/591645/162748538-e44fea00-f727-4055-b795-8f5fc5c6b133.png)"
99+
]
100+
},
101+
{
102+
"cell_type": "markdown",
103+
"id": "56e8c83a-352a-4cf5-879c-2d2c01976d34",
104+
"metadata": {},
105+
"source": [
106+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
107+
]
108+
},
109+
{
110+
"cell_type": "markdown",
111+
"id": "c5de27a2-80dc-4814-a7ac-290f9e4ab552",
112+
"metadata": {},
113+
"source": [
114+
"# Working with files\n",
115+
"\n",
116+
"## ✳️ A deployment can provide a set of files and notebooks available by default \n",
117+
"## ✳️ Combine Offline Notebook storage in browser (`localStorage` or `IndexedDB`) with server files\n",
118+
"## ✳️ Read `IndexedDB` from Python"
119+
]
120+
},
121+
{
122+
"cell_type": "markdown",
123+
"id": "37a43870-6e41-4d7f-9520-119924d40791",
124+
"metadata": {},
125+
"source": [
126+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
127+
]
128+
},
129+
{
130+
"cell_type": "markdown",
131+
"id": "4292e49c-df57-42c5-97b2-faa500ac329a",
132+
"metadata": {},
133+
"source": [
134+
"# Share Files Easily\n",
135+
"\n",
136+
"<p style=\"text-align: center\">\n",
137+
" <img src=\"https://user-images.githubusercontent.com/591645/139148148-ce1ecb0e-1f1b-4d4d-ad1d-3f7200b1e7cc.png\" width=\"40%\">\n",
138+
"</p>"
139+
]
140+
},
141+
{
142+
"cell_type": "markdown",
143+
"id": "90c23bce-4e96-4d6a-86b6-2dd490ed1edf",
144+
"metadata": {},
145+
"source": [
146+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
147+
]
148+
},
149+
{
150+
"cell_type": "markdown",
151+
"id": "c96b8fac-76d6-40c0-a96d-70193e0c1870",
152+
"metadata": {},
153+
"source": [
154+
"# Real Time Collaboration via WebRTC\n",
155+
"\n",
156+
"## PyData Global 2021 Presentation by Kevin Jahns: https://www.youtube.com/watch?v=QtoJsK8QYNk\n",
157+
"\n",
158+
"\n",
159+
"<p style=\"text-align: center\">\n",
160+
" <img src=\"https://user-images.githubusercontent.com/591645/120653630-2b3a5300-c481-11eb-8c66-eeaa3674cbb1.gif\" width=\"100%\">\n",
161+
"</p>"
162+
]
163+
},
164+
{
165+
"cell_type": "markdown",
166+
"id": "832ce472-82d6-454a-aed7-6cc55cd702d5",
167+
"metadata": {},
168+
"source": [
169+
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
170+
]
171+
},
172+
{
173+
"cell_type": "markdown",
174+
"id": "599f87b0-fe45-4820-8a18-611b17fcc650",
175+
"metadata": {},
176+
"source": [
177+
"# Limitations\n",
178+
"\n",
179+
"## ❇️ Suited for lighter workloads\n",
180+
"\n",
181+
"## ❇️ `micropip` / `piplite` to install packages\n",
182+
"\n",
183+
"- Pure Python wheels for now (up until Pyodide 0.19 at least)\n",
184+
"- This would be improved by the on-going work by leveraging the conda forge tooling. \n",
185+
"\n",
186+
"## ❇️ Accessing files from the Python kernel\n",
187+
"\n",
188+
"## ❇️ Initial asset download can be big (~30MB), then cached by the browser"
189+
]
190+
},
191+
{
192+
"cell_type": "markdown",
193+
"id": "27d2211c-e64a-4bbf-b410-4396a5c289e4",
194+
"metadata": {},
195+
"source": [
196+
"< [So easy, *voilà*!](08.01-voila-basics.ipynb) | [Contents](00.00-index.ipynb) |"
197+
]
198+
}
199+
],
200+
"metadata": {
201+
"kernelspec": {
202+
"display_name": "Python 3 (ipykernel)",
203+
"language": "python",
204+
"name": "python3"
205+
},
206+
"language_info": {
207+
"codemirror_mode": {
208+
"name": "ipython",
209+
"version": 3
210+
},
211+
"file_extension": ".py",
212+
"mimetype": "text/x-python",
213+
"name": "python",
214+
"nbconvert_exporter": "python",
215+
"pygments_lexer": "ipython3",
216+
"version": "3.9.13"
217+
}
218+
},
219+
"nbformat": 4,
220+
"nbformat_minor": 5
221+
}

0 commit comments

Comments
 (0)