More type annotations.
[python_utils.git] / cached / weather_data.py
index 8d49736bae0cf264fc7447c150011f616ccec388..45b6e6efc5d9d3c4cbd07f0996633d835aa4a98a 100644 (file)
@@ -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