Cluster · разработчикам
app.inline
Формы с зарегистрированными кнопками и локальные конструкторы клавиатуры.
Все методы SDK · Типы и ошибки
Получение объекта
form = app.inline(ctx)__init__
Создаёт Inline. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
def __init__(app: App) -> None: ...Аргументы
app: App, обязательный. Переданный ядром объект app. Второй App в модуле создавать не нужно.
Результат
None. Создаёт Inline. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
# Обычный способ получения объекта:
form = app.inline(ctx)classes
Возвращает классы конструкторов в порядке Button, Form, Keyboard, Pages.
def classes() -> tuple[type[Button], type[Form], type[Keyboard], type[Pages]]: ...Аргументы
Нет.
Результат
tuple[type[Button], type[Form], type[Keyboard], type[Pages]]. Возвращает классы конструкторов в порядке Button, Form, Keyboard, Pages.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline.classes()__call__
Создаёт несохранённую форму с контекстом события или чатом.
def __call__(context: Event | int | None = None) -> Form: ...Аргументы
context: Event | int | None, по умолчаниюNone. Текущее событие либо числовой чат. None допустимо, если чат будет передан позже.
Результат
Form. Создаёт несохранённую форму с контекстом события или чатом.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline()button
Создаёт кнопку. Передавай обработчик loader.callback или строковый ID с values.
def button(text: ButtonLabel, callback: str | Callable | None = None, **data: JSON) -> Button: ...Аргументы
text: ButtonLabel, обязательный. Непустая строка либо callable без аргументов или с Form. Результат может быть awaitable и должен дать непустую строку.callback: str | Callable | None, по умолчаниюNone. ID объявленного обработчика либо метод с соответствующим декоратором loader.data: JSON, произвольные именованные аргументы. Допустимые именованные параметры: key, values, args, visible, enabled и параметры Telegram-кнопки. Точные типы и исходные значения низкоуровневых операций приведены в разделе типов и ROUTES.md.
Результат
Button. Создаёт кнопку. Передавай обработчик loader.callback или строковый ID с values.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline.button("Open", key="open")keyboard
Создаёт клавиатуру из строк объектов Button или их описаний.
def keyboard(rows: list[list[Button | dict[str, JSON]]] | None = None) -> Keyboard: ...Аргументы
rows: list[list[Button | dict[str, JSON]]] | None, по умолчаниюNone. Строки кнопок. Кнопка задаётся объектом либо словарём её параметров.
Результат
Keyboard. Создаёт клавиатуру из строк объектов Button или их описаний.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline.keyboard()pages
Создаёт локальный список с постраничным просмотром.
def pages(items: Iterable[JSON], size: int = 5, index: int = 0) -> Pages: ...Аргументы
items: Iterable[JSON], обязательный. Элементы списка для локального постраничного просмотра.size: int, по умолчанию5. Положительное число элементов одной страницы.index: int, по умолчанию0. Позиция от нуля в указанном списке или строке. Допустимые границы проверяются методом.
Результат
Pages. Создаёт локальный список с постраничным просмотром.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline.pages(["first", "second"])get
Возвращает форму из локального кэша либо создаёт объект существующей формы. Для данных ядра нужен load().
def get(id: str, context: Event | int | None = None) -> Form: ...Аргументы
id: str, обязательный. Идентификатор объекта, полученный при его создании. Не путь сервера.context: Event | int | None, по умолчаниюNone. Текущее событие либо числовой чат. None допустимо, если чат будет передан позже.
Результат
Form. Возвращает форму из локального кэша либо создаёт объект существующей формы. Для данных ядра нужен load().
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = app.inline.get("object-id")form
Отправляет форму с кнопками, регистрирует обработчики и возвращает ID формы и сообщения.
async def form(chat: int | None, text: str | Text, buttons: Keyboard | list[list[Button | dict[str, JSON]]], **data: JSON) -> FormMessage: ...Аргументы
chat: int | None, обязательный. Числовой ID чата Telegram, включая отрицательный ID группы или канала. None использует контекст только у методов с таким поведением.text: str | Text, обязательный. Текст или собранный Text там, где поддерживается преобразование. В короткие методы клиента передавай str(Text).buttons: Keyboard | list[list[Button | dict[str, JSON]]], обязательный. Клавиатура либо строки кнопок.data: JSON, произвольные именованные аргументы. Допустимые именованные параметры: ttl, users, media, receiver, replace, method, options, via; прочие поля попадают в options. Точные типы и исходные значения низкоуровневых операций приведены в разделе типов и ROUTES.md.
Результат
FormMessage. Отправляет форму с кнопками, регистрирует обработчики и возвращает ID формы и сообщения.
Права
Нужны bot.send; telegram.send дополнительно для отправки через via="inline". files.read при медиа; ограничения chats/users и доступ callback продолжают действовать. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.
Ошибки
resources.error(result['error']): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await app.inline.form(ctx.chat_id, "Ready", app.inline.keyboard(), ttl=300)edit
Меняет существующую форму через ядро. Локальный объект Form этим коротким вызовом автоматически не обновляется.
async def edit(form: str, text: str | Text | None = None, **data: JSON) -> JSON: ...Аргументы
form: str, обязательный. ID зарегистрированной формы Cluster.text: str | Text | None, по умолчаниюNone. Текст или собранный Text там, где поддерживается преобразование. В короткие методы клиента передавай str(Text).data: JSON, произвольные именованные аргументы. Допустимые именованные параметры: method, buttons, media, options; прочие поля попадают в options. Точные типы и исходные значения низкоуровневых операций приведены в разделе типов и ROUTES.md.
Результат
JSON. Меняет существующую форму через ядро. Локальный объект Form этим коротким вызовом автоматически не обновляется.
Права
Нужны bot.send; telegram.send дополнительно для отправки через via="inline". files.read при медиа; ограничения chats/users и доступ callback продолжают действовать. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.
Ошибки
resources.error(result['error']): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await app.inline.edit("form-id", options={"parse_mode": "HTML"})delete
Удаляет существующую форму через ядро.
async def delete(form: str) -> JSON: ...Аргументы
form: str, обязательный. ID зарегистрированной формы Cluster.
Результат
JSON. Удаляет существующую форму через ядро.
Права
Нужны bot.send; telegram.send дополнительно для отправки через via="inline". files.read при медиа; ограничения chats/users и доступ callback продолжают действовать. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.
Ошибки
resources.error(result['error']): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await app.inline.delete("form-id")