__init__.py 778 B

123456789101112131415161718192021222324
  1. from __future__ import annotations
  2. from typing import TYPE_CHECKING
  3. from isoduration.constants import PERIOD_PREFIX
  4. from isoduration.formatter.checking import check_global_sign
  5. from isoduration.formatter.formatting import format_date, format_time
  6. if TYPE_CHECKING: # pragma: no cover
  7. from isoduration.types import Duration
  8. def format_duration(duration: Duration) -> str:
  9. global_sign = check_global_sign(duration)
  10. date_duration_str = format_date(duration.date, global_sign)
  11. time_duration_str = format_time(duration.time, global_sign)
  12. duration_str = f"{date_duration_str}{time_duration_str}"
  13. sign_str = "-" if global_sign < 0 else ""
  14. if duration_str == PERIOD_PREFIX:
  15. return f"{PERIOD_PREFIX}0D"
  16. return f"{sign_str}{duration_str}"