{ "info": { "author": "Antonio Feregrino", "author_email": "antonio.feregrino@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "\n# jupygit\n\n[![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/)\n\nIntegrating Jupyter Notebooks to a git workflow.\n\n### Installation. \n(I highly recommend installing this into a conda environment) To install the extension and enable it just run the following commands: \n\n```\npip install jupygit\njupyter serverextension enable --py jupygit --sys-prefix\njupyter nbextension install --py jupygit --sys-prefix\njupyter nbextension enable --py jupygit --sys-prefix\n```\n\n### Why? \nI'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.\n\n### How? (and usage)\nLet'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: \n\n 0. Shows a nice modal with an encouraging message. \n 1. 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.\n 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.\n 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.\n 4. Now is your turn to commit `Awesome.ipynb`, the *\"clean\"* file to source control!\n\nAre you done pushing things to Git? Now close the dialog and this will happen: \n\n 1. Delete the file `Awesome.ipynb` (do not worry! your kernel and work is safe in the *\"dirty\"* file). \n 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.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fferegrino/jupygit", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "jupygit", "package_url": "https://pypi.org/project/jupygit/", "platform": "", "project_url": "https://pypi.org/project/jupygit/", "project_urls": { "Homepage": "https://github.com/fferegrino/jupygit" }, "release_url": "https://pypi.org/project/jupygit/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Prepare your Notebooks to be pushed to Git", "version": "0.4.0" }, "last_serial": 4565941, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0d4c96ef4e615fcff400d572b2869cdb", "sha256": "762d5f395d762f0a4eb11c19f7424d9cc69c8c5a953f5fa16010d6dd11c41ba5" }, "downloads": -1, "filename": "jupygit-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0d4c96ef4e615fcff400d572b2869cdb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1152, "upload_time": "2018-07-22T11:32:54", "url": "https://files.pythonhosted.org/packages/fa/de/74b8ebe0735c5ce12ee970bf2c9928dd4856de5d53177d79a911ad7a5e00/jupygit-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2707daa72362dd590c6800bbfbd10986", "sha256": "a6e957d7fc2302e56a620005333c2fd8fbe2c942be2ba68bd02e90b40b081aa1" }, "downloads": -1, "filename": "jupygit-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2707daa72362dd590c6800bbfbd10986", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1170, "upload_time": "2018-07-22T11:32:55", "url": "https://files.pythonhosted.org/packages/6c/01/30742dfa91ad40f84a34b42dd98cbf8590c37762d76b871a4530727a14b3/jupygit-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bfb2c8a742aa76dc0bed77e7b88edfd1", "sha256": "441d9b5f6ece9489bae461354111d9ce7fe9e928e676b77cb89135979c91ba1a" }, "downloads": -1, "filename": "jupygit-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bfb2c8a742aa76dc0bed77e7b88edfd1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2602, "upload_time": "2018-07-22T11:51:51", "url": "https://files.pythonhosted.org/packages/e6/0a/95238953a82512c2bbaeb0adac22c991228b684cea05638cac538104d2f5/jupygit-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ddb85b96cc0946a97c55cadf42056da", "sha256": "06ec02b3b05bdcdc1b9477e3cd1be58783cb3a3caea7ddbc41e404b26473a267" }, "downloads": -1, "filename": "jupygit-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1ddb85b96cc0946a97c55cadf42056da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2249, "upload_time": "2018-07-22T11:51:52", "url": "https://files.pythonhosted.org/packages/06/a4/ec5a64dad84e5f2c144e3b2ad02d8ec0f2771152cb92b784a6b44dc75088/jupygit-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5223dfeeeea2d89231031c8477e734aa", "sha256": "da8dbdd26a2c9c71bbe8569ce45f020ba5d841142d1ce747a1f4375a7f1faac0" }, "downloads": -1, "filename": "jupygit-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5223dfeeeea2d89231031c8477e734aa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4669, "upload_time": "2018-07-22T12:27:27", "url": "https://files.pythonhosted.org/packages/b4/ab/ef3dfbeb27f41fcea8f03eaef47049752ffccc59527592fe0bbab5183c3e/jupygit-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43aed9e3ec145f868d524f2453e0db1f", "sha256": "f7600c5a0c30d98be1e010e52e408ae40d92fe1716507a10e99651a744025d26" }, "downloads": -1, "filename": "jupygit-0.1.2.tar.gz", "has_sig": false, "md5_digest": "43aed9e3ec145f868d524f2453e0db1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5065, "upload_time": "2018-07-22T12:27:28", "url": "https://files.pythonhosted.org/packages/09/17/3f06e7a6352b40e1d1fe05b8f60ac989b9100a4a5b42d2018b631d27c2d0/jupygit-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0ab2855b275061952c8276d4811b20e6", "sha256": "b3c9e6d2ffc513bd3f35b8b809d4a6ffde9727d93bdfd087d204886926fd63a1" }, "downloads": -1, "filename": "jupygit-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0ab2855b275061952c8276d4811b20e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4780, "upload_time": "2018-07-23T20:29:05", "url": "https://files.pythonhosted.org/packages/6c/df/5c984d8a0c12b4511fc5aa4fb6c581772bd9caa1511ef27e1a79265f9944/jupygit-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f6bffd62b1270f2e617a8c396ba9393", "sha256": "706ea4a2027722964699b32d3eb8f471c3639c40d42b5d505f335d1212821e10" }, "downloads": -1, "filename": "jupygit-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9f6bffd62b1270f2e617a8c396ba9393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5128, "upload_time": "2018-07-23T20:29:06", "url": "https://files.pythonhosted.org/packages/56/e4/031d00372c9da59cf4f9562a97c6b5fdd8ebea07995275631d2cd813892a/jupygit-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "31682db7be0cdaa031c608d880576f20", "sha256": "86dd11be6503cab4edfb3d86034df7ea659859fc897ef7e3dd85f23517cdcaf1" }, "downloads": -1, "filename": "jupygit-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "31682db7be0cdaa031c608d880576f20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4804, "upload_time": "2018-08-14T10:34:18", "url": "https://files.pythonhosted.org/packages/d3/bf/363a4ed7933db5d03a94782387c6d16e218518a7e5f5aac3c1a5f0732ad0/jupygit-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7990b7ff7b3a19add29bf9e6039289dc", "sha256": "2474f4d46a339fa182215f8ce90cd84c47109eacd18dc1ecacc189d7c2e9890f" }, "downloads": -1, "filename": "jupygit-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7990b7ff7b3a19add29bf9e6039289dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5182, "upload_time": "2018-08-14T10:34:19", "url": "https://files.pythonhosted.org/packages/13/63/b4b2a19af04b7ccbfb5c3bc5e04dd9a7ea6a8a2466129389bdae6d60d75b/jupygit-0.2.1.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a5d65881cf88e720765d75daadc73c2b", "sha256": "ca0e53d6e942bc5f8bbcc7099e04c8290b574773a6f9eb447ffbe2c70fa8287f" }, "downloads": -1, "filename": "jupygit-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a5d65881cf88e720765d75daadc73c2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5250, "upload_time": "2018-09-30T17:07:59", "url": "https://files.pythonhosted.org/packages/37/4a/ff9488aeda2ac2e171610a1a99950d772283db97eca5dcaefbcfc352cfde/jupygit-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9533d63c7a4f9b73456757f3d0ef952e", "sha256": "b30d8b2693613f0290e29ef894a1df98335e0d991203cac57d5e274ed34c4f34" }, "downloads": -1, "filename": "jupygit-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9533d63c7a4f9b73456757f3d0ef952e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5178, "upload_time": "2018-09-30T17:08:00", "url": "https://files.pythonhosted.org/packages/7e/9e/c1dd0e64e25ece9259eff97d8f52c42b276fbaa11c54700dd46e9625d0e5/jupygit-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "83bf965bf5459183b4b8030dc25d1e75", "sha256": "439ac30e5051dc8001f1a18828d007c63e63e4f76a32168c44148a4617edbce5" }, "downloads": -1, "filename": "jupygit-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "83bf965bf5459183b4b8030dc25d1e75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6557, "upload_time": "2018-12-05T23:29:53", "url": "https://files.pythonhosted.org/packages/69/51/f4894c78e21866190160ddce2fa78c3943bb91aa308bfdb8f748c3b2a79a/jupygit-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52de9f4ad47ebe667bec3dbdad5b59e8", "sha256": "4f5714986a092a28ee4d20fbac4a156b280c0278c200b29bcd2d37e88cd7030f" }, "downloads": -1, "filename": "jupygit-0.4.0.tar.gz", "has_sig": false, "md5_digest": "52de9f4ad47ebe667bec3dbdad5b59e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5591, "upload_time": "2018-12-05T23:29:54", "url": "https://files.pythonhosted.org/packages/b9/5d/894b59d0e513b719f57c55747ebecde5eb660ec4dc5a9940ec65f5e63472/jupygit-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83bf965bf5459183b4b8030dc25d1e75", "sha256": "439ac30e5051dc8001f1a18828d007c63e63e4f76a32168c44148a4617edbce5" }, "downloads": -1, "filename": "jupygit-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "83bf965bf5459183b4b8030dc25d1e75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6557, "upload_time": "2018-12-05T23:29:53", "url": "https://files.pythonhosted.org/packages/69/51/f4894c78e21866190160ddce2fa78c3943bb91aa308bfdb8f748c3b2a79a/jupygit-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52de9f4ad47ebe667bec3dbdad5b59e8", "sha256": "4f5714986a092a28ee4d20fbac4a156b280c0278c200b29bcd2d37e88cd7030f" }, "downloads": -1, "filename": "jupygit-0.4.0.tar.gz", "has_sig": false, "md5_digest": "52de9f4ad47ebe667bec3dbdad5b59e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5591, "upload_time": "2018-12-05T23:29:54", "url": "https://files.pythonhosted.org/packages/b9/5d/894b59d0e513b719f57c55747ebecde5eb660ec4dc5a9940ec65f5e63472/jupygit-0.4.0.tar.gz" } ] }