Use defaultdict to simplify code.
[chrisu/seepark.git] / web / seepark_web.py
index 3ca0b51eb547d7e20a062442633c00409a98d412..95c3f9dea734df366631f66bc8d3f1b12eb2aa01 100644 (file)
@@ -4,6 +4,7 @@ import time
 import configparser
 import os
 import sys
+from collections import defaultdict
 from flask import Flask, render_template, jsonify, request
 import flask.json
 from sqlalchemy import create_engine
@@ -87,13 +88,9 @@ def select_sensordata(initial_where, initial_sql_args):
 
     format = request.args.get('format', 'default')
     if format == 'c3':
-        c3result = dict()
+        c3result = defaultdict(list)
         for row in result:
-            if not row['sensor_id'] in c3result:
-                c3result[row['sensor_id']] = list()
             c3result[row['sensor_id']].append(row['value'])
-            if not row['sensor_id'] + '_x' in c3result:
-                c3result[row['sensor_id'] + '_x'] = list()
             dt = row['timestamp'].strftime('%Y-%m-%d %H:%M:%S')
             c3result[row['sensor_id'] + '_x'].append(dt)
         result = c3result
@@ -114,7 +111,7 @@ def currentwatertemperature(sensorid):
     with engine.connect() as conn:
         cursor = conn.execute('select value, timestamp from sensors where sensor_id=%s order by timestamp desc limit 1', sensorid)
         result = [dict(row) for row in cursor]
-        return result[0]['value'], result[0]['timestamp'].strftime('%Y-%m-%d %H:%M')
+        return result[0]['value'], result[0]['timestamp']
 
 
 @app.route('/api/<version>/sensors/')
@@ -189,7 +186,6 @@ def data(timespan):
 def index():
     airvalue, airtime     = currentairtemperature(apikey, cityid)
     watervalue, watertime = currentwatertemperature('0316a21383ff') # config? mainwatertemp?
-    watervalue            = "{:.1f}".format(watervalue) if isinstance(watervalue, float) else watervalue
 
     return render_template(
         'seepark_web.html',