diff --git a/models/dayabay_v0.py b/models/dayabay_v0.py index 6175c214d6fee92a465f7061fd97da54afcdb99d..2a000d5f5f5c241d05ba56e8e7c9869ddc9cc4c2 100644 --- a/models/dayabay_v0.py +++ b/models/dayabay_v0.py @@ -4,12 +4,17 @@ from pathlib import Path from typing import Union, Tuple, List, Optional from pandas import DataFrame + class ParametersWrapper(NestedMKDict): def to_dict(self, **kwargs) -> list: data = [] for k, v in self.walkitems(): k = '.'.join(k) - dct = v.to_dict(**kwargs) + try: + dct = v.to_dict(**kwargs) + except AttributeError: + continue + dct['path'] = k data.append(dct) @@ -22,6 +27,10 @@ class ParametersWrapper(NestedMKDict): df = DataFrame(dct, columns=columns) return df + def to_string(self, **kwargs) -> DataFrame: + df = self.to_df() + return df.to_string(**kwargs) + 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) @@ -37,16 +46,20 @@ def model_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': 'eres' , 'load': datasource/'parameters/detector_eres.yaml'}) # from pprint import pprint # pprint(storage.object, sort_dicts=False) - print(storage['parameter_node'].to_df()) + print('Everything') + print(storage.to_df()) + print('Parameters') print(storage['parameter'].to_df()) + print('Parameters (latex)') print(storage['parameter'].to_latex()) + print('Constants (latex)') tex = storage['parameter.constant'].to_latex(columns=['path', 'value', 'label']) print(tex)