Notebook Executors

Ploomber currently supports two notebook executors:

Papermill(default)

Papermill allows you to parameterizing, executing, and analyzing Jupyter notebooks. By default, if the executor argument is not specified in NotebookRunner, Ploomber will use Papermill to execute notebooks. Additionally, you can pass the following Papermill arguments in executor_params while using NotebookRunner.

Note: When migrating from one executor to another, make sure to check the parameters passed in executor_params, as different executors might have different arguments and functionalities.

Sample pipeline

tasks:
    # By default, papermill engine is used for executing the scripts
    # source is the code you want to execute (.ipynb also supported)
  - source: get.py
    # products are task's outputs
    product:
      # scripts generate executed notebooks as outputs
      nb: output/1-get.html
      # you can define as many outputs as you want
      data: output/raw_data.csv
    # Selecting the executor for notebook
    executor: papermill
    # Executor params: Here passed to papermill
    executor_params:
        log_output: True

Ploomber-Engine

Ploomber-Engine is a notebook executor developer by the Ploomber team with better support for debugging and deployment. You can use Ploomber-Engine with Ploomber by setting the executor argument to ploomber-engine in NotebookRunner. Additionally, you can pass the following arguments in executor_params while using NotebookRunner with ploomber-engine.

Sample pipeline

tasks:
    # By default, papermill engine is used for executing the scripts
    # source is the code you want to execute (.ipynb also supported)
  - source: get.py
    # products are task's outputs
    product:
      # scripts generate executed notebooks as outputs
      nb: output/1-get.html
      # you can define as many outputs as you want
      data: output/raw_data.csv
    # Selecting the executor for notebook
    executor: ploomber-engine
    # Executor params: Here passed to Ploomber-Engine
    executor_params:
        log_output: True