https://github.com/jtpio/ipylab
Control JupyterLab from Python Notebooks with Jupyter Widgets 🧪 ☢️ 🐍
https://github.com/jtpio/ipylab
jupyter jupyterlab jupyterlab-extension python widgets
Last synced: 11 days ago
JSON representation
Control JupyterLab from Python Notebooks with Jupyter Widgets 🧪 ☢️ 🐍
- Host: GitHub
- URL: https://github.com/jtpio/ipylab
- Owner: jtpio
- License: bsd-3-clause
- Created: 2019-11-15T19:52:12.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-06T06:39:52.000Z (about 1 year ago)
- Last Synced: 2024-04-14T17:24:55.781Z (about 1 year ago)
- Topics: jupyter, jupyterlab, jupyterlab-extension, python, widgets
- Language: TypeScript
- Homepage:
- Size: 1.91 MB
- Stars: 177
- Watchers: 8
- Forks: 13
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jupyter-resources - GitHub - 36% open · ⏱️ 25.08.2022): (JupyterLab扩展)
- best-of-jupyter - GitHub - 56% open · ⏱️ 19.11.2024): (JupyterLab Extensions)
README
# ipylab

[](https://ipylab.readthedocs.io/en/latest/lite/lab)
[](https://mybinder.org/v2/gh/jtpio/ipylab/main?urlpath=lab/tree/examples/widgets.ipynb)
[](https://anaconda.org/conda-forge/ipylab)
[](https://pypi.python.org/pypi/ipylab)
[](https://www.npmjs.com/package/ipylab)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:
[](https://mybinder.org/v2/gh/jtpio/ipylab/main?urlpath=lab/tree/examples/widgets.ipynb)
Or with [JupyterLite](https://github.com/jupyterlite/jupyterlite):
[](https://ipylab.readthedocs.io/en/latest/lite/lab)
## Examples
### Add Jupyter Widgets to the JupyterLab interface

### Execute Commands

### Custom Python Commands and Command Palette

### Build small applications

### Compatibility with RetroLab
A subset of the features can be used in RetroLab:

## Installation
You can install using `pip`:
```bash
pip install ipylab
```Or with `mamba` / `conda`:
```bash
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:
```bash
# create a new conda environment
conda create -n ipylab-examples -c conda-forge jupyterlab ipylab ipytree bqplot ipywidgets numpy
conda activate ipylab-examples# start JupyterLab
jupyter lab
```## Under the hood
`ipylab` can be seen as a proxy from Python to JupyterLab over Jupyter Widgets:

## Development
```bash
# create a new conda environment
mamba create -n ipylab -c conda-forge jupyter-packaging nodejs python -y# activate the environment
conda activate ipylab# install the Python package
python -m pip install -e ".[dev]"# link the extension files
jupyter labextension develop . --overwrite# compile the extension
jlpm && jlpm run build
```## Related projects
There are a couple of projects that also enable interacting with the JupyterLab environment from Python notebooks:
- [wxyz](https://github.com/deathbeds/wxyz): experimental widgets (including `DockPanel`)
- [jupyterlab-sidecar](https://github.com/jupyter-widgets/jupyterlab-sidecar): add widgets to the JupyterLab right area
- [jupyterlab_commands](https://github.com/timkpaine/jupyterlab_commands): add arbitrary Python commands to the jupyterlab command palette