async def get_async_data(): darksky = DarkSkyAsync("api_key") with aioresponses.aioresponses() as resp: resp.get(re.compile(".+"), status=200, payload=copy.deepcopy(DATA)) result = await darksky.get_forecast(DATA["latitude"], DATA["longitude"]) return result
async def get_async_data(): darksky = DarkSkyAsync('api_key') with aioresponses.aioresponses() as m: m.get(re.compile('.+'), status=200, payload=copy.deepcopy(DATA)) result = await darksky.get_forecast(DATA['latitude'], DATA['longitude']) # we need to run this manually otherwise we get warnings await darksky.request_manager.session.close() return result
def get_forecast_async(self, coordinate): # Asynchronous way # NOTE! On Mac os you will have problem with ssl checking https://github.com/aio-libs/aiohttp/issues/2822 # So you need to create your own session with disabled ssl verify and pass it into the get_forecast # session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) # darksky = DarkSkyAsync(API_KEY) # forecast = await darksky.get_forecast( # *arguments*, # client_session=session # ) API_KEY = self.config.get_config('darksky', 'api', '9bd0b8315895a1c550505b281fc082ff') darksky = DarkSkyAsync(API_KEY) #latitude = 42.3601 #longitude = -71.0589 latitude, longitude = coordinate forecast = darksky.get_forecast( latitude, longitude, extend=False, # default `False` lang=languages.ENGLISH, # default `ENGLISH` values_units=units.AUTO, # default `auto` exclude=[weather.MINUTELY, weather.ALERTS], # default `[]` timezone='Asia/Makassar', # default None - will be set by DarkSky API automatically, client_session=aiohttp.ClientSession() # default aiohttp.ClientSession() ) # Final wrapper identical for both ways forecast.latitude # 42.3601 forecast.longitude # -71.0589 forecast.timezone # timezone for coordinates. For exmaple: `America/New_York` forecast.currently # CurrentlyForecast. Can be found at darksky/forecast.py forecast.minutely # MinutelyForecast. Can be found at darksky/forecast.py forecast.hourly # HourlyForecast. Can be found at darksky/forecast.py forecast.daily # DailyForecast. Can be found at darksky/forecast.py forecast.alerts # [Alert]. Can be found at darksky/forecast.py return forecast
def __init__(self, hass, config): """Initialize the data object.""" lat = config[DOMAIN].get(CONF_LATITUDE, hass.config.latitude) long = config[DOMAIN].get(CONF_LONGITUDE, hass.config.longitude) self._hass = hass self._darksky = DarkSkyAsync(config[DOMAIN][CONF_API_KEY]) self._units = config[DOMAIN].get(CONF_UNITS) self._latitude = lat self._longitude = long self._language = config[DOMAIN][CONF_LANGUAGE] if self._units is None and hass.config.units.is_metric: self._units = units.SI elif self._units is None: self._units = units.US
time=t ) # Asynchronous way # NOTE! On Mac os you will have problem with ssl checking https://github.com/aio-libs/aiohttp/issues/2822 # So you need to create your own session with disabled ssl verify and pass it into the get_forecast # session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) # darksky = DarkSkyAsync(API_KEY) # forecast = await darksky.get_forecast( # *arguments*, # client_session=session # ) # CAN'T SIGN UP SO CAN'T GET AN API KEY FROM THE SITE. darksky = DarkSkyAsync(API_KEY) latitude = 42.3601 longitude = -71.0589 forecast = await darksky.get_forecast( latitude, longitude, extend=False, # default `False` lang=languages.ENGLISH, # default `ENGLISH` values_units=units.AUTO, # default `auto` exclude=[weather.MINUTELY, weather.ALERTS], # default `[]` timezone='UTC' # default None - will be set by DarkSky API automatically, client_session=aiohttp.ClientSession() # default aiohttp.ClientSession() ) print(forecast.currently.temperature) # Final wrapper identical for both ways