Cluster · разработчикам
Keyboard
Упорядоченные строки кнопок: не более 16 строк и 8 кнопок в каждой. Ключи кнопок уникальны.
Все методы SDK · Типы и ошибки
Получение объекта
keyboard = app.inline.keyboard()__init__
Создаёт Keyboard. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
def __init__(rows: list[list[Button | dict[str, JSON]]] | None = None) -> None: ...Аргументы
rows: list[list[Button | dict[str, JSON]]] | None, по умолчаниюNone. Строки кнопок. Кнопка задаётся объектом либо словарём её параметров.
Результат
None. Создаёт Keyboard. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
# Обычный способ получения объекта:
keyboard = app.inline.keyboard()button
Принимает Button либо создаёт его из словаря описания.
def button(value: Button | dict[str, JSON]) -> Button: ...Аргументы
value: Button | dict[str, JSON], обязательный. Объект Button либо словарь параметров его конструктора.
Результат
Button. Принимает Button либо создаёт его из словаря описания.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
TypeError('A button or button description is required'): условие проверяется до продолжения операции.
Пример
result = keyboard.button(app.inline.button("Open"))__iter__
Перебирает кнопки построчно слева направо.
def __iter__() -> Iterator[Button]: ...Аргументы
Нет.
Результат
Iterator[Button]. Перебирает кнопки построчно слева направо.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
values = list(keyboard)__len__
Возвращает общее число кнопок.
def __len__() -> int: ...Аргументы
Нет.
Результат
int. Возвращает общее число кнопок.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
count = len(keyboard)__getitem__
Возвращает сам объект кнопки по постоянному key.
def __getitem__(key: str) -> Button: ...Аргументы
key: str, обязательный. Постоянный уникальный ключ кнопки, не её подпись. None у конструктора генерирует UUID.
Результат
Button. Возвращает сам объект кнопки по постоянному key.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
KeyError(key): условие проверяется до продолжения операции.
Пример
value = keyboard["open"]row
Добавляет новую строку кнопок.
def row(*buttons: Button | dict[str, JSON]) -> Self: ...Аргументы
buttons: Button | dict[str, JSON], позиционные значения. Позиционные объекты кнопок или их описания.
Результат
Self. Тот же объект после успешной операции. Добавляет новую строку кнопок.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = keyboard.row(app.inline.button("Open", key="open"))add
Вставляет кнопки в строку и позицию. Без row использует последнюю строку либо первую в пустой клавиатуре.
def add(*buttons: Button | dict[str, JSON], row: int | None = None, index: int | None = None) -> Self: ...Аргументы
buttons: Button | dict[str, JSON], позиционные значения. Позиционные объекты кнопок или их описания.row: int | None, по умолчаниюNone. Позиция от нуля в указанном списке или строке. Допустимые границы проверяются методом.index: int | None, по умолчаниюNone. Позиция от нуля в указанном списке или строке. Допустимые границы проверяются методом.
Результат
Self. Тот же объект после успешной операции. Вставляет кнопки в строку и позицию. Без row использует последнюю строку либо первую в пустой клавиатуре.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
ValueError('Invalid keyboard row'): условие проверяется до продолжения операции.ValueError('Button keys must be unique'): условие проверяется до продолжения операции.ValueError('The button belongs to another keyboard'): условие проверяется до продолжения операции.ValueError('Invalid button position'): условие проверяется до продолжения операции.ValueError('The keyboard is too large'): условие проверяется до продолжения операции.
Пример
result = keyboard.add(app.inline.button("Open", key="open"))remove
Удаляет кнопку по key, убирает пустые строки и возвращает отсоединённую кнопку.
def remove(key: str) -> Button: ...Аргументы
key: str, обязательный. Постоянный уникальный ключ кнопки, не её подпись. None у конструктора генерирует UUID.
Результат
Button. Удаляет кнопку по key, убирает пустые строки и возвращает отсоединённую кнопку.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = keyboard.remove("open")move
Перемещает кнопку между существующими строками, проверяя вместимость и позицию.
def move(key: str, row: int, index: int = 0) -> Self: ...Аргументы
key: str, обязательный. Постоянный уникальный ключ кнопки, не её подпись. None у конструктора генерирует UUID.row: int, обязательный. Позиция от нуля в указанном списке или строке. Допустимые границы проверяются методом.index: int, по умолчанию0. Позиция от нуля в указанном списке или строке. Допустимые границы проверяются методом.
Результат
Self. Тот же объект после успешной операции. Перемещает кнопку между существующими строками, проверяя вместимость и позицию.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
ValueError('Invalid keyboard row'): условие проверяется до продолжения операции.ValueError('Invalid button position'): условие проверяется до продолжения операции.ValueError('The keyboard row is full'): условие проверяется до продолжения операции.
Пример
result = keyboard.move("open", 0)sort
Сортирует кнопки по key либо по подписи без учёта регистра. per_row ограничивает сортировку каждой строкой; иначе сохраняются прежние ширины строк.
def sort(key: Callable | None = None, reverse: bool = False, per_row: bool = False) -> Self: ...Аргументы
key: Callable | None, по умолчаниюNone. Синхронный ключ сортировки. None использует правило класса; вызывается для каждого элемента.reverse: bool, по умолчаниюFalse. Логический переключатель указанного действия.per_row: bool, по умолчаниюFalse. Логический переключатель указанного действия.
Результат
Self. Тот же объект после успешной операции. Сортирует кнопки по key либо по подписи без учёта регистра. per_row ограничивает сортировку каждой строкой; иначе сохраняются прежние ширины строк.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = keyboard.sort()layout
Заново распределяет кнопки по заданным ширинам строк. Последняя ширина повторяется для остатка.
def layout(*widths: int) -> Self: ...Аргументы
widths: int, позиционные значения. Позиционные ширины строк клавиатуры, каждая от 1 до 8.
Результат
Self. Тот же объект после успешной операции. Заново распределяет кнопки по заданным ширинам строк. Последняя ширина повторяется для остатка.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
ValueError('Row widths must be between 1 and 8'): условие проверяется до продолжения операции.ValueError('A keyboard can contain at most 16 rows'): условие проверяется до продолжения операции.
Пример
result = keyboard.layout(2)clear
Удаляет все строки и отсоединяет кнопки.
def clear() -> Self: ...Аргументы
Нет.
Результат
Self. Тот же объект после успешной операции. Удаляет все строки и отсоединяет кнопки.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = keyboard.clear()render
Собирает описание всех кнопок, ожидая асинхронные подписи; форму ещё не отправляет.
async def render(form: Form | None = None) -> list[list[dict[str, JSON]]]: ...Аргументы
form: Form | None, по умолчаниюNone. Контекст формы для вычисления динамических подписей кнопок.
Результат
list[list[dict[str, JSON]]]. Собирает описание всех кнопок, ожидая асинхронные подписи; форму ещё не отправляет.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = await keyboard.render()