ipynb_filter.py
cacfd481
 #!/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 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"]