def parse_duration()

in bonsaicli2/bonsai_cli/commands/assessment.py [0:0]


def parse_duration(input: str) -> Optional[timedelta]:
    try:
        return timedelta(hours=int(input))
    except:
        pass

    parts = _DURATION_REGEX.match(input)

    if not parts:
        return None

    timedelta_kwargs: Dict[str, int] = {}

    for (unit, value) in parts.groupdict().items():
        if value is not None:
            timedelta_kwargs.update({unit: int(value)})

    return timedelta(**timedelta_kwargs)