macros for Jupyter Notebooks
Project description
JPConvert
JPConvert is a preprocessor for Jupyter Notebooks. It may be used to split up Jupyter Notebooks based on macros, automatically set options, embed images and remove unnecessary metadata.
Quick Start
Install JPConvert:
pip install jpconvert
Imagine two code cells inside your notebook:
#jp-solution
a = a + 1
#jp-practice
a = ...
If you call JPConvert with the --practice
option, the first cell is removed and the second cell is kept:
a = ...
If you call JPConvert with the --solution
option, the first cell is kept and the second cell is removed:
a = a + 1
If no input file is specified, stdin
is used instead. If no output file is specified, stdout
is used instead. It is
probably a good idea to use nbstripout
with JPConvert to remove embedded output data:
python -m jpconvert input.ipynb --practice | nbstripout > output.ipynb
Setup
The preferred way to use JPConvert is in a virtual environment:
python -m venv venv
source venv/bin/activate
Use pip to download and install JPConvert. JPConvert requires requests
and python-magic
to embed images via HTTP.
Both packages are installed automatically by pip.
pip install jpconvert
Run JPConvert as a Python module:
python -m jpconvert <input> [<output>] [<options>]
Usage Guide
Macros and Output Types
JPConvert provides several macros to mark cells for a specific task. Only code cells with the macro matching the output options are kept.
cli option | description |
---|---|
--practice / -p |
keep cells containing #jp-practice |
--teaching / -t |
keep cells containing #jp-teaching |
--solution / -s |
keep cells containing #jp-solution |
Multiple macros can be used per cell. Macros themselves are removed from the code cells.
It is also possible to remove any cells without macros. Add --remove-without-macros
to the command line parameters
to activate this behavior.
Empty Cells, Empty Lines, Trailing Spaces
JPConvert automatically removes
- trailing spaces from lines,
- empty lines from the end of cells and
- empty cells.
This behavior can be disabled using the command line parameters
--no-strip-lines
,--keep-trailing
and--keep-empty
.
Readonly and Undeletable
JPConvert automatically adds readonly and undeletable flags to any cells that do not contain #jp-practice
. If you
want to protect the latter from writing as well, add #jp-readonly
or use #jp-practice-ro
. Users may undo these
changes, but at least they cannot accidentally delete or modify cells.
To disable this behavior, the command line parameters --no-force-readonly
and --no-set-undeletable
can be used.
Table of Contents
A table of contents is automatically inserted into all cells that contain the macro #jp-toc
. The entries are
automatically generated from headlines (lines starting with one or multiple #
) in markdown cells. Each entry consists
of the title and a reference that leads directly to the anchor tag of the heading.
Up to two conditionals can be added to control the table's depth. It uses the level of the heading (number of #
) for
filtering. The following example shows how to create a table of contents from level 2 to 5.
#jp-toc>=2<6
Embedding Images
Images can be embedded in markdown cells via the Jupyter user interface. JPConvert automatically embeds linked files
from both local disk and HTTP(S) sources, which simplifies notebook editing. Supported file types are png
, jpg
and
svg
.
JPConvert also embeds files that are displayed using HTML tags. These provide the ability to scale graphics as desired, while in markdown the size is determined only by the resolution.
Add the command line parameter --no-embed-images
to disable this behavior.
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 jpconvert-0.3.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5bd2acc373064bd9eaecfe8e02cf15c61827b14075c9ed9de2fd99c8a29146f |
|
MD5 | 38bbb285d5d0988b0b9f3c3555fab42c |
|
BLAKE2b-256 | 7876b64320557a198ed722548a05d2d61828c173acaf78fdeb3486e25618eedb |