Files
MLPproject/.venv/lib/python3.12/site-packages/isoduration/parser/__init__.py
2025-10-23 15:44:32 +02:00

29 lines
739 B
Python

from isoduration.parser.exceptions import EmptyDuration
from isoduration.parser.parsing import parse_date_duration
from isoduration.parser.util import is_period
from isoduration.types import Duration
def parse_duration(duration_str: str) -> Duration:
if len(duration_str) < 2:
raise EmptyDuration("No duration information provided")
beginning = 1
first = duration_str[beginning - 1]
sign = +1
if first == "+":
beginning += 1
if first == "-":
sign = -1
beginning += 1
prefix = duration_str[beginning - 1]
duration = duration_str[beginning:]
if not is_period(prefix):
raise EmptyDuration("No prefix provided")
return parse_date_duration(duration, sign)