Script for stripping output from ipython/jupyter scripts.
Originally from http://stackoverflow.com/questions/18734739/using-ipython-notebooks-under-version-control/20844506
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 catTo 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).
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.pywill use it rather than the system one.
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