Files
Mateusz Gruszczyński c5cc2efbac first commit
2026-03-23 15:56:18 +01:00

28 lines
839 B
Python

from __future__ import annotations
from dataclasses import dataclass
from app.core_settings import AppSettings, get_settings
from app.models.definitions import MetricDefinition
@dataclass
class MetricCatalog:
settings: AppSettings
def get(self, metric_id: str) -> MetricDefinition:
if metric_id not in self.settings.metrics:
raise KeyError(f"Unknown metric: {metric_id}")
return self.settings.metrics[metric_id]
def safe_get(self, metric_id: str) -> MetricDefinition | None:
return self.settings.metrics.get(metric_id)
def visible_entities(self) -> list[MetricDefinition]:
return [self.get(metric_id) for metric_id in self.settings.visible_entity_table if metric_id in self.settings.metrics]
def get_catalog() -> MetricCatalog:
return MetricCatalog(get_settings())