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 64bf246fc92c18aa91ff260714df901fb4d5bcf8..1b96aea63efd173295a2e39176d75197c255d827 100644 |
--- a/tools/telemetry/telemetry/value/list_of_scalar_values.py |
+++ b/tools/telemetry/telemetry/value/list_of_scalar_values.py |
@@ -7,6 +7,7 @@ import math |
from telemetry import value as value_module |
from telemetry.value import none_values |
+from telemetry.value import summarizable |
def Variance(sample): |
@@ -61,7 +62,7 @@ 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): |
""" ListOfScalarValues represents a list of numbers. |
By default, std is the standard deviation of all numbers in the list. Std can |
@@ -71,9 +72,11 @@ class ListOfScalarValues(value_module.Value): |
def __init__(self, page, name, units, values, |
important=True, description=None, |
tir_label=None, none_value_reason=None, |
- std=None, same_page_merge_policy=value_module.CONCATENATE): |
+ std=None, same_page_merge_policy=value_module.CONCATENATE, |
+ improvement_direction=None): |
super(ListOfScalarValues, self).__init__(page, name, units, important, |
- description, tir_label) |
+ description, tir_label, |
+ improvement_direction) |
if values is not None: |
assert isinstance(values, list) |
assert len(values) > 0 |
@@ -110,15 +113,16 @@ class ListOfScalarValues(value_module.Value): |
merge_policy = 'PICK_FIRST' |
return ('ListOfScalarValues(%s, %s, %s, %s, ' |
'important=%s, description=%s, tir_label=%s, ' |
- 'same_page_merge_policy=%s)') % ( |
- page_name, |
- self.name, |
- self.units, |
- repr(self.values), |
- self.important, |
- self.description, |
- self.tir_label, |
- merge_policy) |
+ 'same_page_merge_policy=%s, improvement_direction=%s)') % ( |
+ page_name, |
+ self.name, |
+ self.units, |
+ repr(self.values), |
+ self.important, |
+ self.description, |
+ self.tir_label, |
+ merge_policy, |
+ self.improvement_direction) |
def GetBuildbotDataType(self, output_context): |
if self._IsImportantGivenOutputIntent(output_context): |
@@ -157,6 +161,7 @@ class ListOfScalarValues(value_module.Value): |
kwargs = value_module.Value.GetConstructorKwArgs(value_dict, page_dict) |
kwargs['values'] = value_dict['values'] |
kwargs['std'] = value_dict['std'] |
+ kwargs['improvement_direction'] = value_dict['improvement_direction'] |
if 'none_value_reason' in value_dict: |
kwargs['none_value_reason'] = value_dict['none_value_reason'] |
@@ -176,7 +181,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, v0.tir_label) |
@@ -211,4 +217,5 @@ class ListOfScalarValues(value_module.Value): |
tir_label=tir_label, |
same_page_merge_policy=v0.same_page_merge_policy, |
std=pooled_std, |
- none_value_reason=none_value_reason) |
+ none_value_reason=none_value_reason, |
+ improvement_direction=v0.improvement_direction) |