Fix possibility of a NoneType raising a TypeError
[infoex-autowx.git] / infoex-autowx.py
index 1f25bc5a278687b385ac03de3abcda41ae9dc014..25ef4158616ff37a16e9b8dd0e1551be04ca1f9a 100755 (executable)
@@ -43,7 +43,7 @@ import zeep
 import zeep.cache
 import zeep.transports
 
 import zeep.cache
 import zeep.transports
 
-__version__ = '3.2.1'
+__version__ = '3.2.2'
 
 LOG = logging.getLogger(__name__)
 LOG.setLevel(logging.NOTSET)
 
 LOG = logging.getLogger(__name__)
 LOG.setLevel(logging.NOTSET)
@@ -275,6 +275,9 @@ def main():
             LOG.warning("BAD KEY wx_data['%s']", element_cd)
             continue
 
             LOG.warning("BAD KEY wx_data['%s']", element_cd)
             continue
 
+        if infoex['wx_data'][element_cd] is None:
+            continue
+
         # do the conversion before the rounding
         if station['provider'] == 'nrcs' and station['units'] == 'metric':
             infoex['wx_data'][element_cd] = convert_nrcs_units_to_metric(element_cd, infoex['wx_data'][element_cd])
         # do the conversion before the rounding
         if station['provider'] == 'nrcs' and station['units'] == 'metric':
             infoex['wx_data'][element_cd] = convert_nrcs_units_to_metric(element_cd, infoex['wx_data'][element_cd])
@@ -286,14 +289,14 @@ def main():
         #                   direction, wind gust, snow depth
         # 1 decimal place:  air temp, baro
         # Avoid transforming None values
         #                   direction, wind gust, snow depth
         # 1 decimal place:  air temp, baro
         # Avoid transforming None values
-        if infoex['wx_data'][element_cd] is None:
-            continue
-        elif element_cd in ['wind_speed', 'WSPD', 'wind_direction',
-                            'RHUM', 'relative_humidity', 'WDIR',
-                            'wind_gust', 'SNWD', 'snow_depth']:
+        if element_cd in ['wind_speed', 'WSPD', 'wind_direction',
+                          'RHUM', 'relative_humidity', 'WDIR',
+                          'wind_gust', 'SNWD', 'snow_depth']:
             infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd])
         elif element_cd in ['TOBS', 'air_temp', 'PRES', 'pressure']:
             infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd], 1)
             infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd])
         elif element_cd in ['TOBS', 'air_temp', 'PRES', 'pressure']:
             infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd], 1)
+        elif element_cd in ['PREC', 'precip_accum']:
+            infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd], 2)
 
         # CONSIDER: Casting every value to Float() -- need to investigate if
         #           any possible elementCds we may want are any other data
 
         # CONSIDER: Casting every value to Float() -- need to investigate if
         #           any possible elementCds we may want are any other data