Filter .ipynb (nbformat) files to improve integration with version control systems (VCS)
Project description
nbfilter
Filter .ipynb
(nbformat
) files to improve integration with version control systems (VCS), specifically git.
Setup
Install from PyPI:
pip install nbfilter
Use from the command line:
python -m nbfilter.clean < research.ipynb | sponge research.ipynb
Integrate into git
:
From your repository's root directory:
Run the following command to define a filter called ipynbfilter
in your .git/config
settings:
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 .ipynb
extension:
printf '*.ipynb filter=ipynbfilter\n' >> .gitattributes # Apply filter for all contributors
git add .gitattributes
or:
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
or:
git add --renormalize research.ipynb # (re-)apply filters to a single file
References / alternatives
-
Min RK's
nbstripout
gist that started it all (licensed as "Public Domain").git pre-commit hook for stripping output from IPython notebooks
-
nbstripout
is a PyPI-published package that provides all its functionality through anbstripout
console script. -
StackOverflow question: Using IPython notebooks under version control
-
Making Git and Jupyter Notebooks play nice uses
jq
instead of Python to do the JSON modifications, for the sake of speed. -
Jupyter notebooks and version control discusses alternatives to the
.ipynb
file format that would natively improvegit diff
'ing (specifically, YAML with some additional constraints).
License
Copyright (c) 2018 Christopher Brown. MIT Licensed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nbfilter-1.1.0.tar.gz
.
File metadata
- Download URL: nbfilter-1.1.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2948b56d817dbc0c8212f38dad921e5ddfd496a375ce749bc2dd1583655eb7cf |
|
MD5 | b78ccbd0766419cb806e1d4e860ede46 |
|
BLAKE2b-256 | c47719ef3e2a3790e94d7b2ce9fb04e2208e7238ddaee00355e9f3ba3387d2cb |
File details
Details for the file nbfilter-1.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: nbfilter-1.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d9ac488a5c33c5ecd00c3e182bdf8be73b04e687e28d51745d396c51c2ce4b1 |
|
MD5 | 52162df119da206efd6f8d41ded9127b |
|
BLAKE2b-256 | 9e9752286434d1f9c2ca46fb50bef1df74181e27eb24e7e6bf7ff86cc42388a7 |