Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/manugraj/ganimede
Store,Version and Run jupyter notebook via ReST api
https://github.com/manugraj/ganimede
fastapi jupyter jupyter-notebook papermill poetry redis
Last synced: about 1 month ago
JSON representation
Store,Version and Run jupyter notebook via ReST api
- Host: GitHub
- URL: https://github.com/manugraj/ganimede
- Owner: manugraj
- License: mit
- Created: 2021-06-06T13:11:44.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-08T01:44:33.000Z (almost 2 years ago)
- Last Synced: 2024-11-15T04:52:12.516Z (about 1 month ago)
- Topics: fastapi, jupyter, jupyter-notebook, papermill, poetry, redis
- Language: Python
- Homepage:
- Size: 255 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ganimede [![Mentioned in Awesome ](https://awesome.re/mentioned-badge.svg)](https://github.com/markusschanta/awesome-jupyter)
Store, version, edit and execute notebooks in sandboxes and integrate them directly via REST interfaces.
## Use cases
- Ability to write machine learning logic and expose them to systems as rest api
- Write Jupyter nb locally and run them in a centralised powerful machine to reduce cost
- Create framework to directly connect Jupyter notebook to other systems## Requirements
- docker
- redis## Stack
- Redis
- FastAPI
- Papermill
- Jupyter
- Poetry
- Docker## Build
- Clone the repo
- Run `poetry install`
- Run `run.py` or `scripts\launch.sh` or `cd docker;docker-compose up -d`## Deployment
- Clone the repo and in `docker` folder, run `docker-compose build`. The docker image will be build
- Push to registry or use your custom publishing method to publish the image## API Docs
- Start the application
- Go to `localhost:8000/docs` for swagger and `localhost:8000/redoc` for redoc### Main APIs
#### Jupyter Notebook
- `define` for defining projects and its dependencies
- `store` for storing notebook and associated files
- `run` for executing a jupyter file
- `html` to get a rendered page of executed notebook
- `output` to get the output of Jupyter execution in json format
- `plain_text` to get the plain text output#### Jupyter Notebook Editor
- `edit` for editing notebook in a sandbox
- `view` for viewing notebook in sandbox and can run it, but not save the changes#### Jupyter Updater
- `update` for storing the next version of notebook from `edit` endpoint## TODO
- [x] Provide live environment for editing and running jupyter
- [ ] Custom transformations for jupyter output
- [ ] Scheduled cleanup of created jupyter docker containers
- [ ] Change container implementation to podman or other rootless systems