Предположим, у меня есть функция, которая принимает две даты и возвращает разницу в секундах:
import datetime
def diff(d1: datetime.datetime, d2: datetime.datetime) -> float:
return (d2 - d1).total_seconds()
if __name__ == '__main__':
d1 = datetime.datetime.now()
d2 = datetime.datetime.now(datetime.timezone.utc)
print(diff(d1, d2))
mypy говорит мне, что все в порядке:
$ python3.8 -m mypy test.py
Success: no issues found in 1 source file
Но я получаю ошибку типа:
TypeError: can't subtract offset-naive and offset-aware datetimes
Причина четко указана в сообщении об ошибке. Типовая аннотация была недостаточно хороша.
Полагаю, это довольно распространенный случай. Есть ли рекомендуемый способ аннотирования часовых поясов по сравнению с незавершенными объектами даты и времени, который правильно использует mypy?