Is it possible to halt execution of a Jupyter notebook using papermill?

1.6k Views Asked by At

I have a set-up whereby I have a few Jupyter notebooks that are parameterised so I can run them from another notebook.

I'm using the papermill module to do this which is quite convenient. The simplest way of running looks something like this

path = '/path/to/notebook.ipynb'
pm.execute_notebook(
   path,
   path,    
)

What I would now like is to have the ability of halting execution from within the notebook being run if certain conditions are not met.

Is there a way of doing this with papermill and, if not, is there another module that can do this?

2

There are 2 best solutions below

0
On

I would just use assert not failure_condition, "My condition failed" inside the notebook to force an exception to be raised. This will halt execution and raise an exception that papermill will wrap in a PapermillExecutionError in the parent process which called pm.execute_notebook.

1
On

You can raise either SystemExit(0) or SystemExit('') directly or via sys.exit(0). Papermill is designed to ignore these errors: https://github.com/nteract/papermill/pull/449