Run LiberTEM via JupyterLab/JupyterHub
Project description
Run the LiberTEM GUI in JupyterLab / JupyterHub
See the LiberTEM docs for more details!
Requirements
- Python 3.6+
- Jupyter Notebook 6.0+
- JupyterLab 2.1+
- LiberTEM 0.8.0+ (currently requires unreleased changes only available in the master branch!)
LiberTEM
LiberTEM is an open source platform for high-throughput distributed processing of large-scale binary data sets and live data streams using a modified MapReduce programming model. The current focus is pixelated scanning transmission electron microscopy (STEM) and scanning electron beam diffraction data.
Install
-
Clone this repo
$ git clone https://github.com/LiberTEM/LiberTEM-jupyter-proxy
-
Install dependencies and LiberTEM master:
$ pip install -e .
$ pip install -e "git+https://github.com/liberTEM/LiberTEM/#egg=libertem"
-
enable
jupyter-server-proxy
extension
For Jupyter Classic, activate the jupyter-server-proxy extension:
jupyter serverextension enable --sys-prefix jupyter_server_proxy
For Jupyter Lab, install the @jupyterlab/server-proxy extension:
jupyter labextension install @jupyterlab/server-proxy
jupyter lab build
-
Start jupyter-lab or jupyter-notebook
$ jupyter-lab
or
$ jupyter notebook
Now LiberTEM should be available as an icon in JupyterLab, or in the "New" dropdown in the classical notebook interface / JupyterHub.
Deployment notes
When deploying behind a reverse proxy, make sure websocket requests are
proxied for all URLs, not just for specifically matching ones. Otherwise, something
like connecting to wss://<hostname>/user/<username>/libertem/events/
will fail
with 400 bad request, as Upgrade: websocket
is not supported.
If you want to customize the startup of LiberTEM, you can drop a JSON file into
$PREFIX/etc/libertem_jupyter_proxy.json
, with contents like this:
{"libertem_server_path": "/path/to/a/venv/bin/libertem-server"}
One use case is to install LiberTEM itself into a different Python environment
than Jupyter, as in the example above. Another is to write a wrapper script
to customize the environment setup, as in the example script
libertem_jupyter_proxy/share/launch_juwels.sh
Without configuration, libertem-server
is expected to be found in $PATH
.
Try it (WIP)
Thanks
Mostly stolen from https://github.com/betatim/vscode-binder
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for libertem_jupyter_proxy-0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c549e253089f66877a8088d829d93a77fb66091883812fa5464c8a8232458102 |
|
MD5 | e3a8f947e92653428314715884418d5a |
|
BLAKE2b-256 | 6190dce26986e7536455f7032e25ec7bb4a94623709c19b2e88ee41e4e1138aa |