diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2017-01-25 10:12:47 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-01-28 23:32:16 +0000 |
commit | 48f79758ea1a4a2abac38566e411e8d0a6f66ac5 (patch) | |
tree | b13c6dd16db3dd722b8f664d284a5bff755370c3 /scripts/buildstats-diff | |
parent | 46ed698f052f954e53328f81dc01221ac38a2031 (diff) | |
download | poky-48f79758ea1a4a2abac38566e411e8d0a6f66ac5.tar.gz |
scripts/buildstats-diff: simplify timestamp handling
Simply use floats instead of datetime and timedelta objects for handling
timestamps.
(From OE-Core rev: d97c844f388bd4c52248fe597d5985ef20d5a96d)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/buildstats-diff')
-rwxr-xr-x | scripts/buildstats-diff | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/scripts/buildstats-diff b/scripts/buildstats-diff index f918a6d5e0..5cea184eb2 100755 --- a/scripts/buildstats-diff +++ b/scripts/buildstats-diff | |||
@@ -22,7 +22,6 @@ import os | |||
22 | import re | 22 | import re |
23 | import sys | 23 | import sys |
24 | from collections import namedtuple | 24 | from collections import namedtuple |
25 | from datetime import datetime, timedelta, tzinfo | ||
26 | from operator import attrgetter | 25 | from operator import attrgetter |
27 | 26 | ||
28 | # Setup logging | 27 | # Setup logging |
@@ -35,38 +34,11 @@ class ScriptError(Exception): | |||
35 | pass | 34 | pass |
36 | 35 | ||
37 | 36 | ||
38 | class TimeZone(tzinfo): | ||
39 | """Simple fixed-offset tzinfo""" | ||
40 | def __init__(self, seconds, name): | ||
41 | self._offset = timedelta(seconds=seconds) | ||
42 | self._name = name | ||
43 | |||
44 | def utcoffset(self, dt): | ||
45 | return self._offset | ||
46 | |||
47 | def tzname(self, dt): | ||
48 | return self._name | ||
49 | |||
50 | def dst(self, dt): | ||
51 | return None | ||
52 | |||
53 | TIMEZONES = {'UTC': TimeZone(0, 'UTC'), | ||
54 | 'EET': TimeZone(7200, 'EET'), | ||
55 | 'EEST': TimeZone(10800, 'EEST')} | ||
56 | |||
57 | taskdiff_fields = ('pkg', 'pkg_op', 'task', 'task_op', 'value1', 'value2', | 37 | taskdiff_fields = ('pkg', 'pkg_op', 'task', 'task_op', 'value1', 'value2', |
58 | 'absdiff', 'reldiff') | 38 | 'absdiff', 'reldiff') |
59 | TaskDiff = namedtuple('TaskDiff', ' '.join(taskdiff_fields)) | 39 | TaskDiff = namedtuple('TaskDiff', ' '.join(taskdiff_fields)) |
60 | 40 | ||
61 | 41 | ||
62 | def to_datetime_obj(obj): | ||
63 | """Helper for getting timestamps in datetime format""" | ||
64 | if isinstance(obj, datetime): | ||
65 | return obj | ||
66 | else: | ||
67 | return datetime.utcfromtimestamp(obj).replace(tzinfo=TIMEZONES['UTC']) | ||
68 | |||
69 | |||
70 | class BSTask(dict): | 42 | class BSTask(dict): |
71 | def __init__(self, *args, **kwargs): | 43 | def __init__(self, *args, **kwargs): |
72 | self['start_time'] = None | 44 | self['start_time'] = None |
@@ -86,7 +58,7 @@ class BSTask(dict): | |||
86 | @property | 58 | @property |
87 | def walltime(self): | 59 | def walltime(self): |
88 | """Elapsed wall clock time""" | 60 | """Elapsed wall clock time""" |
89 | return self['elapsed_time'].total_seconds() | 61 | return self['elapsed_time'] |
90 | 62 | ||
91 | @property | 63 | @property |
92 | def read_bytes(self): | 64 | def read_bytes(self): |
@@ -118,10 +90,10 @@ def read_buildstats_file(buildstat_file): | |||
118 | key, val = line.split(':', 1) | 90 | key, val = line.split(':', 1) |
119 | val = val.strip() | 91 | val = val.strip() |
120 | if key == 'Started': | 92 | if key == 'Started': |
121 | start_time = to_datetime_obj(float(val)) | 93 | start_time = float(val) |
122 | bs_task['start_time'] = start_time | 94 | bs_task['start_time'] = start_time |
123 | elif key == 'Ended': | 95 | elif key == 'Ended': |
124 | end_time = to_datetime_obj(float(val)) | 96 | end_time = float(val) |
125 | elif key.startswith('IO '): | 97 | elif key.startswith('IO '): |
126 | split = key.split() | 98 | split = key.split() |
127 | bs_task['iostat'][split[1]] = int(val) | 99 | bs_task['iostat'][split[1]] = int(val) |