Skip to content
forked from jtpio/ipylab

Control JupyterLab from Python Notebooks with Jupyter Widgets 🧪 ☢️ 🐍

License

Notifications You must be signed in to change notification settings

fleming79/ipylab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ipylab

Github Actions Status JupyterLite Binder Conda Version pypi npm

Control JupyterLab from Python notebooks.

The goal is to provide access to most of the JupyterLab environment from the Python kernel. 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

Or with JupyterLite:

JupyterLite

Examples

Add Jupyter Widgets to the JupyterLab interface

widgets-panels

Execute Commands

command-registry

Custom Python Commands and Command Palette

custom-commands

Build small applications

ipytree-example

Compatibility with RetroLab

A subset of the features can be used in RetroLab:

retrolab-example

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:

# 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:

ipylab-diagram

Development

# create a new conda environment
mamba create -n ipylab -c conda-forge nodejs python=3.11 -y

# activate the environment
conda activate ipylab

# install the Python package
pip install -e ".[dev]"

# link the extension files
jupyter labextension develop . --overwrite

# compile the extension
jlpm clean
jlpm build

# pre-commit (optional)
pip install pre-commit
pre-commit run

# or, to install the git hook
pre-commit install

# Use jlpm script to lint the JS
jlpm lint
#or
jlpm lint:check

VS code debugging

A config file is included to debug ipylab with Firefox.

Related projects

There are a couple of projects that also enable interacting with the JupyterLab environment from Python notebooks:

About

Control JupyterLab from Python Notebooks with Jupyter Widgets 🧪 ☢️ 🐍

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 57.8%
  • TypeScript 41.7%
  • Other 0.5%