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 cat
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).
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.
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