From 68eea93130fd206dcc364bec8fe871286f6148d1 Mon Sep 17 00:00:00 2001 From: matheme-justyn Date: Tue, 26 Mar 2024 16:44:16 +0800 Subject: [PATCH] 20240326, output_eval_name --- PETsARD/reporter/reporter.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/PETsARD/reporter/reporter.py b/PETsARD/reporter/reporter.py index c4ce6034..c3b35022 100644 --- a/PETsARD/reporter/reporter.py +++ b/PETsARD/reporter/reporter.py @@ -310,6 +310,7 @@ def __init__(self, config: dict): raise ConfigError self.config['eval'] = eval + def create(self, data: dict = None) -> None: """ Creating the report data by checking is experiment name of Evaluator exist. @@ -336,8 +337,7 @@ def create(self, data: dict = None) -> None: Attributes: - report_data (dict): Data for the report. - Reporter (dict): The report data for the reporter. - - full_expt_name (str): The full experiment name. - - expt_name (str): The experiment name. + - expt_name (str): The matching experiment name. - granularity (str): The granularity of the report. - report (pd.DataFrame): The report data. @@ -347,6 +347,7 @@ def create(self, data: dict = None) -> None: eval_expt_name: str = '' eval: Optional[List[str]] = self.config['eval'] granularity: str = self.config['granularity'] + output_eval_name: str = '' report_data: dict = {} rpt_data: pd.DataFrame = None @@ -359,6 +360,7 @@ def create(self, data: dict = None) -> None: if eval is None: # match every ends of f"_[{granularity}]" eval_pattern = re.escape(f"_[{granularity}]") + "$" + output_eval_name = f"[{granularity}]" else: # it should be match f"{eval}_[{granularity}]", where eval is a list eval_pattern = ( @@ -368,6 +370,10 @@ def create(self, data: dict = None) -> None: + re.escape(f"_[{granularity}]") + "$" ) + output_eval_name = ( + "-".join([eval_item for eval_item in eval]) + + f"_[{granularity}]" + ) for idx_tuple, rpt_data in data.items(): # found latest key pairs is Evaluator/Describer @@ -389,14 +395,9 @@ def create(self, data: dict = None) -> None: ) continue + # pre-arrange evaluation report data rpt_data = deepcopy(rpt_data) - full_expt_name: str = convert_full_expt_tuple_to_name(idx_tuple) - report_data['full_expt_name'] = full_expt_name - report_data['eval_expt_name'] = eval_expt_name - report_data['expt_name'] = eval - report_data['granularity'] = granularity - # reset index to represent column granularity_code = self.config['granularity_code'] if granularity_code == ReporterSaveReportMap.COLUMNWISE: @@ -410,6 +411,7 @@ def create(self, data: dict = None) -> None: }) # add full_expt_name as first column + full_expt_name: str = convert_full_expt_tuple_to_name(idx_tuple) rpt_data.insert(0, 'full_expt_name', full_expt_name) # Row append if exist_report exist @@ -422,8 +424,13 @@ def create(self, data: dict = None) -> None: ) report_data['report'] = deepcopy(rpt_data) + # store the output evaluation name + report_data['eval_expt_name'] = output_eval_name + + # store all information to Reporter self.report_data['Reporter'] = report_data + def report(self) -> None: """ Generates a report based on the provided report data.