X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=cached%2Fweather_data.py;h=45b6e6efc5d9d3c4cbd07f0996633d835aa4a98a;hb=31c81f6539969a5eba864d3305f9fb7bf716a367;hp=8d49736bae0cf264fc7447c150011f616ccec388;hpb=aad84a3abe06d127918d09f2ad3b8f4264a9d02b;p=python_utils.git diff --git a/cached/weather_data.py b/cached/weather_data.py index 8d49736..45b6e6e 100644 --- a/cached/weather_data.py +++ b/cached/weather_data.py @@ -5,9 +5,11 @@ import datetime import json import logging import os -from typing import List +from typing import Any, List import urllib.request +from overrides import overrides + import argparse_utils import config import datetime_utils @@ -23,7 +25,7 @@ cfg = config.add_commandline_args( cfg.add_argument( '--weather_data_cachefile', type=str, - default=f'{os.environ["HOME"]}/.weather_summary_cache', + default=f'{os.environ["HOME"]}/cache/.weather_summary_cache', metavar='FILENAME', help='File in which to cache weather data' ) @@ -164,7 +166,7 @@ class CachedWeatherData(persistent.Persistent): ): self.weather_data[today].high = high continue - most_common_condition = list_utils.most_common_item(conditions[dt]) + most_common_condition = list_utils.most_common(conditions[dt]) icon = icon_by_condition.get(most_common_condition, '?') if dt == now.date() and now.hour > 18 and condition == 'Clear': icon = '🌙' @@ -179,7 +181,8 @@ class CachedWeatherData(persistent.Persistent): ) @classmethod - def load(cls): + @overrides + def load(cls) -> Any: if persistent.was_file_written_within_n_seconds( config.config['weather_data_cachefile'], config.config['weather_data_stalest_acceptable'].total_seconds(), @@ -190,7 +193,8 @@ class CachedWeatherData(persistent.Persistent): return cls(weather_data) return None - def save(self): + @overrides + def save(self) -> bool: import pickle with open(config.config['weather_data_cachefile'], 'wb') as wf: pickle.dump( @@ -198,3 +202,4 @@ class CachedWeatherData(persistent.Persistent): wf, pickle.HIGHEST_PROTOCOL, ) + return True