dask/dask-labextension — an open-source project — sits at 329 GitHub stars. JupyterLab extension for Dask
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
This package provides a JupyterLab extension to manage Dask clusters,
as well as embed Dask's dashboard plots directly into JupyterLab panes.
Explanatory Video (5 minutes)
Requirements
JupyterLab >= 1.0
distributed >= 1.24.1
Installation
To install the Dask JupyterLab extension you will need to have JupyterLab installed.
For JupyterLab < 3.0, you will also need Node.js version >= 12.
These are available through a variety of sources.
One source common to Python users is the conda package manager.
Install the latest version of the extension for the JupyterLab 4
support. You should be able to install this extension with pip or conda,
and start using it immediately, e.g.
pip install dask-labextension
JupyterLab 3.x
For JupyterLab 3.x, use lastest supported version 6.2.0.
pip install dask-labextension==6.2.0
JupyterLab 2.x
Prior to JupyterLab 3.0 client-side and server-side components needed
to be installed separately, with node available on the machine.
The server-side component can be installed via pip or conda-forge:
This extension has the ability to launch and manage several kinds of Dask clusters,
including local clusters and kubernetes clusters.
Options for how to launch these clusters are set via the
dask configuration system,
typically a .yml file on disk.
By default the extension launches a LocalCluster, for which the configuration is:
In this configuration, factory gives the module, class name, and arguments needed to create the cluster.
The default key describes the initial number of workers for the cluster, as well as whether it is adaptive.
The initial key gives a list of initial clusters to start upon launch of the notebook server.
In addition to LocalCluster, this extension has been used to launch several other Dask cluster
objects, a few examples of which are:
This extension can store a default layout for the Dask dashboard panes,
which is useful if you find yourself reaching for the same dashboard charts over and over.
You can launch the default layout via the command palette,
or by going to the File menu and choosing "Launch Dask Dashboard Layout".
Default layouts can be configured via the JupyterLab config system
(either using the JSON editor or the user interface).
Specify a layout by writing a JSON object keyed by the
individual charts
you would like to open.
Each chart is opened with a mode, and a ref.
mode refers to how the chart is to be added to the workspace.
For example, if you want to split a panel and add the new one to the right, choose split-right.
Other options are split-top, split-bottom, split-left, tab-after, and tab-before.
ref refers to the panel to which mode is applied, and might be the names of other dashboard panels.
If ref is null, the panel in question is added at the top of the layout hierarchy.
which adds the task stream to the right of the workspace,
then adds the worker memory chart below the task stream,
then adds the progress chart to the right of the worker memory chart.
Development install
As described in the JupyterLab documentation
for a development install of the labextension you can run the following in this directory:
jlpm # Install npm package dependencies
jlpm build # Compile the TypeScript sources to Javascript
jupyter labextension develop . --overwrite # Install the current directory as an extension
To rebuild the extension:
jlpm build
You should then be able to refresh the JupyterLab page
and it will pick up the changes to the extension.
To run an editable install of the server extension, run
This extension contains a front-end component written in TypeScript
and a back-end component written in Python.
The front-end is compiled to Javascript during the build process
and is distributed as static assets along with the Python package.
Release process
This requires node, build, hatch and twine to be installed.
# To set version (e.g. 7.0.0). hatch will update version string in package.json
hatch version "7.0.0"
# Examples of bumping version
# minor bump
hatch version minor # Bumps to 7.1.0
# beta pre-release bump
# If published to pypi this can be installed with the --pre flag to pip
hatch version b # Bumps to 7.1.0b0
# bump minor and beta
hatch version minor,b # Bumps to 7.2.0b0
# release all of the --pre-release flags such as alpha beta rc
hatch release # Bumps to 7.2.0
# git commit after bumping version
git add package.json && git commit -m "Bump version: {version}"
# Tag this version
git tag {version}
# Finally push to main, build and upload package to PyPI
git push upstream main && git push upstream main --tags # pushes to GitHub
python -m build . # Build the package
twine upload dist/* # Upload the package to PyPI
Handling Javascript package version conflicts
Unlike Python, Javascript packages can include more than one version of the same dependency.
Usually the yarn package manager handles this okay, but occasionally you might end up with conflicting versions,
or with unexpected package bloat.
You can try to fix this by deduplicating dependencies:
Yes — dask/dask-labextension ships under the BSD-3-Clause license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/dask/dask-labextension.
What is dask/dask-labextension?
dask/dask-labextension (dask/dask-labextension) is a TypeScript project on GitHub. From the project's own README: JupyterLab extension for Dask
Where do I read more about dask/dask-labextension?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/dask/dask-labextension is the definitive source.
Read full README in the tab above.
Is dask-labextension worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of dask-labextension.