Skip to main content

A Python library that parses Jupyter notebook cells

Project description

jupyter-notebook-parser

A Python library to parse cell contents from Jupyter notebooks

Installation

pip install jupyter-notebook-parser

Usage

Parser

from jupyter_notebook_parser import JupyterNotebookParser


parsed = JupyterNotebookParser('my_notebook.ipynb')

parsed.get_all_cells()  # returns List[Dict], each Dict is a notebook cell

parsed.get_markdown_cells()  # returns List[Dict], each Dict is a markdown cel
parsed.get_markdown_cell_indices()  # returns List[int], each is a markdown cell's index
parsed.get_markdown_cell_sources()  # returns List[str], each is a markdown cell's text

parsed.get_code_cells()  # returns List[Dict], each Dict is a code cell
parsed.get_code_cell_indices()  # returns List[int], each int is a code cell's index
parsed.get_code_cell_sources()  # returns List[SourceCodeContainer]

source = parsed.get_code_cell_sources()[0]
source.raw_source  # str
source.source_without_magic  # str (all ipython magics excluded)
source.magics  # Dict[int, str] (all magics, from line number to magic text)

Rewriter

from jupyter_notebook_parser import JupyterNotebookParser
from jupyter_notebook_parser import JupyterNotebookRewriter


parsed = JupyterNotebookParser('my_notebook.ipynb')
rewriter = JupyterNotebookRewriter(parsed_notebook=parsed)

rewriter.replace_source_in_code_cell(index=5, new_source='print(2)')

Source code container

from jupyter_notebook_parser import SourceCodeContainer


container = SourceCodeContainer('a = 2\n%timeit b = 2 ** 10\nprint(b)')
container.raw_source  # same as the input
container.source_without_magic  # 'a = 2\n b = 2 ** 10\nprint(b)'
container.magics  # {1: '%timeit'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_notebook_parser-0.1.4.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

jupyter_notebook_parser-0.1.4-py2.py3-none-any.whl (5.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jupyter_notebook_parser-0.1.4.tar.gz.

File metadata

File hashes

Hashes for jupyter_notebook_parser-0.1.4.tar.gz
Algorithm Hash digest
SHA256 5cc12f6aa54ff73ad28dd29b5e537c8eb943dde4651417fc3697067eeb58faaa
MD5 3aef2679dd30d412c4bac2bfcc03d878
BLAKE2b-256 f0cbe30e3691a8640acc7d22fba70423d8f4b9e726616f9fbc3c4c09ddc98cd9

See more details on using hashes here.

File details

Details for the file jupyter_notebook_parser-0.1.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_notebook_parser-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 27b3b67cf898684e646d569f017cb27046774ad23866cb0bdf51d5f76a46476b
MD5 c83eecaa008c22c3373d7a3a971f5fe2
BLAKE2b-256 f4a461adb19f3c74b0dc0e411de4f06ebef564b1f179928f9dffcbd4b378f2ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page