An open API service indexing awesome lists of open source software.

https://github.com/answerdotai/execnb

Execute a jupyter notebook, fast, without needing jupyter
https://github.com/answerdotai/execnb

answerai answerdotai fastai jupyter nbdev notebook

Last synced: about 1 month ago
JSON representation

Execute a jupyter notebook, fast, without needing jupyter

Awesome Lists containing this project

README

          

# execnb

[![CI](https://github.com/fastai/execnb/actions/workflows/test.yaml/badge.svg)](https://github.com/fastai/execnb/actions/workflows/test.yaml)
[![Deploy to GitHub
Pages](https://github.com/fastai/execnb/actions/workflows/deploy.yaml/badge.svg)](https://github.com/fastai/execnb/actions/workflows/deploy.yaml)

## Install

Either:

pip install execnb

or if you use conda:

conda install -c fastai execnb

(You can replace `conda` with `mamba` in the line above if you have
mamba installed.)

## How to use

Use
[`CaptureShell`](https://AnswerDotAI.github.io/execnb/shell.html#captureshell)
to run Jupyter code and capture notebook outputs, without running a
Jupyter server (or even having it installed):

``` python
from execnb.nbio import *
from execnb.shell import *
from fastcore.utils import *
```

``` python
s = CaptureShell()
s.run('1+1')
```

[{'data': {'text/plain': ['2']},
'metadata': {},
'output_type': 'execute_result',
'execution_count': 1}]

To execute a notebook and save it with outputs filled in, use
[`CaptureShell.execute`](https://AnswerDotAI.github.io/execnb/shell.html#captureshell.execute):

``` python
try:
s.execute('../tests/clean.ipynb', 'tmp.ipynb')
print(read_nb('tmp.ipynb').cells[1].outputs)
finally: Path('tmp.ipynb').unlink()
```

[{'name': 'stdout', 'output_type': 'stream', 'text': ['1\n']}, {'data': {'text/plain': ['2']}, 'execution_count': 3, 'metadata': {}, 'output_type': 'execute_result'}]

You can also execute notebooks from the command line with
[`exec_nb`](https://AnswerDotAI.github.io/execnb/shell.html#exec_nb):

``` python
!exec_nb --help
```

usage: exec_nb [-h] [--dest DEST] [--exc_stop] [--inject_code INJECT_CODE]
[--inject_path INJECT_PATH] [--inject_idx INJECT_IDX]
[--verbose]
src

Execute notebook from `src` and save with outputs to `dest`

positional arguments:
src Notebook path to read from

optional arguments:
-h, --help show this help message and exit
--dest DEST Notebook path to write to (default: )
--exc_stop Stop on exceptions? (default: False)
--inject_code INJECT_CODE Code to inject into a cell
--inject_path INJECT_PATH Path to file containing code to inject into a cell
--inject_idx INJECT_IDX Cell to replace with `inject_code` (default: 0)
--verbose Show stdout/stderr during execution (default: False)