Create widgets and self-contained apps for Jupyterlab written entirely in Python.
Menubox is the base class and can be used as is or can be subclassed to define
a new widget class. It is an Ipylab Panel widget combined with a HasParent widget.
Functionality includes:
- capable of loading multiple views
- minimizing
- moving itself inside a
showboxand removing itself - Button to close itself
- Buttons can be enabled/disabled on demand
- Can add itself to the shell (as can any ipylab Panel widget)
MenuboxVT provides additional features such as:
- observing nested values
- copying settings
- data persistence
menubox relies on patched un-released versions of Ipylab and Ipywidgets
(including jupyterlab-widget), compatible wheels are stored in the pkg directory.
To ensure the packaged wheels are used, menubox should be installed from source
in editable mode.
# Obtain the source.
git clone https://github.com/fleming79/menubox
cd menubox
# Install in editable mode
uv syncTo upgrade all packages.
uv sync -URun configurations are provided for debugging.
hatch build -t sdist
# Only the source distribution is relevant (file ending in '.tar.gz')Note: if the build doesn't start, try deleting the environment with.
hatch env removemenubox is distributed under the terms of the MIT license.
For the moment, check out menubox.filesystem.Filesystem for an example.
TODO:
- Documentation hints
- or possibly https://squidfunk.github.io/mkdocs-material/
