| Index: tools/telemetry/telemetry/value/list_of_scalar_values.py
|
| diff --git a/tools/telemetry/telemetry/value/list_of_scalar_values.py b/tools/telemetry/telemetry/value/list_of_scalar_values.py
|
| index 698957ad571e6a73aaf48d0b20572788af9af4f6..ea9c20c829e0123a0d93603bdfad6d0cb9d11657 100644
|
| --- a/tools/telemetry/telemetry/value/list_of_scalar_values.py
|
| +++ b/tools/telemetry/telemetry/value/list_of_scalar_values.py
|
| @@ -6,18 +6,20 @@ import numbers
|
|
|
| from telemetry import value as value_module
|
| from telemetry.value import none_values
|
| +from telemetry.value import summarizable
|
|
|
|
|
| def _Mean(values):
|
| return float(sum(values)) / len(values) if len(values) > 0 else 0.0
|
|
|
|
|
| -class ListOfScalarValues(value_module.Value):
|
| +class ListOfScalarValues(summarizable.SummarizableValue):
|
| def __init__(self, page, name, units, values,
|
| important=True, description=None, none_value_reason=None,
|
| - same_page_merge_policy=value_module.CONCATENATE):
|
| + same_page_merge_policy=value_module.CONCATENATE,
|
| + improvement_direction=None):
|
| super(ListOfScalarValues, self).__init__(page, name, units, important,
|
| - description)
|
| + description, improvement_direction)
|
| if values is not None:
|
| assert isinstance(values, list)
|
| assert len(values) > 0
|
| @@ -37,14 +39,16 @@ class ListOfScalarValues(value_module.Value):
|
| else:
|
| merge_policy = 'PICK_FIRST'
|
| return ('ListOfScalarValues(%s, %s, %s, %s, '
|
| - 'important=%s, description=%s, same_page_merge_policy=%s)') % (
|
| + 'important=%s, description=%s, same_page_merge_policy=%s, '
|
| + 'improvement_direction=%s)') % (
|
| page_name,
|
| self.name,
|
| self.units,
|
| repr(self.values),
|
| self.important,
|
| self.description,
|
| - merge_policy)
|
| + merge_policy,
|
| + self.improvement_direction)
|
|
|
| def GetBuildbotDataType(self, output_context):
|
| if self._IsImportantGivenOutputIntent(output_context):
|
| @@ -81,6 +85,7 @@ class ListOfScalarValues(value_module.Value):
|
| def FromDict(value_dict, page_dict):
|
| kwargs = value_module.Value.GetConstructorKwArgs(value_dict, page_dict)
|
| kwargs['values'] = value_dict['values']
|
| + kwargs['improvement_direction'] = value_dict['improvement_direction']
|
|
|
| if 'none_value_reason' in value_dict:
|
| kwargs['none_value_reason'] = value_dict['none_value_reason']
|
| @@ -98,7 +103,8 @@ class ListOfScalarValues(value_module.Value):
|
| values[0].values,
|
| important=v0.important,
|
| same_page_merge_policy=v0.same_page_merge_policy,
|
| - none_value_reason=v0.none_value_reason)
|
| + none_value_reason=v0.none_value_reason,
|
| + improvement_direction=v0.improvement_direction)
|
|
|
| assert v0.same_page_merge_policy == value_module.CONCATENATE
|
| return cls._MergeLikeValues(values, v0.page, v0.name)
|
| @@ -127,4 +133,5 @@ class ListOfScalarValues(value_module.Value):
|
| merged_values,
|
| important=v0.important,
|
| same_page_merge_policy=v0.same_page_merge_policy,
|
| - none_value_reason=none_value_reason)
|
| + none_value_reason=none_value_reason,
|
| + improvement_direction=v0.improvement_direction)
|
|
|