TRAINS Jupyter Notebook Plugin - Add GIT Support For Jupyter Notebook
Trains Jupyter Plugin
‼️ Deprecation notice: As JupyterLab now includes git integration, there is no longer any need for a special notebook plugin
trains-jupyter-plugin is a Jupyter Notebook extension which enables you to push ipython notebooks to a git repository, using a git button added to the notebook toolbar.
After saving a notebook, you can push the notebook to a predefined git repository (currently, pushing to a specific predefined branch is supported).
When clicking the version-control button:
- The notebook
.ipynbfile will be pushed to the git repository based on the folder structure in which it is located - The notebook will also be converted to a
.pyscript, pushed alongside the.ipynbfile - A
requirements.txtwill be created and updated according to the notebook imports, and pushed alongside the.ipynbfile
repo1/ ├── .git └── experiment1/ └── notebook.ipynb
repo2/ ├── .git └── experiment2/ └── notebook2.ipynb
notebook1.ipynb will be pushed to the repo1 repository, and notebook2.ipynb will be pushed to the repo2 repository.
In order to select the predefined branch into which the files will be pushed, use git checkout on the jupyter host machine.
For example, switch to branch2 in repo2:
$ cd ~/repo2 $ git checkout branch2 From this point onwards the jupyter notebook push will be done to the branch2 branch in the repo2 repository.
Installation
To use the plugin, execute the following script which installs the plugin and configures Jupyter to use it:
pip install trains-jupyter-plugin
if [ ! -f ~/.jupyter/jupyternotebookconfig.py ]; then jupyter notebook --generate-config fi echo 'c.NotebookApp.disablecheckxsrf = True' >> ~/.jupyter/jupyternotebookconfig.py
jupyter serverextension enable --py trains-jupyter-plugin sudo jupyter nbextension install --py trains-jupyter-plugin
To enable the extension for all notebooks:
jupyter nbextension enable --py trains-jupyter-plugin
How to use
Once the Plugin is installed and Jupyter configured:
- Clone your git repository to a folder that will be assigned to a specific user
- Checkout a specific branch for the current user
- Make sure git is configured with the correct credentials (we recommend verifying a password/passphrase is required when pushing)
- Run Jupyter Notebook
- Any commit/push of notebooks from this specific folder will be done to the checked out branch
Screenshots
An additional button to the Jupyter toolbar:

The git push dialog for pushing the notebook:


Additional Documentation
For detailed information about the Trains open source suite, see our Trains Documentation.
Acknowledgements
Thanks to Lab41/sunny-side-up & sat28/githubcommit for laying the foundations for this plugin.
Community & Support
If you have a question, consult our Trains FAQs or tag your questions on stackoverflow with "trains*".
- To request features or report bugs, see our GitHub issues.
Contributing
We encourage your contributions! See our Trains Guidelines for Contributing.