marckassay / elvis

Combining holoviz panel and golden-layout in pure python.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Elvis

  • Combining holoviz panel with the golden-panel layout.
  • Author: Leon van Kouwen, lvankouwen@gmail.com
  • Last updated: 12-09-2020
  • Version 0.1.1

About elvis

Elvis is primarily intended to enable using all the features of panel in combination with the golden-layout, in a way that it can be setup entirely from simple python commands. This enables a nice looking and flexible dashboard being setup very quickly, while having all the options of python at ones disposal.

In addition, this package is a collection of somewhat arbitrary additions to panel. Current functionality includes

  • Golden layout combined with panel from pure python
  • Altered styling of golden-layout (dark and light theme)
  • A KPI widget matching the theme.
  • Re-styling of bokeh graphs.
  • A-synchronous live calculation and live plotting.

The .js code for golden-layout is included in this package such that the packge can be used offline as well and to avoid problems when the online golden-layout resources move or are no longer available. This means that the golden-layout code does not automatically follow updates of golden-layout.

NOTE: this package under development and experimental. Some of the solutions are probably not very scalable/maintainable. In particular the a-synchronous live calculation and live plotting isn't what it could be. I am no longer using this functionality, but it is left here as code snippet inspiration. I appreciate suggestions, advice, contributions... :).

Feel free to use this for any purpose, within the limits of the licenses of panel and golden-layout. If you make improvements or additions I kindly ask you to share them. This can be done by adding them to this repository, or other channels like a blog. Feel free to contact me.

Some documentation is generated using pdoc3 and can be found in 'docs'.

Impression

Dark-Theme Demo Light-Theme Demo

How do I get set up?

Installation

Elvis can be installed using:

git clone https://github.com/LeonvanKouwen/elvis.git
cd elvis	
pip install .

It is now possible to remove the elvis folder. Be careful not to simply run conda install elvis, or pip install elvis, because you will install something else.

If you want to develop, it is best to add the elvis root directory to the 'sources root' of your IDE.

Dependencies

  • panel > 0.10.0 (0.9.x will NOT work)
  • holoviews
  • plotly

Currently plotly is required, even when not used. This will be refactored out.

Examples

To get started with some examples look at the examples folder.

  • live_time_series shows the asynchronous live plotting functionality in the light theme
  • science-dashboard shows the dark theme and some standard panel/param functionality.

Usage

Elvis internally uses the panel command panel.serve(), which launches a server when running the code as a script. This is currently the only way to use elvis. Panel can also be run from the command line using panel serve dirname, but this is NOT supported.

Resources

This package is just a very thin layer around the holoviz framework and the golden layout GUI package.

A good comparison with other frameworks can be found here.

As a plotting backend both Bokeh and plotly can be used, although currently there is a problem with vertical responsiveness of plotly. Matloblib is not implemented due to the lack of interactive possibilities.

For demonstrations and more additions to panel, visit

Combining panel with the golden-layout was inspired by the VTKSlicer dashboard.

For bugs and problems with the code in this package, please raise a github issue. For more general questions, the holoviz discourse can be used.

About

Combining holoviz panel and golden-layout in pure python.

License:MIT License


Languages

Language:JavaScript 70.8%Language:Python 15.5%Language:CSS 13.7%