X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomtask%2Fdays.py;h=4e0c4747809bc1e352e492cf619fafb41f3f0bbb;hb=96b8f35df2ed6f7db0c7c8ffa8234e2925e8756c;hp=071b0b1b27d76b676d02ee4d4530563a5ba547b5;hpb=30bc39c0af52c9fc474d3be0c040b7effe761187;p=plomtask diff --git a/plomtask/days.py b/plomtask/days.py index 071b0b1..4e0c474 100644 --- a/plomtask/days.py +++ b/plomtask/days.py @@ -1,15 +1,27 @@ """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):