ipylab
![npm](https://img.shields.io/npm/v/ipylab.svg)
Control JupyterLab from Python notebooks.
The goal is to provide access to most of the JupyterLab environment from Python notebooks. For example:
- Adding widgets to the main area
DockPanel
, left, right or top area - Build more advanced interfaces leveraging
SplitPanel
, Toolbar
and other Lumino widgets - Launch arbitrary commands (new terminal, change theme, open file and so on)
- Open a workspace with a specific layout
- Listen to JupyterLab signals (notebook opened, console closed) and trigger Python callbacks
Try it online
Try it in your browser with Binder:
![Binder](https://mybinder.org/badge_logo.svg)
Examples
Add Jupyter Widgets to the JupyterLab interface
![widgets-panels](https://user-images.githubusercontent.com/591645/80025074-59104280-84e0-11ea-9766-0cb49cba285a.gif)
Execute Commands
![command-registry](https://user-images.githubusercontent.com/591645/80026017-beb0fe80-84e1-11ea-842d-fa3bf5bc4a9b.gif)
Custom Python Commands and Command Palette
![custom-commands](https://user-images.githubusercontent.com/591645/80026023-c1135880-84e1-11ea-9e83-fdb739659357.gif)
Build small applications
![ipytree-example](https://user-images.githubusercontent.com/591645/80026006-b8bb1d80-84e1-11ea-87cc-86495186b938.gif)
Installation
You can install using pip
:
pip install ipylab
Or with mamba
/ conda
:
mamba install -c conda-forge ipylab
Running the examples locally
To try out the examples locally, the recommended way is to create a new environment with the dependencies:
conda create -n ipylab-examples -c conda-forge jupyterlab ipylab ipytree bqplot ipywidgets numpy
conda activate ipylab-examples
jupyter lab
Under the hood
ipylab
can be seen as a proxy from Python to JupyterLab over Jupyter Widgets:
![ipylab-diagram](https://github.com/jtpio/ipylab/raw/HEAD/./docs/ipylab.png)
Development
mamba create -n ipylab -c conda-forge jupyter-packaging nodejs python -y
conda activate ipylab
python -m pip install -e ".[dev]"
jupyter labextension develop . --overwrite
jlpm && jlpm run build
Related projects
There are a couple of projects that also enable interacting with the JupyterLab environment from Python notebooks: