Filter .ipynb (nbformat) files to improve integration with version control systems (VCS)
nbformat) files to improve integration with version control systems (VCS), specifically git.
Install from PyPI:
pip install nbfilter
Use from the command line:
python -m nbfilter.clean < research.ipynb | sponge research.ipynb
From your repository's root directory:
Run the following command to define a filter called
ipynbfilter in your
git config filter.ipynbfilter.clean 'python -m nbfilter.clean'
Then run one of the following command sequences to trigger it for all files with the
printf '*.ipynb filter=ipynbfilter\n' >> .gitattributes # Apply filter for all contributors git add .gitattributes
printf '*.ipynb filter=ipynbfilter\n' >> .git/info/attributes # Apply filter for just me
To apply it to files that are already under source control (for example, so that diffing subsequent changes produces more intelligible results):
git add --renormalize . # (re-)apply filters to all files currently under source control
git add --renormalize research.ipynb # (re-)apply filters to a single file
References / alternatives
nbstripoutgist that started it all (licensed as "Public Domain").
git pre-commit hook for stripping output from IPython notebooks
StackOverflow question: Using IPython notebooks under version control
Jupyter notebooks and version control discusses alternatives to the
.ipynbfile format that would natively improve
git diff'ing (specifically, YAML with some additional constraints).
Copyright (c) 2018 Christopher Brown. MIT Licensed.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size nbfilter-1.1.0-py2.py3-none-any.whl (4.0 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size nbfilter-1.1.0.tar.gz (3.6 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for nbfilter-1.1.0-py2.py3-none-any.whl