def get_raws( self, key: Key, metrics: List[MetricType] ) -> Option[Dict[MetricType, List[float]]]: result_map: Dict[MetricType, List[float]] = {} for metric in metrics: new_key = Key(key.benchmark, key.paradigm, key.language, metric) opt_res = self.get_result(new_key) if opt_res.has_value: result_map[metric] = opt_res.get().results if len(result_map.keys()) == len(metrics): return Option(result_map) else: return Option.empty()
def get_result(self, key: Key) -> Option[Metric]: if key in self.observations: met = Metric(key, self.observations[key]) return Option(met) else: return Option.empty()