Skip to main content

Conveyor

Build Status

Compute and use Jupyter notebook cell outputs in other notebooks and scripts with just a couple lines of code.

Use Cases

  • Split ordered steps across multiple notebooks, picking up the most recent state information with each new notebook
  • Prototype and organize workflows entirely in Jupyter notebooks without having to manage script exports
  • Improve performance by reducing overheads from notebook servers and unused code cells

Requirements

Conveyor currently only supports Jupyter notebooks written in Python. It is important to ensure that you have the version of Python (and any dependencies) used in your notebooks also installed locally, or on the machine using this library.

Examples

For quick and simple access to values in a prior notebook:

conveyor.run_notebook("conveyor/examples/Sample Calculations I.ipynb", import_globals=True)

# all notebook globals pushed to conveyor.nbglobals with import_globals flag
from conveyor.nbglobals import x, y, z, fig

print(y)

Conveyor can also provide you with any information available in a prior Jupyter workspace.

results = conveyor.run_notebook("conveyor/examples/Sample Calculations I.ipynb")

# Cells are zero-indexed, only code cells are counted
code_cell_idx = 1

# Get a cell's source code
code = results[code_cell_idx]['code']

# Get a cell result
cell_result = results[code_cell_idx]['result']

# Get cell stdout
cell_stdout = results[code_cell_idx]['stdout']

# To get any variable available in notebook
x = results.getvar('x')

There are options for running notebooks that can be used to optimize notebook execution, or stitch notebooks together in pipelines.

from conveyor.multinb import Pipeline
...
data_processing = Pipeline()
data_processing.add_notebook(filename="conveyor/examples/load_data.ipynb", carry_vars=['df'])
data_processing.add_notebook(filename="conveyor/examples/process_data.ipynb", 
    carry_vars=['magic_number'], start_cell_idx=3)

# Add custom intermediary steps
def transform_magic(from_state):
    to_state = dict()
    to_state['transformed_magic_number'] = -1 * from_state['magic_number']
    return to_state

data_processing.add_transform(transform_magic)

# Get output of selected variables from each stage
results = data_processing.run()

Installation

This package is available on pypi. Install it using pip with

pip install jupyter-conveyor

Conveyor is only compatible with Python 3.5 and above.

Documentation

See the docs folder, or read them here.

Metadata

Release files for jupyter-conveyor 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-conveyor 0.0.3
File Size Uploaded
jupyter-conveyor-0.0.3.tar.gz 7.7 kB Details

Release files / jupyter-conveyor-0.0.3.tar.gz

Download URL jupyter-conveyor-0.0.3.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9fb17956e80ad54eb87bdf63110a596dd94907cd30d75b89e4eae70c2b0ef394
BLAKE2b-256 checksum
How to use checksums
e19ebb326469b099873d90f561582b84e2468ea95bef60acf44bc8916fba7499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.0.3 This release

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page