Проблема в том, что тебе нужно продекорировать функции через @bot.чтототам, но другие файлы ничего не знают о боте, так как он описан в главном файле. Так?
Нужно учесть, как работает декоратор. Код вроде
@bot.message_handler(commands=['anketaone'])
def null_anketa_step(message):
pass
на самом деле работает примерно так:
temp_wrapper = bot.message_handler(commands=['anketaone'])
def null_anketa_step(message):
pass
null_anketa_step = temp_wrapper(null_anketa_step)
Т.е. иными словами, декоратор - это просто вызов функции, в которую передаётся функция или класс!
Тогда самый простой способ будет таким:
def null_anketa_step(message):
pass
#какой-то другой обработчик
def some_other_handler(message):
pass
def init_bot(bot):
#а в этой функции мы регистрируем обработчики
bot.message_handler(commands=['anketaone']) (null_anketa_step)
#обрати внимание на две пары скобок. Вызов bot.message_handler() возвращает функцию (wrapper),
#и мы эту функцию тут же вызываем, передавая в неё обработчик
bot.message_handler(commands=['somethingelse']) (some_other_handler)
Тогда в главном файле ты делаешь примерно так:
bot = ........ #создаём бота
from second_file import init_bot as init_second #импортируем второй файл
#функцию импортируем под другим именем, чтобы не было коллизий между файлами
init_second(bot) #вызываем функцию регистрации init_bot()
if __name__=='__main__':
bot.polling(none_stop=True)