from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton def create_groups_keyboard(groups, region_id): """ Формирует InlineKeyboardMarkup для выбора группы хостов. :param groups: список словарей с группами, у каждой есть 'name' и 'groupid' :param region_id: id региона, нужен для callback_data кнопки "Все группы региона" :return: telebot.types.InlineKeyboardMarkup """ markup = InlineKeyboardMarkup() for group in groups: markup.add(InlineKeyboardButton( text=group['name'], callback_data=f"group_{group['groupid']}" )) markup.add(InlineKeyboardButton( text="Все группы региона\n(Долгое выполнение)", callback_data=f"all_groups_{region_id}" )) cancel_button = InlineKeyboardButton("Отмена", callback_data="cancel_input") markup.add(cancel_button) return markup