параметр для builder.adjust?
async def get_kbd(buttons=(), width=(2,)):
builder = InlineKeyboardBuilder()
for txt, data in buttons:
builder.button(text=txt, callback_data=data)
keyboard = builder.adjust(width).as_markup()
Ошибка: ValueError: Only int sizes are allowed
Ты передаёшь Tuple вместо интов
Понял. Пробую...
В качестве благодарности за ответы ниже скрипт. Может кому пригодится async def period_buttons(year): months = ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'] quarters = ['1 квартал', '2 квартал', '3 квартал', '4 квартал'] half_year = ['1-е полугодие', '2-е полугодие'] buttons = [(EMOJI['arrows_left'], 'stats:year:minus'), (f'{year}', 'stats:year'), (EMOJI['arrows_right'], 'stats:year:plus')] kv = 0 for i, month in enumerate(months): buttons.append((month, f'stats:month:{i}')) if (i + 1) % 3 == 0: buttons.append((quarters[kv], f'stats:quarter:{kv}')) kv += 1 for i, half in enumerate(half_year): buttons.append((half, f'stats:half:{i}')) kbd = get_kbd(buttons=buttons, width=[3, 4, 4, 4, 4, 2]) return kbd
а почему эта функция асинхронная?
yaso.su плачет в сторонке
Обсуждают сегодня