From 3bc4daf1edc121cd633429187392227f2fa61885 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Thu, 8 Jul 2021 19:44:27 -0700 Subject: Lots of changes. --- argparse_utils.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'argparse_utils.py') diff --git a/argparse_utils.py b/argparse_utils.py index 75bec04..80046de 100644 --- a/argparse_utils.py +++ b/argparse_utils.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import argparse +import datetime import logging import os @@ -79,6 +80,7 @@ def valid_mac(mac: str) -> str: def valid_percentage(num: str) -> float: + num = num.strip('%') n = float(num) if 0.0 <= n <= 100.0: return n @@ -94,3 +96,21 @@ def valid_filename(filename: str) -> str: msg = f"{filename} was not found and is therefore invalid." logger.warning(msg) raise argparse.ArgumentTypeError(msg) + + +def valid_date(txt: str) -> datetime.date: + date = string_utils.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: + dt = string_utils.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) -- cgit v1.3