No project description provided
Project description
enforce-notebook-run-order
Enforce the run order of Jupyter notebooks.
Jupyter notebooks are great for interactive data analysis. However, when they can encourage a bad habit: running cells out of order. This can lead to notebooks being committed to the repository in a state where they don't run from top to bottom, and other collaborators may receive different results when running the notebook from top to bottom.
enforce-notebook-run-order
enforces the run order of a notebook by
raising an exception if any cells are run out of order.
Installation
enforce-notebook-run-order
can be installed via pip:
pip install enforce-notebook-run-order
It can also be set up as a pre-commit hook. See the pre-commit hook section for more details.
Usage
enforce-notebook-run-order
can be used as a standalone script, or as a
pre-commit hook.
Standalone
To use enforce-notebook-run-order
as a standalone script, simply run
it with the path to the notebook(s) you want to check:
nbcheck my_notebook.ipynb my_other_notebook.ipynb
Or point it to a directory to check all notebooks in that directory:
nbcheck my_notebooks/
If no paths are specified, nbcheck
will check all notebooks in the
current directory.
You can also use the full enforce-notebook-run-order
command, but the
nbcheck
command is provided as a convenience.
pre-commit hook
To use enforce_notebook_run_order
as a pre-commit hook, add the
following to your .pre-commit-config.yaml
:
repos:
- repo: https://github.com/christopher-hacker/enforce-notebook-run-order
rev: 1.4.1
hooks:
- id: enforce-notebook-run-order
disabling output checks
By default, enforce-notebook-run-order
will check that the output of
each cell matches the output of the previous run. This will catch cases
where a cell is run out of order, but the execution count is still
sequential. However, this can be problematic if the output of a cell
changes between runs, such as when using random numbers. It can also be
problematic if the notebook runs for a long time.
There are three ways to disable output checks:
-
Disabling running all notebooks using the
--no-run
flag:nbcheck --no-run my_notebook.ipynb
-
Disabling running a single notebook using the
no-run
marker in the first cell of the notebook:# no-run print("This notebook will not be run")
-
Disabling output checks for a single cell using the
no-check-output
marker:# no-check-output print("This cell will be run, but its output will not be checked")
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
Hashes for enforce_notebook_run_order-1.5.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16fb8ce55478ec4af4275958e6923756326729db352e7e2f2d9ebdc705afdeea |
|
MD5 | c376db0f1051025e6ac079b1a82a1397 |
|
BLAKE2b-256 | 829950be1d50ba8a819232396114e7e20dc03b5b1ce9efad2f033fe07d6ab12b |
Hashes for enforce_notebook_run_order-1.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bd62dbaf1f7972cb4a27f52abe46398a0d4067fe14dbb8de7f98537c8af9380 |
|
MD5 | b18fcee55c8d648f8577ed0b5e977e01 |
|
BLAKE2b-256 | f8448ebec6069fcd906fd8df45ad42e9f6609eb805e9b9a9bec576d45bc4ad58 |