Script for stripping output from ipython/jupyter scripts
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
ipynb_output_filter.py Filter ExecuteTime metadata too Nov 30, 2016

README.md

ipynb_output_filter

Script for stripping output from ipython/jupyter scripts.

Originally from http://stackoverflow.com/questions/18734739/using-ipython-notebooks-under-version-control/20844506

Usage

Let us assume that the script is saved to ~/bin/ipynb_output_filter.py, and that it is executable (otherwise: chmod +x ~/bin/ipynb_output_filter.py).

Then, create the file ~/.gitattributes with the following content

*.ipynb    filter=dropoutput_ipynb

and run the following commands:

git config --global core.attributesfile ~/.gitattributes
git config --global filter.dropoutput_ipynb.clean ~/bin/ipynb_output_filter.py
git config --global filter.dropoutput_ipynb.smudge cat

Disable/enable on specific repo(s)

To disable the output filtering for a specific git repository, simply create inside it a file .git/info/attributes, with

**.ipynb filter=

as content. Clearly, in the same way it is possible to apply filtering //only// on specific repo(s).

Use specific version of python

If the version of python to be used (i.e. the one with access to IPython libraries) is not located at /usr/bin/python, it can be specified with the filter.dropoutput_ipynb.clean setting. For instance under OSX, if there is a version of Python installed via homebrew, the following:

git config --global filter.dropoutput_ipynb.clean python ~/bin/ipynb_output_filter.py

will use it rather than the system one.

Run in given directory

The simplest way to pick up a specific module version (in particular, of the nbformat module from iPython/Jupyter, on which this script relies) is to have ipynb_output_filter run from the directory it is located inside.

In order to do so, ipynb_output_filter supports a --rundir argument, which can be used as follows:

ipynb_output_filter.py --rundir ~/git_repos/nbconvert