Map Reduce for Notebooks
Project description
Papermill is a tool for parameterizing, executing, and analyzing Jupyter Notebooks.
The goals for Papermill are:
Parametrizing notebooks
Executing and collecting metrics across the notebooks
Summarizing collections of notebooks
Installation
pip install papermill
In-Notebook bindings
Usage
Parameterizing a Notebook.
To parameterize your notebook designate a cell with the tag parameters. Papermill looks for the parameters cell and replaces those values with the parameters passed in at execution time.
Executing a Notebook
The two ways to execute the notebook with parameters are through the Python API and through the command line interface.
Executing a Notebook via Python API
import papermill as pm
pm.execute_notebook(
notebook_path='path/to/input.ipynb',
output_path='path/to/output.ipynb',
parameters=dict(alpha=0.6, ratio=0.1)
)
Executing a Notebook via CLI
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
Recording Values to the Notebook
Users can save values to the notebook document to be consumed by other notebooks.
Recording values to be saved with the notebook.
### notebook.ipynb
import papermill as pm
pm.record("hello", "world")
pm.record("number", 123)
pm.record("some_list", [1,3,5])
pm.record("some_dict", {"a":1, "b":2})
Users can recover those values as a Pandas dataframe via the the read_notebook function.
### summary.ipynb
import papermill as pm
nb = pm.read_notebook('notebook.ipynb')
nb.dataframe
Displaying Plots and Images Saved by Other Notebooks
Display a matplotlib histogram with the key name “matplotlib_hist”.
### notebook.ipynb
# Import plt and turn off interactive plotting to avoid double plotting.
import papermill as pm
import matplotlib.pyplot as plt; plt.ioff()
from ggplot import mpg
f = plt.figure()
plt.hist('cty', bins=12, data=mpg)
pm.display('matplotlib_hist', f)
Read in that above notebook and display the plot saved at “matplotlib_hist”.
### summary.ipynb
import papermill as pm
nb = pm.read_notebook('notebook.ipynb')
nb.display_output('matplotlib_hist')
Analyzing a Collection of Notebooks
Papermill can read in a directory of notebooks and provides the NotebookCollection interface for operating on them.
### summary.ipynb
import papermill as pm
nbs = pm.read_notebooks('/path/to/results/')
# Show named plot from 'notebook1.ipynb'
# Accepts a key or list of keys to plot in order.
nbs.display_output('train_1.ipynb', 'matplotlib_hist')
# Dataframe for all notebooks in collection
nbs.dataframe.head(10)
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 papermill-0.8.1.tar.gz
.
File metadata
- Download URL: papermill-0.8.1.tar.gz
- Upload date:
- Size: 31.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1ffbe5fc750e4e29e14fc6809b3533e9122afef85f551791523aa44cd82eba3 |
|
MD5 | 85c32f3e5da212e231aecdf2ae7d9adc |
|
BLAKE2b-256 | 304337deb77283485157ba4f580424c9588b6ca4718b3326d830205f825757d5 |
File details
Details for the file papermill-0.8.1-py2-none-any.whl
.
File metadata
- Download URL: papermill-0.8.1-py2-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a0c4a6140fca7d8860aa1b075d6b23e5c85f7669c6bd85e27c06a770419d71 |
|
MD5 | 136cbc8d942494091bf8f64691d71fdf |
|
BLAKE2b-256 | 357dfcdcdba46f99b50453a6809332a57ac7878d064be7af7efdd2bc612d56e8 |