+
+
+def valid_date(txt: str) -> datetime.date:
+ from string_utils import to_date
+ date = to_date(txt)
+ if date is not None:
+ return date
+ msg = f'Cannot parse argument as a date: {txt}'
+ logger.warning(msg)
+ raise argparse.ArgumentTypeError(msg)
+
+
+def valid_datetime(txt: str) -> datetime.datetime:
+ from string_utils import to_datetime
+ dt = to_datetime(txt)
+ if dt is not None:
+ return dt
+ msg = f'Cannot parse argument as datetime: {txt}'
+ logger.warning(msg)
+ raise argparse.ArgumentTypeError(msg)