https://github.com/bcdev/multiply-uimock
A GUI mock for the Multiply project based on Jupyter Notebook
https://github.com/bcdev/multiply-uimock
Last synced: 29 days ago
JSON representation
A GUI mock for the Multiply project based on Jupyter Notebook
- Host: GitHub
- URL: https://github.com/bcdev/multiply-uimock
- Owner: bcdev
- License: mit
- Created: 2019-02-07T08:13:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-14T17:29:20.000Z (over 7 years ago)
- Last Synced: 2025-09-09T14:15:30.038Z (10 months ago)
- Language: Python
- Size: 25.4 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# multiply-uimock
A GUI mock for the [Multiply](https://github.com/multiply-org) project based on
[Jupyter Widgets](https://ipywidgets.readthedocs.io) and [Bokeh](https://bokeh.pydata.org).
# Concept
The Multiply Docker images include Jupyter Lab, a dedicated Multiply REST server
and a Multiply Notebook API.
When the Docker is started on its host VM, the Jupyter Lab server and the Multiply
REST server are started. User get a dedicated URL that brings up the Jupyter Lab
in their browser. From Jupyter Lab they have access to
* Jupyter Notebooks that can import the Multiply Notebook API
* Terminal windows that allow accessing the container environment and
mounted file systems.
The Multiply Notebook API provides a simple set of functions (API) that
bring up dedicated UI forms, such as data query and job execution.
The API provides access to objects that are a result of the GUI interaction.
Users can further interact with such objects e.g. `job = Job(13); job.cancel()`.
These objects also have dedicated HTML representations in the notebook. For example
a query result may render a table of data files, or a processing result
may render quicklooks.
Another set of functions may be provided for simple analysis and visualisation of the
processing results.
For new users, we will provide a set of Notebooks for the most common
Multiply use cases. Users can use them as starting points.
## Advantages of using Jupyter Lab
* With Jupyter Lab, users can
* create and modify any number of wokflows and data anlyses and store them
in their workspaces;
* have numerous notebooks and output displays side by side;
* use a variability of data visualisations already available.
* Very flexible, users can bring up UIs anywhere in the flow and interact with
the objects they produce such as jobs, queries.
* Python programmers can easily extend the UI capabilities by writing
new UI, analysis and visualisation functions.
* Custom widgets can be implemented using JavaScript.
This allows for integration of popular and powerful JS visualisation libraries
(e.g. Leaflet Map, D3)
* In the Notebooks, users can exploit the power of numerous popular Python data science
packages (xarray, numpy, scipy, pandas, ...)
# Installation
Create environment:
$ cd multiply-uimock
$ conda env create
Activate environment and install sources:
$ source activate muimock
Install jupyter-widgets extension for Jupyter-Lab
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
Install muimock from source code:
$ python setup.py develop
Run Jupyter Lab
$ jupyter-lab notebooks/muimock.ipynb
# Related Reads
* Jupyter Lab: https://jupyterlab.readthedocs.io
* Jupyter Widgets: https://ipywidgets.readthedocs.io/en/stable/examples/Using%20Interact.html
* Bokeh docs: https://bokeh.pydata.org/en/latest/docs/user_guide/notebook.html
* Bokeh examples: https://github.com/bokeh/bokeh/tree/1.0.4/examples/howto/notebook_comms
* Integrating your objects with IPython: https://ipython.readthedocs.io/en/stable/config/integrating.html