Я использую isodate для анализа продолжительности в изоформате по датам:
>>> isodate.parse_duration("P1M")
isodate.duration.Duration(0, 0, 0, years=0, months=1)
>>> isodate.parse_duration("P1D")
datetime.timedelta(1)
Месяцы разбиты на duration
объекты, а дни - на timedelta
объекты, как описано в документации: https://pypi.org/project/isodate/
Я хочу проверить, больше ли значение переменной, которая может иметь тип duration
или тип timedelta
, больше 0. Метод, который работает для типа duration
, не работает длятип timedelta
и наоборот.
>>> isodate.parse_duration("P1M") > 0
True
>>> isodate.parse_duration("P1D") > 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.timedelta to int
>>> isodate.parse_duration("P1M") > timedelta.min
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.timedelta to Duration
>>> isodate.parse_duration("P1D") > timedelta.min
True
Что является хорошим решением для этого?