Не получается прописать календарь для telegram бота через telegram_bot_calendar

Я уже полгода изучаю python, это мой первый бот как учебное задание. Хочу сделать календарь для выбора нужной даты через telegram_bot_calendar, но не могу понять, почему тянется ошибка:

TypeError: 'ReplyKeyboardMarkup' object is not callable

Смысл ошибки я понимаю, но пока не могу понять, откуда тянется клавиатура, т.к. вроде все параметры заданы как в документации https://github.com/artembakhanov/python-telegram-bot-calendar . Буду очень благодарен, если поясните, какой момент я упускаю, какую связь не вижу, спасибо!

Мой код (часть):

# Спрашиваем пользователя, необходимы ли фото отеля
def need_photo(message: Message) -> None:
    if message.text.isdigit():
        if MAX_RESULT_AMOUNT >= int(message.text):
            bot.set_state(message.from_user.id, RequiredParams.result_amount, message.chat.id)
            with bot.retrieve_data(message.from_user.id, message.chat.id) as data:
                data['result_amount'] = message.text
        else:
            bot.send_message(message.chat.id, f'Максимально могу вывести {MAX_RESULT_AMOUNT} вариантов!')

        choice = bot.send_message(message.chat.id, 'Вы хотите, чтобы я прислал фото отелей?',
                                  reply_markup=need_photo_choice.need_photo())
        bot.register_next_step_handler(choice, result)
    else:
        back = bot.send_message(message.chat.id, 'Нужно ввести число',
                                reply_markup=accept_button.say_ok())
        bot.register_next_step_handler(back, res_amount)


# Выводим информацию, учитывая ответы пользователя
@bot.callback_query_handler(func=need_photo_choice.need_photo())
def result(message: Message) -> None:
    bot.set_state(message.from_user.id, RequiredParams.need_photo, message.chat.id)
    if message.text == 'Да ✅':
        bot.send_message(message.chat.id, 'Отлично! Вот что мне удалось подобрать для вас!')
    elif message.text == 'Нет ❌':
        bot.send_message(message.chat.id, 'Значит, ограничимся ссылками! Вот что мне удалось подобрать для вас!')
    with bot.retrieve_data(message.from_user.id, message.chat.id) as data:
        data['need_photo'] = message.text

    bot.send_message(message.chat.id, 'Последний штрих: укажите интересующие вас даты ?')
    RequiredParams.min_date = date.today()
    calendar, step = DetailedTelegramCalendar(locale='ru',
                                              min_date=RequiredParams.min_date).build()
    calendar_req = bot.send_message(message.chat.id,
                                    f'Выберите {LSTEP_rus[step]}',
                                    reply_markup=calendar)
    bot.register_next_step_handler(calendar_req, cal)


@bot.callback_query_handler(func=DetailedTelegramCalendar.func())
def cal(c):
    result, key, step = DetailedTelegramCalendar(locale='ru',
                                                 min_date=RequiredParams.min_date).process(c.data)
    if not result and key:
        bot.edit_message_text(f"Выберите {LSTEP_rus[step]}",
                              c.message.chat.id,
                              c.message.message_id,
                              reply_markup=key)
    elif result:
        bot.edit_message_text(f"Вы выбрали {result}",
                              c.message.chat.id,
                              c.message.message_id)

За любые советы и "тыки" также буду благодарен!


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