import zeep.cache
import zeep.transports
-__version__ = '3.2.1'
+__version__ = '3.2.3'
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.NOTSET)
#LOG.addHandler(logging.handlers.SysLogHandler())
# fallback to stdout
handler = logging.StreamHandler(sys.stdout)
+ formatter = logging.Formatter('%(asctime)s.%(msecs)03d '
+ '%(levelname)s %(module)s - '
+ '%(funcName)s: %(message)s',
+ '%Y-%m-%d %H:%M:%S')
+ handler.setFormatter(formatter)
LOG.addHandler(handler)
# ugly, but passable
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])
# 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)
+ 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
# construct final, completed API URL
api_req_url = station['source'] + '&start=' + begin_date_str + '&end=' + end_date_str
- req = requests.get(api_req_url)
+
+ try:
+ req = requests.get(api_req_url)
+ except requests.exceptions.ConnectionError:
+ LOG.error("Could not connect to '%s'", api_req_url)
+ sys.exit(1)
try:
json = req.json()