Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 1.33 KB

README.md

File metadata and controls

62 lines (37 loc) · 1.33 KB

PY2NB: Python To Notebook Converter

This is a small utility for turning python scripts into jupyter notebooks and convert module-level multiline (triple quote) string literals into markdown cells.

Why?

I wanted a tool to create user examples that can be executed as normal python scripts so that they can be copy-and-pasted easily and can be rendered as notebook for better readability (e.g nice styling, results embedded).

Also,

  • Notebooks are nice to look at but slow to write
  • Notebooks does not play well with version control

Install

python setup.py install

Usage

To convert a python script into a notebook:

python -m py2nb input.py output.ipynb

Additional commandline not from this package

Execute a notebook:

ipython nbconvert --to=notebook --execute input.ipynb

Convert a notebook to a HTML:

ipython nbconvert --to=html input.ipynb

Samples

See "samples" directory.

How?

Uses python tokenize (builtin tokenizer library) for tokenization. String literals with triple quote at column zero are converted into a comment token with special <markdowncell> and <codecell> to feed into the python importer in IPython version 3. The processed tokens are untokenized using the tokenize module so that untouched line looks exactly the same as the input.