Skip to content
This repository has been archived by the owner on May 9, 2022. It is now read-only.

Commit

Permalink
Including the .js file
Browse files Browse the repository at this point in the history
  • Loading branch information
fferegrino committed Jul 22, 2018
1 parent bee3711 commit 2f4e6e9
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 3 deletions.
13 changes: 13 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# exclude from ANY directory
global-exclude *.ipynb
global-exclude *.py[cod]
global-exclude __pycache__
global-exclude .git
global-exclude .ipynb_checkpoints
global-exclude .DS_Store
global-exclude *.sh

# explicit includes
include README.md
include LICENSE
include jupygit/static/*
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,36 @@

# jupygit
Integrating Jupyter Notebooks to a git workflow... (at least an attempt 🤞)

[![CircleCI](https://circleci.com/gh/fferegrino/jupygit.svg?style=svg)](https://circleci.com/gh/fferegrino/jupygit) [![PyPI](https://img.shields.io/pypi/v/jupygit.svg)](https://pypi.org/project/jupygit/)

Integrating Jupyter Notebooks to a git workflow.

#### First of all: is this a *hack*?
**yes, yes it is**.

### 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:

1. Rename 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.
2. 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.
3. Creates a copy of `Awesome-jupygit___.ipynb` but with the original name `Awesome.ipynb`, this copy is clean, no outputs and no `execution_counts`, we'll call this the *"clean"* file.
4. Now is your turn to commit `Awesome.ipynb`, the *"clean"* file to source control!

Are you done pushing things to Git? Now press the **git** button again and the extension will:

1. Delete the file `Awesome.ipynb` (do not worry! your kernel and work is safe in the *"dirty"* file).
2. Rename `Awesome-jupygit___.ipynb` to `Awesome.ipynb` so that you can resume your work where you left it before being a good human and using source control.
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
long_description = fh.read()

# Package version
VERSION = "0.1.1"
VERSION = "0.1.2"

class VerifyVersionCommand(install):
"""Custom command to verify that the git tag matches our version"""
Expand All @@ -32,8 +32,8 @@ def run(self):
description="Prepare your Notebooks to be pushed to GitHub",
long_description=long_description,
long_description_content_type="text/markdown",
packages=find_packages(),
include_package_data=True,
packages=find_packages(),
cmdclass={
'verify': VerifyVersionCommand,
}
Expand Down

0 comments on commit 2f4e6e9

Please sign in to comment.