Reduce import scopes, remove cycles.
[python_utils.git] / argparse_utils.py
index 80046dee7b2c4619406bfec618d131df24d1e5c3..02db0f08e762e9a430c9f03f7ce08a4a0acdb7b6 100644 (file)
@@ -5,8 +5,6 @@ import datetime
 import logging
 import os
 
-import string_utils
-
 logger = logging.getLogger(__name__)
 
 
@@ -58,11 +56,13 @@ class ActionNoYes(argparse.Action):
 def valid_bool(v):
     if isinstance(v, bool):
         return v
-    return string_utils.to_bool(v)
+    from string_utils import to_bool
+    return to_bool(v)
 
 
 def valid_ip(ip: str) -> str:
-    s = string_utils.extract_ip_v4(ip.strip())
+    from string_utils import extract_ip_v4
+    s = extract_ip_v4(ip.strip())
     if s is not None:
         return s
     msg = f"{ip} is an invalid IP address"
@@ -71,7 +71,8 @@ def valid_ip(ip: str) -> str:
 
 
 def valid_mac(mac: str) -> str:
-    s = string_utils.extract_mac_address(mac)
+    from string_utils import extract_mac_address
+    s = extract_mac_address(mac)
     if s is not None:
         return s
     msg = f"{mac} is an invalid MAC address"
@@ -99,7 +100,8 @@ def valid_filename(filename: str) -> str:
 
 
 def valid_date(txt: str) -> datetime.date:
-    date = string_utils.to_date(txt)
+    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}'
@@ -108,7 +110,8 @@ def valid_date(txt: str) -> datetime.date:
 
 
 def valid_datetime(txt: str) -> datetime.datetime:
-    dt = string_utils.to_datetime(txt)
+    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}'