Cluster · разработчикам

app

Точка входа в SDK. Содержит службы ядра и фабрики объектов.

Все методы SDK · Типы и ошибки

Получение объекта

text = app.text("Cluster")

document

Создаёт независимый документ JSON в памяти; чтение и изменения не обращаются к базе.

def document(value: JSON = None) -> Document: ...

Аргументы

Результат

Document. Создаёт независимый документ JSON в памяти; чтение и изменения не обращаются к базе.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.document()

stream

Создаёт поток с буфером и счётчиком потерянных событий. Получение начинается при next() или переборе.

def stream(kind: str = 'telegram') -> EventStream: ...

Аргументы

Результат

EventStream. Создаёт поток с буфером и счётчиком потерянных событий. Получение начинается при next() или переборе.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.stream()

message

Создаёт сообщение с выбранным источником, текстом, вложением и клавиатурой. Для отправки вызови send().

def message(context: Event | int | None = None, **data: JSON) -> Message: ...

Аргументы

Результат

Message. Создаёт сообщение с выбранным источником, текстом, вложением и клавиатурой. Для отправки вызови send().

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.message(text="Ready")

media

Описывает вложение из ID файла Cluster или байтов. Байты загружаются при первом использовании.

def media(file: str | bytes, kind: str = 'document', **data: JSON) -> Media: ...

Аргументы

Результат

Media. Описывает вложение из ID файла Cluster или байтов. Байты загружаются при первом использовании.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.media(b"Example", filename="note.txt")

album

Создаёт альбом. Добавь от 2 до 10 совместимых вложений перед отправкой.

def album(context: Event | int | None = None, source: str | None = None) -> Album: ...

Аргументы

Результат

Album. Создаёт альбом. Добавь от 2 до 10 совместимых вложений перед отправкой.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.album()

text

Создаёт текст с HTML-форматированием и отдельным представлением без разметки.

def text(value: object = '') -> Text: ...

Аргументы

Результат

Text. Создаёт текст с HTML-форматированием и отдельным представлением без разметки.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.text()

__init__

Создаёт App. Объект app уже передан ядром; не создавай второй экземпляр в рабочем модуле.

def __init__() -> None: ...

Аргументы

Нет.

Результат

None. Создаёт App. Объект app уже передан ядром; не создавай второй экземпляр в рабочем модуле.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
text = app.text("Cluster")

events

Последовательно получает события ядра порциями и выдаёт каждое событие словарём. Это асинхронный генератор, его перебирают через async for.

async def events(kind: str = 'telegram') -> AsyncIterator[EventData]: ...

Аргументы

Результат

AsyncIterator[EventData]. Последовательно получает события ядра порциями и выдаёт каждое событие словарём. Это асинхронный генератор, его перебирают через async for.

Права

Нужны telegram.read для telegram; bot.read для bot; доступ зависит от kind.

Ошибки

Пример

async for value in app.events():
    break

request

Вызывает операцию ядра через канал процесса модуля. Контекст текущего события прикладывается автоматически. Не используй print() в этот канал.

async def request(path: str, /, **data: JSON) -> JSON: ...

Аргументы

Результат

JSON. Вызывает операцию ядра через канал процесса модуля. Контекст текущего события прикладывается автоматически. Не используй print() в этот канал.

Права

Определяются выбранной операцией, см. ROUTES.md и PERMISSIONS.md; общий канал не обходит проверки.

Ошибки

Пример

info = await app.request("core/info")

stop

Отмечает модуль для завершения основного цикла. Не завершает процесс немедленно и не отменяет уже выполняющиеся корутины.

def stop() -> None: ...

Аргументы

Нет.

Результат

None. Отмечает модуль для завершения основного цикла. Не завершает процесс немедленно и не отменяет уже выполняющиеся корутины.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = app.stop()