summaryrefslogtreecommitdiff
path: root/argparse_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'argparse_utils.py')
-rw-r--r--argparse_utils.py20
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)