Skip to main content

A framework for user-friendly widgets and tools in Jupyter Notebook.

Project description

NBTools

NBTools is a framework for creating user-friendly Jupyter notebooks that are assessible to both programming and non-programming users alike. The framework provides:

  • A widget and decorator which can transform any Python function into an interactive user interface.
  • A toolbox interface for encapsulating and adding new computational steps to a notebook.
  • Flexible theming and APIs to extend the NBTools functionality.
  • A WYSWYG editor for markdown cells (provided as part of the accompanying juptyter-wyswyg package).

NBTools was developed as part of the GenePattern Notebook environment. GenePattern Notebook also serves as an example of how NBTools can be extended and applied to a specific domain: in its case, bioinformatics.

Installation

NBTools is available through PIP and conda. Just run one of the following commands.

pip install nbtools

or

conda install -c genepattern nbtools

If using Jupyter Notebook version <= 5.2, you will need to execute to additional commands to install and enable the nbextension. This is not necessary in Jupyter 5.3+.

jupyter nbextension install --py nbtools

jupyter nbextension enable --py nbtools

Getting Started

Let's start by writing a simple Hello World function and turning it into an interactive widget inside a Jupyter notebook. Go ahead and install NBTools, launch Jupyter and open a new, blank notebook.

Next, let's write the function. The function below accepts a string and prints a brief hello message. By default, the message addresses the world. For good measure we will also add a docstring to document the function.

def say_hello(to_whom='World'):
    """Say hello to the world or whomever."""
    print('Hello ' + to_whom)

This is pretty basic Python and hopefully so far everything is familiar. Next we will turn this function into an interactive widget with just an import statement and one line of code. Update the code to what is shown below and execute the cell.

import nbtools

@nbtools.build_ui
def say_hello(to_whom='World'):
    """Say hello to the world or whomever."""
    print('Hello ' + to_whom)

You should now see a widget containing a web form. This form will prompt for the value of the to_whom parameter. The docstrong will also appear as a description near the top of the widget. Go ahead and change the to_whom value or just leave it as "World," then click the "Run" button. This will execute the function and print the results below the widget. Meanwhile, the form will also collapse, making more room on your screen.

With the push of a button, you've ran the say_hello function!

This is exciting, but it is far from the only feature of the NBTools framework. You can edit markdown cells using a WYSIWYG editor, customize how your function displays, chain together multiple related functions, make widgets from existing third-party methods, create a library of interactive tools (just click the Tools button on the toolbar and you will see say_hello has already added itself) and more! Just see the documentation links below.

Features

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

nbtools-19.9.1.tar.gz (60.2 kB view details)

Uploaded Source

Built Distribution

nbtools-19.9.1-py3-none-any.whl (120.9 kB view details)

Uploaded Python 3

File details

Details for the file nbtools-19.9.1.tar.gz.

File metadata

  • Download URL: nbtools-19.9.1.tar.gz
  • Upload date:
  • Size: 60.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for nbtools-19.9.1.tar.gz
Algorithm Hash digest
SHA256 91fc4b3ab0f738ce8bcd20c3fd71c563e58b334b0e222b6b6f85acba3fd9af94
MD5 dc8b8bd7332e1c48ccc8a2183a9b9d26
BLAKE2b-256 ddeb6d3d8cf1560bf4d5b7b70479ac92e19b696e948a5b0f9963340d7e79c4db

See more details on using hashes here.

File details

Details for the file nbtools-19.9.1-py3-none-any.whl.

File metadata

  • Download URL: nbtools-19.9.1-py3-none-any.whl
  • Upload date:
  • Size: 120.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for nbtools-19.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8f05330a3e73a076ada2effccf0c793a6bf772110c86ee3a74b7f491a5244ab
MD5 dbfc4e8af45a136f17f57a6d51a6f7ed
BLAKE2b-256 537c447667da1dc07b4bd8bae76ee8d17b3d53be60967834bde733b32a77f0cf

See more details on using hashes here.

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