Source code for dse_do_utils.plotlymanager

# Copyright IBM All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
from typing import Generic, TypeVar

# from typing import List, Dict, Tuple, Optional
from dse_do_utils.datamanager import DataManager

# import plotly
# import plotly.graph_objs as go

# def _show(self):
#     """Work-around for showing a Plotly go.Figure in JupyterLab in CPD 3.5
#     Usage:
#         1. `import plotlymanager`. This will run this code and add the custom method `_show()` to `go.Figure`
#         2. Create a go.Figure fig in the normal Plotly way. Then in the last line of the cell, instead of `fig.show()`, do a:
#         3. `fig._show()`
#     """
#     from IPython.display import display, HTML  # Need to import dynamically. Otherwise problems running locally in pure Python (i.e. without Jupyter)
#     html = plotly.io.to_html(self)
#     display(HTML(html))
# go.Figure._show = _show

DM = TypeVar('DM', bound='DataManager')

[docs]class PlotlyManager(Generic[DM]): """Holds method that create Plotly charts. Pass-in the DM as an input in the constructor. """ def __init__(self, dm: DM): self.dm: DM = dm
[docs] def get_plotly_fig_m(self, id): """DEPRECATED. Not used in dse_do_dashboard package. On the instance `self`, call the method named by id['index'] For use with pattern-matching callbacks. Assumes the id['index'] is the name of a method of this class and returns a fig. Used in dse_do_dashboard Plotly-Dash dashboards """ return getattr(self, id['index'])()
[docs] def get_dash_tab_layout_m(self, page_id): """DEPRECATED. Not used in dse_do_dashboard package. On the instance `self`, call the method named by get_tab_layout_{page_id}. Used in dse_do_dashboard Plotly-Dash dashboards """ return getattr(self, f"get_tab_layout_{page_id}")()