@@ -149,7 +149,7 @@ def send_measurement(self, measurement):
149149 status , _ = self .http_client .post (
150150 MEASUREMENTS_URI ,
151151 params = {'appid' : self .API_key },
152- data = [measurement . to_dict ( )],
152+ data = [self . _structure_dict ( measurement )],
153153 headers = {'Content-Type' : 'application/json' })
154154
155155 def send_measurements (self , list_of_measurements ):
@@ -165,7 +165,7 @@ def send_measurements(self, list_of_measurements):
165165 """
166166 assert list_of_measurements is not None
167167 assert all ([m .station_id is not None for m in list_of_measurements ])
168- msmts = [m . to_dict ( ) for m in list_of_measurements ]
168+ msmts = [self . _structure_dict ( m ) for m in list_of_measurements ]
169169 status , _ = self .http_client .post (
170170 MEASUREMENTS_URI ,
171171 params = {'appid' : self .API_key },
@@ -227,42 +227,43 @@ def send_buffer(self, buffer):
227227 :returns: `None` if creation is successful, an exception otherwise
228228 """
229229 assert buffer is not None
230- msmts = []
231- for x in buffer .measurements :
232- m = x .to_dict ()
233- item = dict ()
234- item ['station_id' ] = m ['station_id' ]
235- item ['dt' ] = m ['timestamp' ]
236- item ['temperature' ] = m ['temperature' ]
237- item ['wind_speed' ] = m ['wind_speed' ]
238- item ['wind_gust' ] = m ['wind_gust' ]
239- item ['wind_deg' ] = m ['wind_deg' ]
240- item ['pressure' ] = m ['pressure' ]
241- item ['humidity' ] = m ['humidity' ]
242- item ['rain_1h' ] = m ['rain_1h' ]
243- item ['rain_6h' ] = m ['rain_6h' ]
244- item ['rain_24h' ] = m ['rain_24h' ]
245- item ['snow_1h' ] = m ['snow_1h' ]
246- item ['snow_6h' ] = m ['snow_6h' ]
247- item ['snow_24h' ] = m ['snow_24h' ]
248- item ['dew_point' ] = m ['dew_point' ]
249- item ['humidex' ] = m ['humidex' ]
250- item ['heat_index' ] = m ['heat_index' ]
251- item ['visibility_distance' ] = m ['visibility_distance' ]
252- item ['visibility_prefix' ] = m ['visibility_prefix' ]
253- item ['clouds' ] = [dict (distance = m ['clouds_distance' ]),
254- dict (condition = m ['clouds_condition' ]),
255- dict (cumulus = m ['clouds_cumulus' ])]
256- item ['weather' ] = [
257- dict (precipitation = m ['weather_precipitation' ]),
258- dict (descriptor = m ['weather_descriptor' ]),
259- dict (intensity = m ['weather_intensity' ]),
260- dict (proximity = m ['weather_proximity' ]),
261- dict (obscuration = m ['weather_obscuration' ]),
262- dict (other = m ['weather_other' ])]
263- msmts .append (item )
230+ msmts = [self ._structure_dict (m ) for m in buffer .measurements ]
264231 status , _ = self .http_client .post (
265232 MEASUREMENTS_URI ,
266233 params = {'appid' : self .API_key },
267234 data = msmts ,
268235 headers = {'Content-Type' : 'application/json' })
236+
237+ def _structure_dict (self , measurement ):
238+ d = measurement .to_dict ()
239+ item = dict ()
240+ item ['station_id' ] = d ['station_id' ]
241+ item ['dt' ] = d ['timestamp' ]
242+ item ['temperature' ] = d ['temperature' ]
243+ item ['wind_speed' ] = d ['wind_speed' ]
244+ item ['wind_gust' ] = d ['wind_gust' ]
245+ item ['wind_deg' ] = d ['wind_deg' ]
246+ item ['pressure' ] = d ['pressure' ]
247+ item ['humidity' ] = d ['humidity' ]
248+ item ['rain_1h' ] = d ['rain_1h' ]
249+ item ['rain_6h' ] = d ['rain_6h' ]
250+ item ['rain_24h' ] = d ['rain_24h' ]
251+ item ['snow_1h' ] = d ['snow_1h' ]
252+ item ['snow_6h' ] = d ['snow_6h' ]
253+ item ['snow_24h' ] = d ['snow_24h' ]
254+ item ['dew_point' ] = d ['dew_point' ]
255+ item ['humidex' ] = d ['humidex' ]
256+ item ['heat_index' ] = d ['heat_index' ]
257+ item ['visibility_distance' ] = d ['visibility_distance' ]
258+ item ['visibility_prefix' ] = d ['visibility_prefix' ]
259+ item ['clouds' ] = [dict (distance = d ['clouds_distance' ]),
260+ dict (condition = d ['clouds_condition' ]),
261+ dict (cumulus = d ['clouds_cumulus' ])]
262+ item ['weather' ] = [
263+ dict (precipitation = d ['weather_precipitation' ]),
264+ dict (descriptor = d ['weather_descriptor' ]),
265+ dict (intensity = d ['weather_intensity' ]),
266+ dict (proximity = d ['weather_proximity' ]),
267+ dict (obscuration = d ['weather_obscuration' ]),
268+ dict (other = d ['weather_other' ])]
269+ return item
0 commit comments