Срабатывает часть кода в aiogram python

Подскажите пожалуйста , почему код ниже может не срабатывать? В коде имеется тестовая функция start. Вот до нее почему то не доходит для примера имеется такой код :

# Тут запускаю код в котором задается вопрос телеграм юзеру
async def mode(message : types.Message):
    await bot.send_message(message.from_user.id, 'введите цифру')


# Тут отлавливается первый ответ от тг юзера и задается второй вопрос
async def mode2(message : types.Message, state : FSMContext):
    async with state.proxy() as data:
        data['Первый'] = message.text
    await Ratio.next()
    await bot.send_message(message.from_user.id, 'введите вторую цифру')


# Тут отлавливается второй ответ
async def mode3(message : types.Message, state : FSMContext):
    async with state.proxy() as data:
        data['Второй'] = message.text
    await state.finish()

# В зависимости от условия, выполняется разный код
if message.test == '1':
    await bot.send_message(message.from_user.id, 'Thanks')

else:
    # Функция старт, которое для примера создает тхт и записывает в него что-либо
    def start():
        with open(r'test.txt', 'w') as file:
            file.write(data['test_mode'])
    

def register_handlers_multi_mode(dp : Dispatcher):
    dp.register_message_handler(mode, commands=['test'], state = None)
    dp.register_message_handler(mode2, state = Ratio.test1)
    dp.register_message_handler(mode3, state = Ratio.test2)

Я понимаю что видимо упускаю какую-то мелочь, ну не могу понять какую. В mode3, с помощью принта я выводил в консоль и первый ответ и второй ответ и все выводится, а значит работает. Но все работает до функции start

В оригинальном коде, в самой функции старт , выполняется много вычислений , в ходе которых создается xlsx файл, который должен отправляться в тг. За счет большого кода , сюда для примера скинул набросок с той же структурой, что и в оригинальном коде

Спасибо!


Ответы (1 шт):

Автор решения: Fedor March

Может лучше так?

def start():
    with open(r'test.txt', 'w') as file:
        file.write(data['test_mode'])    

# Тут запускаю код в котором задается вопрос телеграм юзеру
async def mode(message : types.Message):
    await bot.send_message(message.from_user.id, 'введите цифру')


# Тут отлавливается первый ответ от тг юзера и задается второй вопрос
async def mode2(message : types.Message, state : FSMContext):
    async with state.proxy() as data:
        data['Первый'] = message.text
    await Ratio.next()
    await bot.send_message(message.from_user.id, 'введите вторую цифру')


# Тут отлавливается второй ответ
async def mode3(message : types.Message, state : FSMContext):
    async with state.proxy() as data:
        data['Второй'] = message.text
    await state.finish()

    # В зависимости от условия, выполняется разный код
   if message.test == '1':
       await bot.send_message(message.from_user.id, 'Thanks')

   else:
       # Функция старт, которое для примера создает тхт и записывает в него что-либо
      start()
    
→ Ссылка