nbmanips allows you easily manipulate ipynb files
Project description
nbmanips
A collections of utilities to manipulate IPython/Jupyter Notebooks via a python script.
Usage/Examples
Basic usage
A simple example of using nbmanips:
from nbmanips import Notebook
# Read ipynb file
nb = Notebook.read_ipynb("my_notebook.ipynb")
# delete empty cells
nb.delete("empty")
# save ipynb file
nb.to_ipynb("new_notebook.ipynb")
Examples of operations you can perform on a Notebook:
replace
: Replace matching text in the selected cellstag
: Add metadata to the selected cellserase
: Erase the content of the selected cellsdelete
: Delete the selected cellskeep
: Kepp the selected cells
Selectors
To select cells on which to apply the previous operations, you can use:
- The cell number
nb.show(0)
- A slice object
selected_cells = slice(1, 6, 2)
nb.show(selected_cells)
-
A predefined selector. Available predefined selectors are the following:
code_cells
/markdown_cells
/raw_cells
: Selects cells with the given typecontains
: Selects Cells containing a certain text.is_empty
/empty
: Selects empty cellshas_output
: Checks if the cell has any outputhas_output_type
: Select cells that have a given output_typehas_slide_type
: Select cells that have a given slide typeis_new_slide
: Selects cells where a new slide/subslide starts
# Show Markdown Cells
nb.show('markdown_cells')
# Show Cells containing the equal sign
nb.show('contains', '=')
- A function that takes a Cell object and returns True if the cell should be selected
# Show Cells with length > 10
nb.show(lambda cell: len(cell.source) > 10)
- A list of Selectors
# Show Empty Markdown Cells
nb.show(['markdown_cells', 'is_empty'])
# Show Markdown or Code Cells
nb.show(['markdown_cells', 'code_cells'], type='or')
Export Formats
You can export the notebooks to these formats:
- to_ipynb
- to_html
- to_slides (using reveal.js)
- to_md (to markdown)
- to_py (to python)
- to_text (textual representation of the notebook)
Slide manipulations
You can manipulate the slides by tagging which cells to keep and which to skip. The following actions are available:
- set_slide
- set_subslide
- set_skip
- set_fragment
- set_notes
A neat trick is to use auto_slide
method to automatically create slides out of your notebook:
from nbmanips import Notebook
# Read ipynb file
nb = Notebook.read_ipynb("my_notebook.ipynb")
# Automatically create slides
nb.auto_slide()
# Export to Reveal.js slides (HTML)
nb.to_slides("new_slides.slides.html", theme='beige')
Roadmap
-
Add Custom Templates
-
Add CLI
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.