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.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d96f06f05e1053bd9f9e0d2f3c4e1ba9d69ad8e04fcac6b6c3866e08d78ef9f |
|
MD5 | bf67e016f55273df50917310e85453ae |
|
BLAKE2b-256 | 54041ed9dde8b0483da3b3b6e405904c052d250a4fb43b3a690ebc7e532cf979 |
Hashes for enforce_notebook_run_order-1.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2c5613366f8c398ebf46622393b176c60b8400dfc8f05edf50fec795545d0ac |
|
MD5 | 4efa3bbaf961f461f702472a9a587133 |
|
BLAKE2b-256 | c8c3f340409488eb14b8027af79513060cec3315e18457ee11dba98bc55c2f48 |