Skip to main content

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+

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

  1. Install this package and LiberTEM:

    $ pip install libertem-jupyter-proxy libertem

  2. enable jupyter-server-proxy extension

For Jupyter Classic, activate the jupyter-server-proxy extension:

jupyter serverextension enable --sys-prefix jupyter_server_proxy

For JupyterLab, install the @jupyterlab/server-proxy extension:

jupyter labextension install @jupyterlab/server-proxy
jupyter lab build
  1. 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"}

This allows to install LiberTEM itself into a different Python environment than Jupyter, as opposed to using the same environment as in the example above. It can also allow 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)

Binder

Thanks

Mostly stolen from https://github.com/betatim/vscode-binder

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

libertem_jupyter_proxy-0.1.2-py3-none-any.whl (107.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page