Далее в классе get_offices она обновляется
по вашему ответу сразу ясно, что вы не понимаете, как вообще программа может работать
for i in range(j, len(property)):
запускать следующий, только если предыдущий завершился с ошибкой
"0123456789"[5:2] == ""
"0123456789"[5:9] == "5678"
len(items)
, причем за O(1). В этой обёртке может еще помещаться сообщение об ошибке, к примеру, об ошибке доступа, тогда тоже ник чему её выдавать в результате, нужно бросать исключение.get_friends(**kw): List[Union[str, Dict[str, str]]]