holoviz/lumen

Improve programmatic API on Lumen components

philippjfr opened this issue · 3 comments

Lumen is currently designed as a fairly monolithic system where you define your Yaml and get out a fully formed dashboard. To follow the unofficial mantra of HoloViz "shortcuts not deadends" Lumen therefore still has some ways to go. In particular there are a few usecases where it could be improved, specifically we want to allow users to easily access and reuse components they have defined as part of a Lumen dashboard either to lay them out manually using Panel or even just to access the generated views or data. To achieve this there's a few different avenues we could go down.

Improving the API for accessing components

Right now a Lumen Dashboard basically consists of a nested set of classes, e.g. in most cases you have a Dashboard of Target instances each containing a set of View instances. To get down to accessing a View is somewhat cumbersome and in some cases even requires accessing private APIs.

Instead we should think about offering public APIs for accessing and querying different components and their data.

Improving the API for constructing components

To define a Lumen Dashboard requires a nested specification of targets, views, filters and sources sometimes with circular references which is difficult to set up. In a yaml spec we can handle much of the complexity and circularity behind the scenes but if we want to allow users to programmatically construct components we will have to offer some simpler APIs.

I'd be willing to say that "shortcuts not deadends" is the official mantra of HoloViz. :-) But I enthusiastically support this approach, in any case!

All components are now usable programmatically.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.