Skip to main content

Jupyter extensions to add nbgallery integration

Project description

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

Overview

This package provides several Jupyter extensions to enable integration with nbgallery. More information is available here in the nbgallery github project.

Installation

This package contains both UI extensions (nbextensions) and server extensions. To install with pip:

pip install jupyter_nbgallery

As of version 2.0, the minimal set of extensions required for nbgallery integration will be automatically installed and enabled. This includes the post_hack server extension, the nbgallery environment registration UI extension, and the Gallery menu UI extension.

To enable the optional extensions:

# Enable all extensions
jupyter nbextension enable --sys-prefix --py jupyter_nbgallery

# Enable individual extensions
jupyter nbextension enable --sys-prefix --section tree jupyter_nbgallery/autodownload/autodownload
jupyter nbextension enable --sys-prefix --section notebook jupyter_nbgallery/easy_buttons/easy_buttons
jupyter nbextension enable --sys-prefix --section notebook jupyter_nbgallery/instrumentation/instrumentation

If you are using the Jupyter Nbextensions Configurator extension, you can also toggle the nbextensions on and off from the configurator page.

Jupyter configuration

Once the extension is installed, you will also need to modify your Jupyter configuration to interact with your nbgallery server.

First, your Jupyter instance needs to know about your nbgallery server in order to save notebooks, download preferences, etc. This is configured in nbconfig/common.json underneath one of Jupyter's configuration directories. You can use the included jupyter nbgallery script to set the location of your nbgallery, as well as the Jupyter client name that will appear in nbgallery's "Run in Jupyter" Environments page.

# Set nbgallery server location:
# jupyter nbgallery [--user|--system|--sys-prefix] configure url <nbgallery server address>
# Example:
jupyter nbgallery --sys-prefix configure url http://localhost:3000

# Set nbgallery environment client name
# Example:
jupyter nbgallery --sys-prefix configure client.name my-jupyter-instance

After configuration, nbconfig/common.json should look something like this (potentially with other unrelated sections):

{
  "nbgallery": {
    "url": "http://localhost:3000",
    "client": {
      "name": "my-jupyter-instance"
    }
  }
}

Second, in order for nbgallery's "Run in Jupyter" button to work, Jupyter must be configured to allow cross-site AJAX. Note these are security-relevant configuration settings. These can be set in jupyter_notebook_config.py:

c.NotebookApp.allow_origin = <URL of your nbgallery instance>`
c.NotebookApp.allow_credentials = True
c.NotebookApp.disable_check_xsrf = True

These can also be set on the command line when launching Jupyter; for example:

jupyter notebook --NotebookApp.allow_origin='http://localhost:3000' --NotebookApp.allow_credentials=True --NotebookApp.disable_check_xsrf=True

If you are launching jupyter lab instead of jupyter notebook, be aware that as of Lab 3.0, these are now ServerApp settings that can be set in jupyter_server_config.py (see the migration guide).

List of Extensions

UI Extensions (nbextensions)

Minimal Set

  • environment registers this Jupyter instance with nbgallery so notebooks can be launched with the "Run in Jupyter" button. It also downloads preferences stored in nbgallery.
  • gallery_menu adds the Gallery and Preferences menus to the Notebook interface. These are necessary for saving notebooks and preferences back to nbgallery.

Optional

Server Extensions

  • post_hack is a workaround for browser issues with CORS pre-flight checks when PKI certificates are involved. The Jupyter API enables notebooks to be uploaded via a PUT to /api/contents/NotebookName.ipynb; this extension enables uploads via a POST to /post/NotebookName.ipynb as well. The "Run in Jupyter" button in nbgallery uses the /post endpoint, so this extension must be enabled to launch notebooks from nbgallery.

Project details


Download files

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

Source Distribution

jupyter-nbgallery-2.0.0.tar.gz (80.2 kB view hashes)

Uploaded Source

Built Distribution

jupyter_nbgallery-2.0.0-py3-none-any.whl (160.3 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