1 """Collecting Day and date-related items."""
2 from datetime import datetime
3 from plomtask.misc import HandledException
5 DATE_FORMAT = '%Y-%m-%d'
8 def date_valid(date: str):
9 """Validate date against DATE_FORMAT, return Datetime or None."""
11 result = datetime.strptime(date, DATE_FORMAT)
12 except (ValueError, TypeError):
18 """Individual days defined by their dates."""
20 def __init__(self, date: str):
22 self.datetime = date_valid(self.date)
24 raise HandledException(f'Given date of wrong format: {self.date}')
28 """Return what weekday matches self.date."""
29 return self.datetime.strftime('%A')
31 def __eq__(self, other: object):
32 return isinstance(other, self.__class__) and self.date == other.date
34 def __lt__(self, other):
35 return self.date < other.date