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
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
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"
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")
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())
)
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(
"""
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: