Skip to main content

Jupyter Notebook Splitter

This tool splits a Jupyter Notebook into Sub-Notebooks depending on cell metadata. It converts a Master Notebook into a Teacher Notebook and a Student Notebook; or into a Slides Notebook, a Tasks Notebook, and a Solutions Notebook.

Installation

Although the Notebook Splitter is only a single file it can be installed via pip

pip install notebook-splitter

Usage

Overview

TL;DR: See notebook-splitter --help.

  1. Add cell metadata to your Jupyter Notebook: Add an exercise key (default, can be changed) to the metadata (JSON); give it values (tags) on which to create Sub-Notebooks

    {
        "exercise": "task"
    }
    // another cell
    {
        "exercise": "solution"
    }
    
  2. Use --keep and --remove flags of the Notebook Splitter to keep and remove cells with according tags; export it to the respective Notebook:

    notebook-splitter input.ipynb --keep task --remove solution   -o tasks.ipynb
    notebook-splitter input.ipynb --keep solution --remove task   -o solutions.ipynb
    notebook-splitter input.ipynb --remove task --remove solution -o slides.ipynb
    

Examples in Action

See the examples directory in this repository.

Options

  • Repeated Parameters: --keep and --remove parameters on the command line of the script can be given multiple times: --keep task --keep onlytask --remove solution
  • Remove All: As a special parameter value, --remove all will remove all cells except those for which a --keep value is specified (--keep all is the default)
  • Stdin/Stdout: If no output file is given with -o/--output, the resulting Notebook will be printed to stdout; if no input file as a parameter is given, the input Notebook will be read from stdin (good for Linux-like daisy-chaining of tools)
  • Change Basekey: In the above example, the cell meta data key of discrimination is exercise which is the default. With --basekey, this can be changed.

Limitations

The values to the --keep and --remove parameters create sets of values to keep and remove. One could implement this tool probably quite cleverly with set operations (with the added complication of the --remove all ). If you can, feel free to file a merge request!

Metadata

Release files for notebook-splitter 1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for notebook-splitter 1.5
File Size Uploaded
notebook_splitter-1.5.tar.gz 3.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for notebook-splitter 1.5
File Interpreter ABI Platform
notebook_splitter-1.5-py3-none-any.whl Python 3 none any Details

Total release size: 8.2 kB

Release files / notebook_splitter-1.5.tar.gz

Download URL notebook_splitter-1.5.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
03e7d3c119c684d859d5d2d6b06cf1f7b2ab35f7677d2461bf67847bdab96ec0
BLAKE2b-256 checksum
How to use checksums
00ae9b790b794d89e2d0c09f18385b1a2f01b526dd9461d448ef4efc84a1681b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

Release files / notebook_splitter-1.5-py3-none-any.whl

Download URL notebook_splitter-1.5-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d3e759ccbb007c6e413a08d8d99a3097efbb7c676ceb68051e1859ba8bbddfc
BLAKE2b-256 checksum
How to use checksums
707d19189674baa54a78da1def26f258f579c014560b70c2c35d7f3bc4f914df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

1.5 This release

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page