поставив хинты я пойму лучше что ли?
именно, ты получишь следующее
def call_offer(self, out_legs: List[Leg]...
где ты можешь с нормальной IDE кликнуть на Leg и перейти к объекту
Также ты можешь проверить что не передал туда просто None, тк в цикле в другой объект напихал данных по ошибке, и тд