diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..07d41ddf8202b9b6206ab3aad2fdf0b43225d78c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.ipynb filter=ipynb_filter diff --git a/ipynb_filter.py b/ipynb_filter.py new file mode 100644 index 0000000000000000000000000000000000000000..7165a27c72d2e207412be7e6b83585bc2fc69cf7 --- /dev/null +++ b/ipynb_filter.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +# `ipynb_filter.py`: +# This is a git filters that strips out the outputs and +# meta data of a Jupyer notebook using `nbconvert`. +# Execute the following line in order to activate this filter: +# python ipynb_filter.py +# +# The following line should be in `.gitattributes`: +# *.ipynb filter=ipynb_filter +# +# from github.com/basnijholt/ipynb_git_filters + +from nbconvert.preprocessors import Preprocessor + + +class RemoveMetadata(Preprocessor): + def preprocess(self, nb, resources): + nb.metadata = {"language_info": {"name":"python", + "pygments_lexer": "ipython3"}} + return nb, resources + + +if __name__ == '__main__': + # The filter is getting activated + import os + git_cmd = 'git config filter.ipynb_filter.clean "jupyter nbconvert --to notebook --config ipynb_filter.py --stdin --stdout"' + os.system(git_cmd) +else: + # This script is used as config + c.Exporter.preprocessors = [RemoveMetadata] + c.ClearOutputPreprocessor.enabled = True + c.ClearOutputPreprocessor.remove_metadata_fields = [ + "deletable", "editable", "collapsed", "scrolled"]