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.
-
Add cell metadata to your Jupyter Notebook: Add an
exercisekey (default, can be changed) to the metadata (JSON); give it values (tags) on which to create Sub-Notebooks{ "exercise": "task" } // another cell { "exercise": "solution" }
-
Use
--keepand--removeflags 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:
--keepand--removeparameters 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 allwill remove all cells except those for which a--keepvalue is specified (--keep allis the default) - Stdin/Stdout: If no output file is given with
-o/--output, the resulting Notebook will be printed tostdout; if no input file as a parameter is given, the input Notebook will be read fromstdin(good for Linux-like daisy-chaining of tools) - Change Basekey: In the above example, the cell meta data key of discrimination is
exercisewhich 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)
| File | Size | Uploaded | |
|---|---|---|---|
| notebook_splitter-1.5.tar.gz | 3.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|