так вот да. я допускаю что пацаны так и делают - просыпаются утром и их ждет десяток эксепшенов которые:
1. интерпретатор должен воспроизвести по клику с брейкпоинтом в иде и инспектором(где это все?)
2. код линеен т.е. нет рекурсии нет мутации и ты просто костылишь место где тип "не сошелся" (безумно малое число багов на самом деле и это не спасает от lazy none где говно сохранилось а трейса нет или чтото модифицировалось и непонятно что)
3. как мы видели эксепшен падает вообще не в том месте где произошел косяк потому что обезьяна делает сначала getattr с дефолтом None предполагая валидность nullабельности, а потом у нона спрашивает аттрибут. либо же просто тысяча мест где строка = массив строк = тупл