In [1]:
%%html
<style>
.jp-Notebook-cell {padding-bottom: 400px;}
</style>
Navigating the Jupyter landscape¶
- Navigating the Jupyter Landscape
- JupyterCon 2023 (Paris)
- Jeremy Tuloup, Johan Mabille
- https://www.youtube.com/watch?v=uWJ0-OPKTxI
JupyterLab 4.1¶
Diagrams in Markdown¶
Matching GitHub-Flavoured Markdown, JupyterLab 4.1 now supports Mermaid 2 diagrams. To create a mermaid diagram use the mermaid language specifier for a code block in a markdown cell or document, for example:
flowchart LR A[Hard] -->|Text| B(Round) B --> C{Decision} C -->|One| D[Result 1] C -->|Two| E[Result 2]
Inline completer¶
In [2]:
def factorial(n):
result = 1
for num in range(2, n + 1):
result *= num
return result
In [ ]:
def factorial(n):
result = 1
for num in range(2, n + 1):
result *= num
return result
Opening files from tracebacks¶
In [3]:
import custom; custom.div(1, 0)
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Cell In[3], line 1 ----> 1 import custom; custom.div(1, 0) File ~/git/jtpio/2024-04-29-jupyter-open-studio-day/notebooks/custom.py:2, in div(a, b) 1 def div(a, b): ----> 2 return a / b ZeroDivisionError: division by zero
Error indicator in the table of contents¶
Plugin Manager¶
Virtual scrollbar for notebook in windowed mode¶
JupyterLab 4.2¶
Workspace UI¶
Recently opened/closed files¶
Full notebook windowing mode by default¶
Improved Shortcuts Editor¶
Among the numerous improvements and bug fixes for the keyboard shortcuts editor:
- it is now possible to remove the default shortcuts,
- shortcuts are correctly sorted when using a language pack,
- shortcuts with different arguments are now correctly displayed as individual entries.
Dark high contrast theme¶
Notebook 7¶
Follows JupyterLab 4 release cycle and features. For example Mermaid diagrams also work here:
flowchart LR A[Hard] -->|Text| B(Round) B --> C{Decision} C -->|One| D[Result 1] C -->|Two| E[Result 2]
- 7.1 released in February 2024
- 7.2 to be released in May 2024
JupyterLab Desktop¶
- Initially released in September 2021
- UI modes
- Python environment management
Voila 0.5¶
Jupyter Widgets¶
In [4]:
from ipywidgets import IntSlider
slider = IntSlider()
display(slider)
slider
IntSlider(value=0)
Out[4]:
IntSlider(value=0)
ipywidgets 8¶
- Released in August 2022
- Internal rework to facilitate reuse in other scenarios (JupyterLite, no ipykernel dependency)
- Thriving ecosystem of custom Jupyter widgets
ipyleaflet¶
In [5]:
from ipyleaflet import Map, GeomanDrawControl
m = Map(center=(50, 354), zoom=5)
draw_control = GeomanDrawControl()
draw_control.polyline = {
"pathOptions": {
"color": "#6bc2e5",
"weight": 8,
"opacity": 1.0
}
}
draw_control.polygon = {
"pathOptions": {
"fillColor": "#6be5c3",
"color": "#6be5c3",
"fillOpacity": 1.0
}
}
draw_control.circlemarker = {
"pathOptions": {
"fillColor": "#efed69",
"color": "#efed69",
"fillOpacity": 0.62
}
}
draw_control.rectangle = {
"pathOptions": {
"fillColor": "#fca45d",
"color": "#fca45d",
"fillOpacity": 1.0
}
}
m.add(draw_control)
m
Out[5]:
Map(center=[50, 354], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out_te…
anywidget¶
Simplify authoring and distributing custom Jupyter Widgets.
ipylgbst¶
A widget library for controlling LEGO® BOOST via web-bluetooth.
Jupyter Server 2¶
- Released December 2022
- New features and APIs:
- Identity API
- Authorization API
- Even system API
- Server extensions:
- Jupyter scheduler
- Resource usage
- RTC stack
Jupyverse¶
- Initial release in 2021
- Alternative to Jupyter Server
- Redefines what a Jupyter server is and what it should do
- Plugin based (like lab)
Servers and kernels¶
- Concurrent kernel execution
- Async kernel execution
- New kernels:
- xeus-ruby
- xeus-cpp
JupyterHub 4¶
Released in April 2023
JupyterHub 5 soon to be released (beta available)
Recent developments:
- RBAC
- roles and permissions
- RTC
- https://jupyterhub.readthedocs.io/en/latest/reference/changelog.html
Real Time Collaboration¶
jupyter-collaboration
package released in 2023 (to be installed with JupyterLab 4)
Recent developments:¶
- Server Side Execution (experimental, requires JupyterLab 4.2+)
- Challenges the current Jupyter architecture, protocol, and execution paradigm
- Bug fixes
- Suggestions and commenting UI
JupyterCAD¶
- 3D geometry modeling with collaborative editing support
- JupyterLab remix
- Uses the RTC stack
JupyterLab LSP¶
In [ ]:
import math
math.
Jupyter AI¶
- Generative AI in Jupyter
- Supports many provider (no lock-in)
- Future integration with RTC (chat is shared) where the RTC bot would be a "collaborator"
Accessibility¶
- CodeMirror 6 in JupyterLab
- Continuous improvements in JupyterLab and Notebook 7
- Provide an accessible Notebook offering via Notebook 7
JupyterLite¶
- Remixes the Jupyter stack
- lab and notebook
- Pyodide
- Emscripten forge
- remote contents (S3, drives)
JupyterLite¶
- 0.3.0 (based on JupyterLab 4.1 and Notebook 7.1) released in March 2024
- 0.4.0 to be released after JupyterLab 4.2 and Notebook 7.2 (May / June 2024)
Voici¶
- Static web applications from notebooks
- "Voila for JupyterLite"
- Voici Gallery: https://voila-dashboards.github.io/voici-gallery/
Publishing and interactive documents¶
- Executable books
- Thebe
- MystMarkdown
- Myst-lite: https://rowanc1.github.io/myst-lite/
Governance¶
- Activity in other subprojects, such as Jupyter Security Group, Social Media Strategy
- Docs working group
- JupyterLab and Notebook merged into a Jupyter Frontends subproject
- Proposal to move to the Linux foundation
Community¶
Jupyter Community Calendar
- Jupyter Frontends (videos on YouTube)
- ipywidgets & Voila
- JupyterHub collaboration cafe
- Accessibility
- Jupyter Server
- Jupyter Server Collaboration hour
- SSC and EC open hours meetings
Subproject team compass repos