lbry-sdk/lbrynet/analytics/track.py

18 lines
463 B
Python
Raw Normal View History

2016-09-30 06:26:27 +02:00
import collections
class Track(object):
"""Track and summarize observations of metrics."""
def __init__(self):
self.data = collections.defaultdict(list)
def add_observation(self, metric, value):
self.data[metric].append(value)
def summarize(self, metric, op=sum):
"""Apply `op` on the current values for `metric`.
This operation also resets the metric.
"""
return op(self.data.pop(metric, []))