def __str__(self): results = self.to_dict() stat_str = "************{name:*<30}\n\n".format( name=f" {self.analysis.key} ") stat_str += "----------- general -----------\n" general_dict = OrderedDict({ "Number of runs": results['general']['n_states'], "Number of papers": results['general']['n_papers'], "Number of included papers": results['general']['n_included'], "Number of excluded papers": results['general']['n_excluded'], "Number of unlabeled papers": results['general']['n_unlabeled'] }) n_query_list = np.array(results['general']['n_queries']) if np.all(np.array(n_query_list) == n_query_list[0]): general_dict["Number of queries"] = n_query_list[0] else: avg = np.average(n_query_list) minim = np.min(n_query_list) maxim = np.max(n_query_list) tstr = f"{avg} (min: {minim}, max: {maxim})" general_dict["Number of queries"] = tstr stat_str += pretty_format(general_dict) stat_str += f"\n" stat_str += "----------- settings -----------\n" if isinstance(results["settings"], str): stat_str += results["settings"] + "\n" else: stat_str += pretty_format(results["settings"]) + "\n" stat_str += "----------- ATD -----------\n" stat_str += f"{results['loss']: .3g}\n\n" if len(results["wss"]) + len(results["rrf"]) > 0: stat_str += "----------- WSS/RRF -----------\n" for wss_at, wss_val in results["wss"].items(): if wss_val is not None: wss_val_str = f"{wss_val:.2f}" else: wss_val_str = "NA" stat_str += f"WSS@{wss_at: <3}: {wss_val_str: <5} %\n" for rrf_at, rrf_val in results["rrf"].items(): if rrf_val is not None: rrf_val_str = f"{rrf_val:.2f}" else: rrf_val_str = "NA" stat_str += f"RRF@{rrf_at: <3}: {rrf_val_str: <5} %\n" return stat_str
def __str__(self): return pretty_format(self.to_dict())
def __str__(self): dataset_dict = self.datasets[-1].to_dict() dataset_dict["versions_available"] = [d.dataset_id for d in self.datasets] return pretty_format(dataset_dict)