Source code for WunderWeather.date
"""
.. module:: date
:platform: Unix, Windows
:synopsis: Module to abstract the date based data features for wunderground
.. moduleauthor:: Tyler Santos <1tsantos at gmail.com>
"""
__docformat__ = 'reStructuredText'
# local Ms
#from weather_base import WeatherBase
from WunderWeather.weather_base import WeatherBase
[docs]class Date(WeatherBase):
"""
Wrapper for one (date) history type data feature response.
"""
def __init__(self, data, *args, **kwargs):
super(Date, self).__init__(data, *args, **kwargs)
"""constructor to interface with feature response
Args:
data (dict): JSON response
"""
pass
@property
def temp_f(self):
return self.extract_value(['dailysummary', 0, 'meantempi'])
@property
def temp_c(self):
return self.extract_value(['dailysummary', 0, 'meantempm'])
@property
def observations(self):
"""Abstract the observations for given date
Notes:
In a date based response (History,Yesterday) there is a list of observations.
Attributes:
observations (list): List of dictionaries for each observation for the date
Returns:
list of Observation instances
"""
observations = self.extract_value(['observations'])
if observations:
return [Observation(data=obs) for obs in observations]
[docs]class Observation(WeatherBase):
"""
Wrapper for one date based data feature's observations
"""
def __init__(self, data, *args, **kwargs):
super(Observation, self).__init__(data, *args, **kwargs)
"""constructor to interface with feature response for one observation
Args:
data (dict): JSON response
"""
pass
@property
def temp_f(self):
return self.extract_value(['tempi'])
@property
def temp_c(self):
return self.extract_value(['tempm'])
@property
def date_pretty(self):
return self.extract_value(['date', 'pretty'])
[docs]class Range(WeatherBase):
"""
Wrapper for one (date) history type data feature response.
"""
def __init__(self, data, *args, **kwargs):
super(Range, self).__init__(data, *args, **kwargs)
"""constructor to interface with feature response
Args:
data (dict): JSON response
"""
pass
@property
def high_avg_temp_f(self):
return self.extract_value(['temp_high', 'avg', 'F'])
@property
def high_avg_temp_c(self):
return self.extract_value(['temp_high', 'avg', 'C'])
@property
def low_avg_temp_f(self):
return self.extract_value(['temp_low', 'avg', 'F'])
@property
def low_avg_temp_c(self):
return self.extract_value(['temp_low', 'avg', 'C'])