All Projects → Jupyter-contrib → Jupyter_nbextensions_configurator

Jupyter-contrib / Jupyter_nbextensions_configurator

Licence: other
A jupyter notebook serverextension providing config interfaces for nbextensions.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Jupyter nbextensions configurator

Jupyterlab Lsp
Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol
Stars: ✭ 796 (-2.21%)
Mutual labels:  jupyter-notebook, jupyter
Log Progress
https://habr.com/ru/post/276725/
Stars: ✭ 556 (-31.7%)
Mutual labels:  jupyter-notebook, jupyter
Intro To Python
An intro to Python & programming for wanna-be data scientists
Stars: ✭ 536 (-34.15%)
Mutual labels:  jupyter-notebook, jupyter
Nbviewer App
A Jupyter notebook viewer for macOS
Stars: ✭ 521 (-36%)
Mutual labels:  jupyter-notebook, jupyter
Nteract
📘 The interactive computing suite for you! ✨
Stars: ✭ 5,713 (+601.84%)
Mutual labels:  jupyter-notebook, jupyter
Data Science Your Way
Ways of doing Data Science Engineering and Machine Learning in R and Python
Stars: ✭ 530 (-34.89%)
Mutual labels:  jupyter-notebook, jupyter
Cookbook 2nd Code
Code of the IPython Cookbook, Second Edition, by Cyrille Rossant, Packt Publishing 2018 [read-only repository]
Stars: ✭ 541 (-33.54%)
Mutual labels:  jupyter-notebook, jupyter
Jupyter Dash
Develop Dash apps in the Jupyter Notebook and JupyterLab
Stars: ✭ 453 (-44.35%)
Mutual labels:  jupyter-notebook, jupyter
Fastai2
Temporary home for fastai v2 while it's being developed
Stars: ✭ 630 (-22.6%)
Mutual labels:  jupyter-notebook, jupyter
Stock Analysis Engine
Backtest 1000s of minute-by-minute trading algorithms for training AI with automated pricing data from: IEX, Tradier and FinViz. Datasets and trading performance automatically published to S3 for building AI training datasets for teaching DNNs how to trade. Runs on Kubernetes and docker-compose. >150 million trading history rows generated from +5000 algorithms. Heads up: Yahoo's Finance API was disabled on 2019-01-03 https://developer.yahoo.com/yql/
Stars: ✭ 605 (-25.68%)
Mutual labels:  jupyter-notebook, jupyter
Sklearn Classification
Data Science Notebook on a Classification Task, using sklearn and Tensorflow.
Stars: ✭ 518 (-36.36%)
Mutual labels:  jupyter-notebook, jupyter
Elasticsearch Spark Recommender
Use Jupyter Notebooks to demonstrate how to build a Recommender with Apache Spark & Elasticsearch
Stars: ✭ 707 (-13.14%)
Mutual labels:  jupyter-notebook, jupyter
Or Pandas
【运筹OR帷幄|数据科学】pandas教程系列电子书
Stars: ✭ 492 (-39.56%)
Mutual labels:  jupyter-notebook, jupyter
Digital Signal Processing Lecture
Digital Signal Processing - Theory and Computational Examples
Stars: ✭ 532 (-34.64%)
Mutual labels:  jupyter-notebook, jupyter
Jupyterhub Deploy Docker
Reference deployment of JupyterHub with docker
Stars: ✭ 479 (-41.15%)
Mutual labels:  jupyter-notebook, jupyter
Justenoughscalaforspark
A tutorial on the most important features and idioms of Scala that you need to use Spark's Scala APIs.
Stars: ✭ 538 (-33.91%)
Mutual labels:  jupyter-notebook, jupyter
Tensorflow Lstm Regression
Sequence prediction using recurrent neural networks(LSTM) with TensorFlow
Stars: ✭ 433 (-46.81%)
Mutual labels:  jupyter-notebook, jupyter
Jupyter tensorboard
Start Tensorboard in Jupyter Notebook
Stars: ✭ 446 (-45.21%)
Mutual labels:  jupyter-notebook, jupyter
Business Machine Learning
A curated list of practical business machine learning (BML) and business data science (BDS) applications for Accounting, Customer, Employee, Legal, Management and Operations (by @firmai)
Stars: ✭ 575 (-29.36%)
Mutual labels:  jupyter-notebook, jupyter
Cookbook 2nd
IPython Cookbook, Second Edition, by Cyrille Rossant, Packt Publishing 2018
Stars: ✭ 704 (-13.51%)
Mutual labels:  jupyter-notebook, jupyter

Jupyter Nbextensions Configurator

Join the chat at https://gitter.im/jupyter-contrib/jupyter_nbextensions_configurator GitHub issues
Travis-CI Build Status Coveralls python test coverage Codecov python test coverage
GitHub tag PyPI Conda forge

A server extension for jupyter notebook which provides configuration interfaces for notebook extensions (nbextensions).

The jupyter_nbextensions_configurator jupyter server extension provides graphical user interfaces for configuring which nbextensions are enabled (load automatically for every notebook). In addition, for nbextensions which include an appropriate yaml descriptor file (see below), the interface also renders their markdown readme files, and provides controls to configure the nbextensions' options.

This project was spun out of work from ipython-contrib/IPython-notebook-extensions.

Installation

For those using conda, you can now get jupyter_nbextensions_configurator from the excellent conda-forge channel in a single command:

conda install -c conda-forge jupyter_nbextensions_configurator

For those not using conda, the installation has two steps:

  1. Installing the pip package. This should be as simple as

    pip install jupyter_nbextensions_configurator
    
  2. Configuring the notebook server to load the server extension. A jupyter subcommand is provided for this. You can enable the serverextension and the configurator nbextensions listed below for the current user with

    jupyter nbextensions_configurator enable --user
    

    The command accepts the same flags as the jupyter serverextension command provided by notebook versions >= 4.2, including --system to enable in system-wide config (the default), or --sys-prefix to enable in config files inside python's sys.prefix, such as for a virtual environment. The provided jupyter nbextensions_configurator command can also be used to disable.

Once installed, you'll need to restart the notebook server. Once restarted, you should be able to find the configurator user interfaces as described below.

Usage

Once jupyter_nbextensions_configurator is installed and enabled, and your notebook server has been restarted, you should be able to find the nbextensions configuration interface at the url <base_url>nbextensions, where <base_url> is described below (for simple installs, it's usually just /, so the UI is at /nbextensions).

configurator UI page

base_url

For most single-user notebook servers, the dashboard (the file-browser or 'tree' view) is at

http://localhost:8888/tree

So the base_url is the part between the host (http://localhost:8888) and tree, so in this case it's the default value of just /. If you have a non-default base url (such as with JupyterHub), you'll need to prepend it to the url. So, if your dashboard is at

http://localhost:8888/custom/base/url/tree

then you'll find the configurator UI page at

http://localhost:8888/custom/base/url/nbextensions

tree tab

In addition to the main standalone page, the nbextensions configurator interface is also available as a tab on the dashboard:

configurator UI in a dashboard tab

The dashboard tab is provided via an nbextension called "Nbextensions dashboard tab", with requirejs uri nbextensions_configurator/tree_tab/main. Since version 0.2.0, this nbextension is enabled by default on enabling the jupyter_nbextensions_configurator serverextension, but it can be disabled as with any other nbextension if you don't want to use it.

edit menu item

jupyter_nbextensions_configurator provides a second small nbextension, which simply adds an item to the notebook-view edit menu, which links to the configurator UI page:

configurator edit menu item

Similarly to the tree tab nbextension detailed above, since version 0.2.0, the edit menu item nbextension is enabled by default when enabling the main jupyter_nbextensions_configurator serverextension, but can be disabled at any time in the same way as other nbextensions.

YAML file format

You don't need to know about the yaml files in order simply to use jupyter_nbextensions_configurator. An nbextension is 'found' by the jupyter_nbextensions_configurator server extension when a special yaml file describing the nbextension and its options is found in the notebook server's nbextensions_path. The yaml file can have any name with the file extension .yaml or .yml, and describes the nbextension and its options to jupyter_nbextensions_configurator.

The case-sensitive keys in the yaml file are as follows:

  • Type, (required) a case-sensitive identifier, must be IPython Notebook Extension or Jupyter Notebook Extension
  • Main, (required) the main javascript file that is loaded, typically main.js
  • Name, the name of the nbextension
  • Section, which view the nbextension should be loaded in (defaults to notebook, but can alternatively be tree, edit, or to load in all views, common).
  • Description, a short explanation of the nbextension
  • Link, a URL for more documentation. If this is a relative url with a .md file extension (recommended!), the markdown readme is rendered in the configurator UI.
  • Icon, a URL for a small icon for the configurator UI (rendered 120px high, should preferably end up 400px wide. Recall HDPI displays may benefit from a 2x resolution icon).
  • Compatibility, Jupyter major version compatibility, e.g. 3.x or 4.x, 3.x 4.x, 3.x, 4.x, 5.x
  • Parameters, an optional list of configuration parameters. Each item is a dictionary with (some of) the following keys
    • name, (required) the name used to store the configuration variable in the config json. It follows a json-like structure, so you can use . to separate sub-objects e.g. myextension.buttons_to_add.play.
    • description, a description of the configuration parameter
    • default, a default value used to populate the tag in the configurator UI, if no value is found in config. Note that this is more of a hint to the user than anything functional - since it's only set in the yaml file, the javascript implementing the nbextension in question might actually use a different default, depending on the implementation.
    • input_type, controls the type of html tag used to render the parameter in the configurator UI. Valid values include text, textarea, checkbox, [html5 input tags such as number, url, color, ...], plus a final type of list
    • list_element, a dictionary with the same default and input_type keys as a Parameters entry, used to render each element of the list for parameters with input_type list
    • finally, extras such as min, step and max may be used by number tags for validation
  • tags, a list of string tags describing the nbextension, to allow for filtering

Example:

Type: Jupyter Notebook Extension
Name: Limit Output
Section: notebook
Description: This nbextension limits the number of characters that can be printed below a codecell
tags:
- usability
- limit
- output
Link: readme.md
Icon: icon.png
Main: main.js
Compatibility: 4.x
Parameters:
- name: limit_output
  description: Number of characters to limit output to
  input_type: number
  default: 10000
  step: 1
  min: 0
- name: limit_output_message
  description: Message to append when output is limited
  input_type: text
  default: '**OUTPUT MUTED**'

Troubleshooting

If you encounter problems with this server extension, you can:

For debugging, useful information can (sometimes) be found by:

  • Checking for error messages in the browser's JavaScript console.
  • Checking for messages in the notebook server's logs. This is particularly useful when the server is run with the --debug flag, to get as many logs as possible.

Changes

0.4.0

  • Show error messages when failing to load a config file, allowing remaining files to load ok.
  • use pip for conda recipe installation, instead of python setup.py

0.3.0

  • don't use notebook.base.handlers.json_errors for notebook >= 5.2.0, as it's deprecated.
  • auto-pad 3-char colour codes (e.g. #BEC) to 6-char, as otherwise the HTML5 controls don't initialize correctly.

0.2.8

  • Split specification checking into a separate function
  • Fixes for bugs in notebook 5.1.0

0.2.7

0.2.6

  • Require newer version of jupyter_contrib_core in order to ensure setting the correct config key when enabling.

0.2.5

  • Deduplicate entries in nbextensions_path before checking them, to prevent displaying duplictae entries for nbextesions in the same place. Also add tests for deduplication.
  • Open yaml files using utf-8 encoding, allowing non-ascii characters, courtesy of @haobibo.
  • List configurator's own nbextensions as compatible with notebook 5.x
  • CI updates for 5.x testing, and working around a conda bug.

0.2.4

  • Allow filtering based on name and description text as well as section & tags
  • Add a clear-filter control
  • Allow unconfigurable nbextensions to be 'forgotten' (enabled/disabled status erased completely)
  • Allow refreshing the nbextensions list, see for details #29
  • Add tooltip for parameter reset, as requested in #29
  • Add IPython CodeMirror mode to markdown renderer
  • Don't embed nbextensions data into the standalone /nbextensions page. This allows us to serve the page quicker, then get nbextensions data (slow request) from the json api.
  • Improved log messages, with prefixes, both on client & server side
  • Fix bug preventing matching first tag
  • Fix bug preventing render of markdown containing unknown CodeMirror mode(s)
  • Fix minor css margin issue with visible/not visible compatibility
  • Make tests more robust against misleading timing-based failures
  • Update jupyterhub test spawner to match hub version 0.7 api
  • Update CI to use selenium 3, allowing us to test on recent firefox versions
  • Add yet another new coverage argument for CI

0.2.3

  • On the dashboard, select the configurator tree tab automatically if the appropriate URL hash is present
  • Add filtering of visible nbextensions by names, tags and sections
  • Add jupyterhub-based tests, to hopefully catch some issues relating to the jupyterhub SingleUserServer, like #11 and #14 in future
  • README updates
  • Bugfix for Enable/Disable application help strings, which both started with Enable 😊

0.2.2

  • Bugfix courtesy of @bielern. Fix for a bug which was preventing the serverextension from loading from a jupyterhub-spawned singleuser notebook server
  • Alterations to the in-repo conda recipe, to use git versioning & build number

0.2.1

  • Fix bug introduced in bc2f8b821b2164823cbba4e85d5e921dfd484b11, which prevented disabling nbextensions when using notebook versions < 4.2. Add test to ensure that a disabled nbextension's js doesn't load, rather than just checking json config file.

0.2.0

  • Use jupyter_contrib_core package for notebook compatibility shims and some testing utilities.
  • Automatically enable configurator's own nbextensions when running the app.
  • Replace references to CI and other services attached to jcb91 in favour of Jupyter-contrib repository versions, where possible.

0.1.1

Remove tests dependency on ipython_genutils

0.1.0

First public release!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].