diff --git a/qcpanel/run.py b/qcpanel/run.py index bb94a70..fdaf2b0 100644 --- a/qcpanel/run.py +++ b/qcpanel/run.py @@ -13,12 +13,13 @@ def app_instance(): param_init = { k: v for k, v in pn.state.location.query_params.items() - if k in ["dataset", "metric", "plot_view", "mode", "estimators"] + if k in ["root", "dataset", "metric", "plot_view", "mode", "estimators"] } qtv = QuaccTestViewer(param_init=param_init) pn.state.location.sync( qtv, { + "root": "root", "dataset": "dataset", "metric": "metric", "plot_view": "plot_view", diff --git a/qcpanel/viewer.py b/qcpanel/viewer.py index b298151..596ff48 100644 --- a/qcpanel/viewer.py +++ b/qcpanel/viewer.py @@ -12,6 +12,8 @@ from quacc.evaluation.report import DatasetReport class QuaccTestViewer(param.Parameterized): + __base_path = "output" + dataset = param.Selector() metric = param.Selector() estimators = param.ListSelector() @@ -31,6 +33,8 @@ class QuaccTestViewer(param.Parameterized): plot_pane = param.Parameter() modal_pane = param.Parameter() + root = param.String() + def __init__(self, param_init=None, **params): super().__init__(**params) @@ -234,12 +238,14 @@ class QuaccTestViewer(param.Parameterized): ) def update_datasets(self): - __base_path = "output" + if not self.__get_param_init("root"): + self.root = self.__base_path + dataset_paths = sorted( - explore_datasets(__base_path), key=lambda t: (-len(t.parts), t) + explore_datasets(self.root), key=lambda t: (-len(t.parts), t) ) self.datasets_ = { - str(dp.parent.relative_to(Path(__base_path))): DatasetReport.unpickle(dp) + str(dp.parent.relative_to(Path(self.root))): DatasetReport.unpickle(dp) for dp in dataset_paths }