def loads(cls, raw: str, *, name: Timegroup) -> 'PredictionInfo': data = json.loads(raw) range_ = data["range"] return cls( name=name, # explicitly passed. (not in `data` before 2.1) time=int(data["time"]), range=(Timestamp(range_[0]), Timestamp(range_[1])), cf=ConsolidationFunctionName(data["cf"]), dsname=MetricName(data["dsname"]), slice=int(data["slice"]), params=dict(data["params"]), )
def _metric_title_from_id(metric_or_graph_id: MetricName) -> str: metric_id = metric_or_graph_id.replace("METRIC_", "") return metric_info.get(metric_id, {}).get("title", metric_id)
def metric_title(metric_name: _MetricName) -> str: return metric_info.get(metric_name, {}).get("title", metric_name.title())