Skip to content

altair-viz/jupyterlab_voyager

Repository files navigation

jupyterlab_voyager

npm Build Status Binder

A JupyterLab MIME renderer extension to view CSV and JSON data in Voyager 2.

Screen shot showing data file opened in Voyager in JupyterLab

Prerequisites

  • JupyterLab

Installation

jupyter labextension install jupyterlab_voyager

You can also use this with the Docker base images:

FROM jupyter/minimal-notebook
RUN jupyter labextension install jupyterlab_voyager
CMD start.sh jupyter lab

Then right click on any csv, tsv or json file click "Open with...", then "Voyager".

If you experience "FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory" error during installation, you can use

- export NODE_OPTIONS=--max-old-space-size=16000

or just add NODE_OPTIONS=--max-old-space-size=16000 env variable when running jupyter lab build to solve this problem.

Development

For a development install (requires npm version 4 or later, yarn, and jupyterlab), do the following in the repository directory:

yarn install
jupyter labextension link .

Then build the files and start Jupyter Lab:

yarn watch
# in new window
jupyter lab --port=8889 --watch

Reload the page to see new code changes.

Testing

You can run the E2E tests with cypress:

jupyter lab --port=8889

# in a new window
npx cypress run

Or open Cypress for an interactive experience:

npx cypress open

Docker

If you have Docker version >= 17.09.0-ce installed, you can also do all of the above with:

docker-compose up lab

Then you can run the tests with:

docker-compose run --rm test

If you change the installed packages, you have to remove the existing volume and rebuild the images:

docker-compose down -v
docker-compose build

Future Work

This extension provides a bare minimum integration with Voyager. It would be great to support features like:

  • Save Voyager state in widget, so that when window is reloaded it will preserve what you have selected.
  • Allow viewing Pandas dataframes in the notebook with Voyager.

Created using JupyterLab extension-cookiecutter-ts.