示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#5
0
    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