Вам не хватает скобки.
Вам необходимо изменить эту строку:
date_in_history = date.today() - timedelta(days=(p_year * 365)
с:
date_in_history = date.today() - timedelta(days=(p_year * 365))
^
|
it was this one :)
В: Почему на обратной линии отображалась ошибка, а не там?
Потому что ошибка на самом деле есть.
Как Python мог знать, что вы не собираетесь давать еще один законный timedelta
аргумент в следующей строке?
Или добавить +100
к (p_year * 365)
? (как предложил DSM)
Давайте посмотрим на этот сеанс IDE:
>>> t = ('one', 'two',
... 'three'
... def f(): pass
File "<stdin>", line 3
def f(): pass
^
SyntaxError: invalid syntax
IDE не могла знать, что мой кортеж закончен, и я не собирался добавлять 'fourth'
элемент.
Возможно, вы захотите сыграть адвоката дьявола и сказать, что я не набрал запятую, поэтому Python должен был догадаться, что я собираюсь закончить там кортеж.
Но взгляните на этот другой пример:
>>> t = ('one', 'two',
... 'three'
... 'fourth')
>>>
>>> t
('one', 'two', 'threefourth')
Итак, как вы видите, ошибка произошла именно тогда, когда Python обнаружил return True
в месте, где его не должно было быть.