Chromium Code Reviews| Index: tools/telemetry/telemetry/value/scalar.py |
| diff --git a/tools/telemetry/telemetry/value/scalar.py b/tools/telemetry/telemetry/value/scalar.py |
| index d83753af414e27ab98aa576ee823413b400d728f..e838f2d81316cf81c2c47e1fd4520e26a2b03e35 100644 |
| --- a/tools/telemetry/telemetry/value/scalar.py |
| +++ b/tools/telemetry/telemetry/value/scalar.py |
| @@ -7,18 +7,21 @@ import numbers |
| from telemetry import value as value_module |
| from telemetry.value import list_of_scalar_values |
| from telemetry.value import none_values |
| +from telemetry.value import summarizable |
| -class ScalarValue(value_module.Value): |
| +class ScalarValue(summarizable.SummarizableValue): |
| def __init__(self, page, name, units, value, important=True, |
| - description=None, none_value_reason=None): |
| + description=None, none_value_reason=None, |
| + improvement_direction=None): |
| """A single value (float or integer) result from a test. |
| A test that counts the number of DOM elements in a page might produce a |
| scalar value: |
| ScalarValue(page, 'num_dom_elements', 'count', num_elements) |
| """ |
| - super(ScalarValue, self).__init__(page, name, units, important, description) |
| + super(ScalarValue, self).__init__( |
| + page, name, units, important, description, improvement_direction) |
| assert value is None or isinstance(value, numbers.Number) |
| none_values.ValidateNoneValueReason(value, none_value_reason) |
| self.value = value |
| @@ -29,13 +32,15 @@ class ScalarValue(value_module.Value): |
| page_name = self.page.url |
| else: |
| page_name = None |
| - return 'ScalarValue(%s, %s, %s, %s, important=%s, description=%s)' % ( |
| + return ('ScalarValue(%s, %s, %s, %s, important=%s, description=%s, ' |
| + 'improvement_direction=%s)') % ( |
| page_name, |
| self.name, |
| self.units, |
| self.value, |
| self.important, |
| - self.description) |
| + self.description, |
| + self.improvement_direction) |
| def GetBuildbotDataType(self, output_context): |
| if self._IsImportantGivenOutputIntent(output_context): |
| @@ -70,6 +75,7 @@ class ScalarValue(value_module.Value): |
| def FromDict(value_dict, page_dict): |
| kwargs = value_module.Value.GetConstructorKwArgs(value_dict, page_dict) |
| kwargs['value'] = value_dict['value'] |
| + kwargs['improvement_direction'] = value_dict['improvement_direction'] |
| if 'none_value_reason' in value_dict: |
| kwargs['none_value_reason'] = value_dict['none_value_reason'] |
| @@ -100,4 +106,5 @@ class ScalarValue(value_module.Value): |
| none_value_reason = none_values.MERGE_FAILURE_REASON |
| return list_of_scalar_values.ListOfScalarValues( |
| page, name, v0.units, merged_value, important=v0.important, |
| - none_value_reason=none_value_reason) |
| + none_value_reason=none_value_reason, |
| + improvement_direction=v0.improvement_direction) |
|
nednguyen
2015/01/08 18:07:41
This is the ugliness that I mentioned. How do we g
qyearsley
2015/01/27 00:50:46
What does "like values" mean in this context? Mayb
|