diff options
Diffstat (limited to 'argparse_utils.py')
| -rw-r--r-- | argparse_utils.py | 20 |
1 files changed, 20 insertions, 0 deletions
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) |
