Source code for hurricane.metrics.registry

from hurricane.metrics.exceptions import MetricIdAlreadyRegistered


[docs]class MetricsRegistry: """ Registering metrics and storing them in a metrics dictionary. """ def __init__(self): self.metrics = {} def register(self, metric_cls): if metric_cls.code in self.metrics: raise MetricIdAlreadyRegistered(f"Metric ID ({metric_cls.code}) is already registered.") self.metrics[metric_cls.code] = metric_cls() def unregister(self, metric_cls): try: del self.metrics[metric_cls.code] except KeyError: # TODO warn about trying to unregister not registered metric pass def get(self, code): return self.metrics[code]