From b4214219355609f4588ff1342541ce1dff1161d6 Mon Sep 17 00:00:00 2001
From: Maxim Gonchar <maxim.mg.gonchar@gmail.com>
Date: Tue, 28 Mar 2023 17:32:01 +0300
Subject: [PATCH] chore: update parameters location

---
 models/dayabay_v0.py | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/models/dayabay_v0.py b/models/dayabay_v0.py
index 958247f..6175c21 100644
--- a/models/dayabay_v0.py
+++ b/models/dayabay_v0.py
@@ -2,6 +2,7 @@ from dagflow.bundles.load_parameters import load_parameters
 from multikeydict.nestedmkdict import NestedMKDict
 from pathlib import Path
 
+from typing import Union, Tuple, List, Optional
 from pandas import DataFrame
 class ParametersWrapper(NestedMKDict):
 	def to_dict(self, **kwargs) -> list:
@@ -14,29 +15,38 @@ class ParametersWrapper(NestedMKDict):
 
 		return data
 
-	def to_df(self, **kwargs) -> DataFrame:
+	def to_df(self, *, columns: Optional[List[str]]=None, **kwargs) -> DataFrame:
 		dct = self.to_dict(**kwargs)
-		columns = ('path', 'value', 'label')
+		if columns is None:
+			columns = ['path', 'value', 'central', 'sigma', 'normvalue', 'label']
 		df = DataFrame(dct, columns=columns)
 		return df
 
-	def to_latex(self) -> str:
-		df = self.to_df(label_from='latex')
-		return df.to_latex(escape=False)
+	def to_latex(self, *, return_df: bool=False, **kwargs) -> Union[str, Tuple[str, DataFrame]]:
+		df = self.to_df(label_from='latex', **kwargs)
+		tex = df.to_latex(escape=False)
+
+		if return_df:
+			return tex, df
+
+		return tex
 
 def model_dayabay_v0():
 	storage = ParametersWrapper({}, sep='.')
 	datasource = Path('data/dayabay-v0')
-	storage |= load_parameters({'path': 'ibd', 'load': datasource/'parameters/pdg2012.yaml'})
-	storage |= load_parameters({'path': 'detector', 'load': datasource/'parameters/detector_nprotons_correction.yaml'})
-	storage |= load_parameters({'path': 'reactor', 'load': datasource/'parameters/reactor_thermal_power_nominal.yaml'})
-	storage |= load_parameters({'path': 'reactor', 'load': datasource/'parameters/detector_eres.yaml'})
+	storage |= load_parameters({'path': 'ibd'      , 'load': datasource/'parameters/pdg2012.yaml'})
+	storage |= load_parameters({'path': 'detector' , 'load': datasource/'parameters/detector_nprotons_correction.yaml'})
+	storage |= load_parameters({'path': 'reactor'  , 'load': datasource/'parameters/reactor_thermal_power_nominal.yaml'})
+	storage |= load_parameters({'path': 'reactor'  , 'load': datasource/'parameters/detector_eres.yaml'})
+
+	# from pprint import pprint
+	# pprint(storage.object, sort_dicts=False)
+
+	print(storage['parameter_node'].to_df())
 
-	from pprint import pprint
-	pprint(storage.object, sort_dicts=False)
+	print(storage['parameter'].to_df())
 
-	df = storage['constants'].to_df()
-	print(df)
+	print(storage['parameter'].to_latex())
 
-	tex = storage['constants'].to_latex()
+	tex = storage['parameter.constant'].to_latex(columns=['path', 'value', 'label'])
 	print(tex)
-- 
GitLab