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)
|