Source code for glideinwms.factory.tools.lib.gWftArgsHelper

# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0

# Description:
#   Argument parser helper


[docs] def str2int_range(str, min, max): try: val = int(str) except ValueError: raise ValueError("Must be a number.") from None if (val < min) or (val > max): raise ValueError("Must be in the range %i-%i." % (min, max)) return val
[docs] def parse_date(str): arr = str.split("/") if len(arr) != 3: raise ValueError("Invalid date '%s'. Expected YY/MM/DD." % str) try: year = int(arr[0]) except ValueError: raise ValueError("Invalid year '%s'. Must be a number." % arr[0]) if year < 100: year = year + 2000 try: mon = str2int_range(arr[1], 1, 12) except ValueError as e: raise ValueError(f"Invalid month '{arr[1]}'. {e}") from None try: day = str2int_range(arr[2], 1, 31) except ValueError as e: raise ValueError(f"Invalid day '{arr[2]}'. {e}") from None return (year, mon, day)
[docs] def parse_time(str): arr = str.split(":") if len(arr) != 3: raise ValueError("Invalid time '%s'. Expected hh:mm:ss." % str) try: hour = str2int_range(arr[0], 0, 23) except ValueError as e: raise ValueError(f"Invalid hour '{arr[0]}'. {e}") from None try: min = str2int_range(arr[1], 0, 59) except ValueError as e: raise ValueError(f"Invalid minute '{arr[1]}'. {e}") from None try: sec = str2int_range(arr[2], 0, 59) except ValueError as e: raise ValueError(f"Invalid second '{arr[2]}'. {e}") from None return (hour, min, sec)