mypy clean
[kiosk.git] / gcal_renderer.py
index 37f8c8e50671b32e2c432ead74221c01359fe58f..11f530451e2bd4f58763fcc306176aefff6aaade 100644 (file)
@@ -4,12 +4,12 @@
 contents of several Google calendars."""
 
 import datetime
-import gdata
+import gdata  # type: ignore
 import gdata_oauth
-from oauth2client.client import AccessTokenRefreshError
+from oauth2client.client import AccessTokenRefreshError  # type: ignore
 import os
 import time
-from typing import Dict, List, Tuple
+from typing import Dict, List, Optional, Tuple
 
 import constants
 import file_writer
@@ -39,13 +39,13 @@ class gcal_renderer(renderer.debuggable_abstaining_renderer):
 
         def __init__(
             self,
-            start_time: datetime.datetime,
-            end_time: datetime.datetime,
+            start_time: Optional[datetime.datetime],
+            end_time: Optional[datetime.datetime],
             summary: str,
             calendar: str,
         ) -> None:
             if start_time is None:
-                assert end_time is None
+                assert(end_time is None)
             self.start_time = start_time
             self.end_time = end_time
             self.summary = summary
@@ -87,8 +87,8 @@ class gcal_renderer(renderer.debuggable_abstaining_renderer):
         super(gcal_renderer, self).__init__(name_to_timeout_dict, True)
         self.oauth = oauth
         self.client = self.oauth.calendar_service()
-        self.sortable_events = []
-        self.countdown_events = []
+        self.sortable_events: List[gcal_renderer.comparable_event] = []
+        self.countdown_events: List[gcal_renderer.comparable_event] = []
 
     def debug_prefix(self) -> str:
         return "gcal"
@@ -100,25 +100,20 @@ class gcal_renderer(renderer.debuggable_abstaining_renderer):
         elif key == "Look For Triggered Events":
             return self.look_for_triggered_events()
         else:
-            raise error("Unexpected operation")
+            raise Exception("Unexpected operation")
 
     def get_min_max_timewindow(self) -> Tuple[str, str]:
         now = datetime.datetime.now()
-        time_min = now - datetime.timedelta(1)
-        time_max = now + datetime.timedelta(95)
-        time_min, time_max = list(
-            map(
-                lambda x: datetime.datetime.strftime(x, "%Y-%m-%dT%H:%M:%SZ"),
-                (time_min, time_max),
-            )
-        )
-        print(type(time_min))
-        self.debug_print("time_min is %s" % time_min)
-        self.debug_print("time_max is %s" % time_max)
+        _time_min = now - datetime.timedelta(1)
+        _time_max = now + datetime.timedelta(95)
+        time_min = datetime.datetime.strftime(_time_min, "%Y-%m-%dT%H:%M:%SZ")
+        time_max = datetime.datetime.strftime(_time_max, "%Y-%m-%dT%H:%M:%SZ")
+        self.debug_print(f"time_min is {time_min}")
+        self.debug_print(f"time_max is {time_max}")
         return (time_min, time_max)
 
     @staticmethod
-    def parse_date(date_str: str) -> datetime.datetime:
+    def parse_date(date_str: str) -> Optional[datetime.datetime]:
         retval = None
         try:
             _ = date_str.get("date")
@@ -225,6 +220,8 @@ class gcal_renderer(renderer.debuggable_abstaining_renderer):
                 timestamps = {}
                 for event in upcoming_countdown_events:
                     eventstamp = event.start_time
+                    if eventstamp is None:
+                        return False
                     name = event.friendly_name()
                     delta = eventstamp - now
                     x = int(delta.total_seconds())
@@ -251,8 +248,8 @@ class gcal_renderer(renderer.debuggable_abstaining_renderer):
                         )
                 g.write("</ul>")
                 g.write("<SCRIPT>\nlet timestampMap = new Map([")
-                for x in list(timestamps.keys()):
-                    g.write(f'    ["{x}", {timestamps[x] * 1000.0}],\n')
+                for _ in list(timestamps.keys()):
+                    g.write(f'    ["{_}", {timestamps[_] * 1000.0}],\n')
                 g.write("]);\n\n")
                 g.write(
                     """
@@ -305,6 +302,8 @@ var fn = setInterval(function() {
             count = 0
             for event in self.sortable_events:
                 eventstamp = event.start_time
+                if eventstamp is None:
+                    return False
                 delta = eventstamp - now
                 x = int(delta.total_seconds())
                 if x > 0 and x <= constants.seconds_per_minute * 3: