Source code for distopia.precinct.metrics
"""
Precinct Metrics
=================
Defines metrics that are specific to Precincts.
"""
__all__ = ('PrecinctMetric', 'PrecinctHistogram')
[docs]class PrecinctMetric(object):
"""Metrics used with :class:`distopia.precinct.Precinct`.
"""
name = ''
"""A globally unique metric name that describes the metric.
"""
scalar_value = 0
scalar_maximum = 0
scalar_label = ''
def __init__(
self, name, scalar_value=0, scalar_maximum=0, scalar_label='',
**kwargs):
super(PrecinctMetric, self).__init__(**kwargs)
self.name = name
self.scalar_value = scalar_value
self.scalar_maximum = scalar_maximum
self.scalar_label = scalar_label
def get_data(self):
raise NotImplementedError
[docs]class PrecinctHistogram(PrecinctMetric):
data = []
labels = []
def __init__(self, data, labels, **kwargs):
super(PrecinctHistogram, self).__init__(**kwargs)
self.data = data
self.labels = labels
def get_data(self):
return {
"name": self.name, "labels": self.labels, "data": self.data,
"scalar_value": self.scalar_value,
"scalar_maximum": self.scalar_maximum,
"scalar_label": self.scalar_label}