コード例 #1
0
def get_current_conditions():
    time = (datetime.datetime.now().hour *
            6) + (datetime.datetime.now().minute / 10)
    day = datetime.datetime.now().weekday() + 1
    if day == 6 or day == 7:
        weekend = 1
    else:
        weekend = 0

    # Using the dark skies API to get current temperture and if it's raining
    forecast = Forecast(apikey='7e616dba73de03ba9222e6ed09a3e88e',
                        latitude=40.7246,
                        longitude=-74.0021)
    current = forecast.get_currently()
    mean = current['temperature']
    rain = current['precipIntensity'] * 24

    conditions = [time, rain, mean, weekend]

    for j in range(1, 8):
        if j == day:
            conditions.append(1)
        else:
            conditions.append(0)

    conditions = np.array(conditions)
    conditions = conditions.reshape(1, -1)
    return conditions
コード例 #2
0
def test_forecast_hourly():
    body_fixture = open('tests/fixtures/full.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    hourly = forecast.get_hourly()

    assert 'data' in hourly.keys()
    assert 'icon' in hourly.keys()
    assert 'summary' in hourly.keys()

    assert hourly['icon'] == u'partly-cloudy-day'
    assert hourly['summary'] == u'Mostly cloudy until tomorrow afternoon.'

    assert 'cloudCover' in hourly['data'][0].keys()
    assert 'humidity' in hourly['data'][0].keys()
    assert 'icon' in hourly['data'][0].keys()
    assert 'precipIntensity' in hourly['data'][0].keys()
    assert 'pressure' in hourly['data'][0].keys()
    assert 'summary' in hourly['data'][0].keys()
    assert 'temperature' in hourly['data'][0].keys()
    assert 'time' in hourly['data'][0].keys()
    assert 'visibility' in hourly['data'][0].keys()
    assert 'windBearing' in hourly['data'][0].keys()
    assert 'windSpeed' in hourly['data'][0].keys()

    assert len(hourly['data']) == 49
    assert hourly['data'][0]['temperature'] == 59.52
    assert str(hourly['data'][0]['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 29, 0, 0)))
コード例 #3
0
def test_forecast_hourly():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/full.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    hourly = forecast.get_hourly()
    assert 'data' in hourly.keys()
    assert 'icon' in hourly.keys()
    assert 'summary' in hourly.keys()

    assert hourly['icon'] == u'partly-cloudy-day'
    assert hourly['summary'] == u'Mostly cloudy until tomorrow afternoon.'

    assert 'cloudCover' in hourly['data'][0].keys()
    assert 'humidity' in hourly['data'][0].keys()
    assert 'icon' in hourly['data'][0].keys()
    assert 'precipIntensity' in hourly['data'][0].keys()
    assert 'pressure' in hourly['data'][0].keys()
    assert 'summary' in hourly['data'][0].keys()
    assert 'temperature' in hourly['data'][0].keys()
    assert 'time' in hourly['data'][0].keys()
    assert 'visibility' in hourly['data'][0].keys()
    assert 'windBearing' in hourly['data'][0].keys()
    assert 'windSpeed' in hourly['data'][0].keys()

    assert len(hourly['data']) == 49
    assert hourly['data'][0]['temperature'] == 59.52
    assert hourly['data'][0]['time'] == datetime(2013, 3, 28, 19, 0)
コード例 #4
0
def test_forecast_currently():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/full.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    currently = forecast.get_currently()

    assert 'precipIntensity' in currently.keys()
    assert 'temperature' in currently.keys()
    assert 'icon' in currently.keys()
    assert 'cloudCover' in currently.keys()
    assert 'summary' in currently.keys()
    assert 'pressure' in currently.keys()
    assert 'windSpeed' in currently.keys()
    assert 'visibility' in currently.keys()
    assert 'time' in currently.keys()
    assert 'humidity' in currently.keys()
    assert 'windBearing' in currently.keys()

    assert currently['temperature'] == 58.9
    assert currently.temperature == 58.9
    assert currently['summary'] == u'Mostly Cloudy'
    assert currently['time'] == datetime(2013, 3, 28, 19, 8, 25)
コード例 #5
0
def test_forecast_alerts():
    body_fixture = open('tests/fixtures/alerts.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    alerts = forecast.get_alerts()

    assert len(alerts) == 1
    assert alerts[0]['title'] == u'Freeze Warning for Marin, CA'
    assert str(alerts[0]['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 12, 12, 1, 8)))
    assert str(alerts[0]['expires'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 12, 12, 17, 0)))
コード例 #6
0
def test_forecast_alerts():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/alerts.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    alerts = forecast.get_alerts()

    assert len(alerts) == 1
    assert alerts[0]['title'] == u'Freeze Warning for Marin, CA'
    assert alerts[0]['time'] == datetime(2013, 12, 11, 19, 8)
    assert alerts[0]['expires'] == datetime(2013, 12, 12, 11, 0)
コード例 #7
0
def test_forecast_minutely():
    body_fixture = open('tests/fixtures/full.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    minutely = forecast.get_minutely()

    assert 'data' in minutely.keys()
    assert 'icon' in minutely.keys()
    assert 'summary' in minutely.keys()

    assert minutely['icon'] == u'partly-cloudy-day'
    assert minutely['summary'] == u'Mostly cloudy for the hour.'

    assert len(minutely['data']) == 61
    assert 'precipIntensity' in minutely['data'][0].keys()
    assert 'time' in minutely['data'][0].keys()
    assert str(minutely['data'][0]['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 29, 0, 8)))
コード例 #8
0
def test_forecast_daily():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/full.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    daily = forecast.get_daily()

    assert 'data' in daily.keys()
    assert 'icon' in daily.keys()
    assert 'summary' in daily.keys()

    assert daily['icon'] == u'rain'
    assert daily['summary'] == u'Mixed precipitation off-and-on throughout the week; temperatures peaking at 70\xb0 on Sunday.'

    assert len(daily['data']) == 8
    assert 'cloudCover' in daily['data'][0].keys()
    assert 'humidity' in daily['data'][0].keys()
    assert 'icon' in daily['data'][0].keys()
    assert 'precipIntensity' in daily['data'][0].keys()
    assert 'precipType' in daily['data'][0].keys()
    assert 'pressure' in daily['data'][0].keys()
    assert 'summary' in daily['data'][0].keys()
    assert 'sunriseTime' in daily['data'][0].keys()
    assert 'sunsetTime' in daily['data'][0].keys()
    assert 'temperatureMax' in daily['data'][0].keys()
    assert 'temperatureMaxTime' in daily['data'][0].keys()
    assert 'temperatureMin' in daily['data'][0].keys()
    assert 'temperatureMinTime' in daily['data'][0].keys()
    assert 'time' in daily['data'][0].keys()
    assert 'visibility' in daily['data'][0].keys()
    assert 'windBearing' in daily['data'][0].keys()
    assert 'windSpeed' in daily['data'][0].keys()

    assert daily['data'][0]['temperatureMax'] == 63.85
    assert daily['data'][0]['temperatureMin'] == 35.05
    assert daily['data'][0]['time'] == datetime(2013, 3, 28, 0, 0)
    assert daily['data'][0]['sunriseTime'] == datetime(2013, 3, 28, 7, 12, 29)
    assert daily['data'][0]['sunsetTime'] == datetime(2013, 3, 28, 19, 41, 39)
    assert daily['data'][0]['temperatureMaxTime'] == datetime(2013, 3, 28, 16, 0)
    assert daily['data'][0]['temperatureMinTime'] == datetime(2013, 3, 28, 7, 0)
コード例 #9
0
def test_forecast_daily():
    body_fixture = open('tests/fixtures/full.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    daily = forecast.get_daily()

    assert 'data' in daily.keys()
    assert 'icon' in daily.keys()
    assert 'summary' in daily.keys()

    assert daily['icon'] == u'rain'
    assert daily['summary'] == u'Mixed precipitation off-and-on throughout the week; temperatures peaking at 70\xb0 on Sunday.'

    assert len(daily['data']) == 8
    assert 'cloudCover' in daily['data'][0].keys()
    assert 'humidity' in daily['data'][0].keys()
    assert 'icon' in daily['data'][0].keys()
    assert 'precipIntensity' in daily['data'][0].keys()
    assert 'precipType' in daily['data'][0].keys()
    assert 'pressure' in daily['data'][0].keys()
    assert 'summary' in daily['data'][0].keys()
    assert 'sunriseTime' in daily['data'][0].keys()
    assert 'sunsetTime' in daily['data'][0].keys()
    assert 'temperatureMax' in daily['data'][0].keys()
    assert 'temperatureMaxTime' in daily['data'][0].keys()
    assert 'temperatureMin' in daily['data'][0].keys()
    assert 'temperatureMinTime' in daily['data'][0].keys()
    assert 'time' in daily['data'][0].keys()
    assert 'visibility' in daily['data'][0].keys()
    assert 'windBearing' in daily['data'][0].keys()
    assert 'windSpeed' in daily['data'][0].keys()

    assert daily['data'][0]['temperatureMax'] == 63.85
    assert daily['data'][0]['temperatureMin'] == 35.05
    assert str(daily['data'][0]['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 5, 0)))
    assert str(daily['data'][0]['sunriseTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 12, 12, 29)))
    assert str(daily['data'][0]['sunsetTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 29, 00, 41, 39)))

    assert str(daily['data'][0]['temperatureMaxTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 21, 0)))
    assert str(daily['data'][0]['temperatureMinTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 12, 0)))
コード例 #10
0
def test_forecast_minutely():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/full.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    minutely = forecast.get_minutely()

    assert 'data' in minutely.keys()
    assert 'icon' in minutely.keys()
    assert 'summary' in minutely.keys()

    assert minutely['icon'] == u'partly-cloudy-day'
    assert minutely['summary'] == u'Mostly cloudy for the hour.'

    assert len(minutely['data']) == 61
    assert minutely['data'][0].keys() == [u'precipIntensity', u'time']
    assert minutely['data'][0]['time'] == datetime(2013, 3, 28, 19, 8)
コード例 #11
0
def test_forecast_currently():
    body_fixture = open('tests/fixtures/full.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    currently = forecast.get_currently()

    assert 'precipIntensity' in currently.keys()
    assert 'temperature' in currently.keys()
    assert 'icon' in currently.keys()
    assert 'cloudCover' in currently.keys()
    assert 'summary' in currently.keys()
    assert 'pressure' in currently.keys()
    assert 'windSpeed' in currently.keys()
    assert 'visibility' in currently.keys()
    assert 'time' in currently.keys()
    assert 'humidity' in currently.keys()
    assert 'windBearing' in currently.keys()

    assert currently['temperature'] == 58.9
    assert currently.temperature == 58.9
    assert currently['summary'] == u'Mostly Cloudy'
    assert str(currently['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 29, 0, 8, 25)))