"""Collecting Day and date-related items."""
from datetime import datetime
+from plomtask.misc import HandledException
DATE_FORMAT = '%Y-%m-%d'
+def date_valid(date: str):
+ """Validate date against DATE_FORMAT, return Datetime or None."""
+ try:
+ result = datetime.strptime(date, DATE_FORMAT)
+ except (ValueError, TypeError):
+ return None
+ return result
+
+
class Day:
"""Individual days defined by their dates."""
def __init__(self, date: str):
self.date = date
- self.datetime = datetime.strptime(date, DATE_FORMAT)
+ self.datetime = date_valid(self.date)
+ if not self.datetime:
+ raise HandledException(f'Given date of wrong format: {self.date}')
@property
def weekday(self):