[perf-web] Fix compatibility with Python 2.6
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [perf-web] Fix compatibility with Python 2.6
- Date: Wed, 23 Jul 2014 00:38:13 +0000 (UTC)
commit b19953aec09db086e2673ed9bebe471e0dae7c15
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Tue Jul 22 20:34:27 2014 -0400
Fix compatibility with Python 2.6
datetime.timedelta.total_seconds was added in 2.7.
metrics/views.py | 25 +++++++++++++++++--------
1 files changed, 17 insertions(+), 8 deletions(-)
---
diff --git a/metrics/views.py b/metrics/views.py
index f3f1048..2040b9e 100644
--- a/metrics/views.py
+++ b/metrics/views.py
@@ -17,6 +17,15 @@ from signed_request import check_signature, BadSignature
_EPOCH = datetime(1970, 1, 1)
+# timedelta.total_seconds added in 2.7
+if hasattr(timedelta, 'total_seconds'):
+ def unix_time(dt):
+ total_seconds(dt - _EPOCH)
+else:
+ def unix_time(dt):
+ td = dt - _EPOCH
+ return float(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
+
def home(request):
t = loader.get_template('metrics/home.html')
@@ -25,8 +34,8 @@ def home(request):
c = Context({
'page_name': 'home',
'metrics': config.Metric.all(),
- 'min_time': (time_range['min'] - _EPOCH).total_seconds(),
- 'max_time': (time_range['max'] - _EPOCH).total_seconds(),
+ 'min_time': unix_time(time_range['min']),
+ 'max_time': unix_time(time_range['max']),
'targets': config.Target.all()
})
return HttpResponse(t.render(c))
@@ -47,8 +56,8 @@ def metric(request, metric_name):
c = Context({
'page_name': 'metric',
'metric': metric,
- 'min_time': (time_range['min'] - _EPOCH).total_seconds(),
- 'max_time': (time_range['max'] - _EPOCH).total_seconds(),
+ 'min_time': unix_time(time_range['min']),
+ 'max_time': unix_time(time_range['max']),
'targets': config.Target.all()
})
return HttpResponse(t.render(c))
@@ -73,8 +82,8 @@ def target(request, machine_name, partition_name, tree_name, testset_name):
'tree': target.tree,
'testset': target.testset,
'metrics': config.Metric.all(),
- 'min_time': (time_range['min'] - _EPOCH).total_seconds(),
- 'max_time': (time_range['max'] - _EPOCH).total_seconds(),
+ 'min_time': unix_time(time_range['min']),
+ 'max_time': unix_time(time_range['max']),
'targets': config.Target.all()
})
return HttpResponse(t.render(c))
@@ -173,7 +182,7 @@ def values(request):
last_target = target_name
target_data['values'].append({
- 'time': (value.report.pull_time - _EPOCH).total_seconds(),
+ 'time': unix_time(value.report.pull_time),
'value': value.value
})
else:
@@ -204,7 +213,7 @@ def values(request):
last_target = target_name
target_data['values'].append({
- 'time': (summary.time - _EPOCH).total_seconds(),
+ 'time': unix-time(summary.time),
'avg': summary.avg_value,
'min': summary.min_value,
'max': summary.max_value,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]