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.3.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.4.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b73b235d87fd19129c3b30fa7adb0b433463e52a9660076a43c69a1ef487e8e |
|
MD5 | 0de579ddd3a6f3071825207b249a5b25 |
|
BLAKE2b-256 | d76fc26d59d4695ef56f2da466d1c887882522d4ebfb0e63a086af954b475de7 |
Hashes for enforce_notebook_run_order-1.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2f0f8893e729874563483571856a4902c02f2d2a82656262210be98d626c396 |
|
MD5 | b14bcd574378055b993d9b09a2652357 |
|
BLAKE2b-256 | 1e79b2e2690400dddfa7233f6a8c362e1690f3c0a83cb32e752ef6f9483b22a9 |