Skip to content

parse_duration

autogen.beta.network.rule.parse_duration #

parse_duration(s)

Parse a duration string into seconds.

Accepts "30s", "15m", "2h", "1d", plain integer strings (treated as seconds), or already-parsed int. Empty string returns 0. Raises ValueError on unknown unit.

Source code in autogen/beta/network/rule.py
def parse_duration(s: str | int) -> int:
    """Parse a duration string into seconds.

    Accepts ``"30s"``, ``"15m"``, ``"2h"``, ``"1d"``, plain integer
    strings (treated as seconds), or already-parsed ``int``. Empty
    string returns 0. Raises ``ValueError`` on unknown unit.
    """
    if isinstance(s, int):
        return s
    if not s:
        return 0
    if s[-1] in _DURATION_UNITS:
        unit = s[-1]
        value = s[:-1]
        return int(value) * _DURATION_UNITS[unit]
    return int(s)