A framework for user-friendly widgets and tools in Jupyter Notebook.
Project description
nbtools
nbtools is a package for creating user-friendly Jupyter notebooks that are accessible to both programming and non-programming users. The package provides:
- A 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 WYSIWYG editor for markdown cells (provided as part of the accompanying
juptyter-wyswyg
package).
nbtools was developed as part of the GenePattern Notebook environment. This environment 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 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. Go ahead and install nbtools, launch Jupyter and open a new, blank notebook.
Once that's completed, let's write a basic function. The function below accepts a string and prints a brief 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 everything so far is familiar. Next, we will turn this function into an interactive widget with just an import statement and one line of code. Update your 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 docstring will also appear as a description near the top of the widget. Go ahead and change the to_whom
value, then click the "Run" button. This will execute the function and print the results below. Meanwhile, the form will also collapse, making more room on your screen.
With the push of a button, you've run the say_hello
function!
This is exciting, but it is far from the only feature of the nbtools package. 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nbtools-20.9.tar.gz
.
File metadata
- Download URL: nbtools-20.9.tar.gz
- Upload date:
- Size: 61.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49b7d05daa3cb6070fdf11d6ce29660435f71518554bf78b101970fec799bfa1 |
|
MD5 | da66b5bfdde349cfcf7a82e2621d23b2 |
|
BLAKE2b-256 | e7bae97f6d30a9ebc0f3982d726feef2b4b33c7db6b24ee7202a2fd22aca5919 |
File details
Details for the file nbtools-20.9-py3-none-any.whl
.
File metadata
- Download URL: nbtools-20.9-py3-none-any.whl
- Upload date:
- Size: 122.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f500289bf39475b0aadb1778cbbf97abfb69a2987394058004ca11a88cd6f5d |
|
MD5 | 401b8e92172bf2b3523375160a43f2f5 |
|
BLAKE2b-256 | 22d1adcf27c9e4228eb960f45668a59d230b8eb31304d2c529d27597d9510e4f |