Skip to content

Commit

Permalink
Merge pull request #79 from kaseris/metrics
Browse files Browse the repository at this point in the history
Metric list
  • Loading branch information
kaseris committed Feb 1, 2024
2 parents 1aa42b9 + ffcd54a commit 045a024
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/skelcast/metrics/metric.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from abc import ABC, abstractmethod
from skelcast.metrics import METRICS


class Metric(ABC):
@abstractmethod
Expand Down Expand Up @@ -28,3 +30,24 @@ def reset(self):
Resets the metric state.
"""
pass


def create_metric(metric_name, **kwargs):
metric_class = METRICS.get_module(metric_name)
return metric_class(**kwargs)


class MetricList:
def __init__(self, metric_names):
self.metrics = [create_metric(name) for name in metric_names]

def update(self, output):
for metric in self.metrics:
metric.update(output)

def compute(self):
return {type(metric).__name__: metric.result() for metric in self.metrics}

def reset(self):
for metric in self.metrics:
metric.reset()

0 comments on commit 045a024

Please sign in to comment.