Prepare your Notebooks to be pushed to Git
Project description
jupygit
Integrating Jupyter Notebooks to a git workflow.
Installation.
(I highly recommend installing this into a conda environment) To install the extension and enable it just run the following commands:
pip install jupygit
jupyter serverextension enable --py jupygit --sys-prefix
jupyter nbextension install --py jupygit --sys-prefix
jupyter nbextension enable --py jupygit --sys-prefix
Why?
I've been working with Jupyter Notebooks for a while, and I always felt something dying inside me everytime I pushed a massive file to GitHub, only to have it overwritten by my next huge commit causing me to have unreadable diffs. I decided to create this extension that, as I previously stated, is a hack.
How? (and usage)
Let's say you are working on a file called Awesome.ipynb
. What this extension will do once you press shiny new git button on your Notebook is:
- Shows a nice modal with an encouraging message.
- Renames your current file to
Awesome-jupygit___.ipynb
using Jupyter's API so that your kernel stays alive and you do not lose any work, we'll call this the "dirty" file. - Adds the pattern
*-jupygit___.ipynb
to your .gitignore file, so that your "dirty" file does not show up as a new file in your git repository. - Creates a copy of
Awesome-jupygit___.ipynb
but with the original nameAwesome.ipynb
, this copy is clean, no outputs and noexecution_counts
, we'll call this the "clean" file. - Now is your turn to commit
Awesome.ipynb
, the "clean" file to source control!
Are you done pushing things to Git? Now close the dialog and this will happen:
- Delete the file
Awesome.ipynb
(do not worry! your kernel and work is safe in the "dirty" file). - Rename
Awesome-jupygit___.ipynb
toAwesome.ipynb
so that you can resume your work where you left it before being a good human and using source control.
Project details
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 jupygit-0.4.0.tar.gz
.
File metadata
- Download URL: jupygit-0.4.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f5714986a092a28ee4d20fbac4a156b280c0278c200b29bcd2d37e88cd7030f |
|
MD5 | 52de9f4ad47ebe667bec3dbdad5b59e8 |
|
BLAKE2b-256 | b95d894b59d0e513b719f57c55747ebecde5eb660ec4dc5a9940ec65f5e63472 |
File details
Details for the file jupygit-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: jupygit-0.4.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 439ac30e5051dc8001f1a18828d007c63e63e4f76a32168c44148a4617edbce5 |
|
MD5 | 83bf965bf5459183b4b8030dc25d1e75 |
|
BLAKE2b-256 | 6951f4894c78e21866190160ddce2fa78c3943bb91aa308bfdb8f748c3b2a79a |