X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=cached%2Fweather_data.py;fp=cached%2Fweather_data.py;h=8793bd315940b8ef16fb63d059b14b178fabc153;hb=01762dc93591fda9cd179ee6faa32145790800b4;hp=29a1d544b042101042eeb9d0a1eb781de094e427;hpb=dab4a70ccc2ad9c4a708fc738f07ec8022b3d406;p=python_utils.git diff --git a/cached/weather_data.py b/cached/weather_data.py index 29a1d54..8793bd3 100644 --- a/cached/weather_data.py +++ b/cached/weather_data.py @@ -11,7 +11,7 @@ import logging import os import urllib.request from dataclasses import dataclass -from typing import Any, List +from typing import Any, Dict, List, Optional from overrides import overrides @@ -20,6 +20,8 @@ import config import datetime_utils import list_utils import persistent +import scott_secrets +import type_utils logger = logging.getLogger(__name__) @@ -56,7 +58,7 @@ class WeatherData: @persistent.persistent_autoloaded_singleton() # type: ignore class CachedWeatherData(persistent.Persistent): - def __init__(self, weather_data=None): + def __init__(self, weather_data: Dict[datetime.date, WeatherData] = None): if weather_data is not None: self.weather_data = weather_data return @@ -80,12 +82,12 @@ class CachedWeatherData(persistent.Persistent): } now = datetime.datetime.now() dates = set() - highs = {} - lows = {} - conditions = {} - precip = {} + highs: Dict[datetime.date, Optional[float]] = {} + lows: Dict[datetime.date, Optional[float]] = {} + conditions: Dict[datetime.date, List[str]] = {} + precip: Dict[datetime.date, float] = {} param = "id=5786882" # Bellevue, WA - key = "c0b160c49743622f62a9cd3cda0270b3" + key = scott_secrets.OPEN_WEATHER_MAP_KEY www = urllib.request.urlopen( f'http://api.openweathermap.org/data/2.5/weather?zip=98005,us&APPID={key}&units=imperial' ) @@ -173,8 +175,8 @@ class CachedWeatherData(persistent.Persistent): icon = '🌙' self.weather_data[dt] = WeatherData( date=dt, - high=highs[dt], - low=lows[dt], + high=type_utils.unwrap_optional(highs[dt]), + low=type_utils.unwrap_optional(lows[dt]), precipitation_inches=precip[dt] / 25.4, conditions=conditions[dt], most_common_condition=most_common_condition,