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