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

EventStream

Чтение событий с локальным буфером. dropped накапливает число событий, потерянных в очереди ядра.

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

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

stream = app.stream("telegram")

__init__

Создаёт EventStream. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(app: App, kind: str = 'telegram', predicate: Callable[[EventData], bool] | None = None) -> None: ...

Аргументы

Результат

None. Создаёт EventStream. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

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

Ошибки

Пример

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

filter

Устанавливает синхронный предикат отбора событий. Исключения предиката выходят вызывающему.

def filter(predicate: Callable[[EventData], bool] | None) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Устанавливает синхронный предикат отбора событий. Исключения предиката выходят вызывающему.

Права

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

Ошибки

Пример

result = stream.filter(lambda event: bool(event.get("text")))

next

Возвращает следующее подходящее событие из буфера либо None. При пустом буфере опрашивает ядро до wait секунд.

async def next(wait: float = 10) -> EventData | None: ...

Аргументы

Результат

EventData | None. Возвращает следующее подходящее событие из буфера либо None. При пустом буфере опрашивает ядро до wait секунд.

Права

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

Ошибки

Пример

result = await stream.next()

__aiter__

Возвращает этот объект как асинхронный итератор. Сам запрос не выполняет.

def __aiter__() -> Self: ...

Аргументы

Нет.

Результат

Self. Тот же объект после успешной операции. Возвращает этот объект как асинхронный итератор. Сам запрос не выполняет.

Права

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

Ошибки

Пример

async for value in stream:
    break

__anext__

Ожидает следующее значение, пропуская пустые опросы. После локального закрытия завершает перебор через StopAsyncIteration.

async def __anext__() -> EventData: ...

Аргументы

Нет.

Результат

EventData. Ожидает следующее значение, пропуская пустые опросы. После локального закрытия завершает перебор через StopAsyncIteration.

Права

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

Ошибки

Пример

async for event in stream:
    break

close

Закрывает локальный поток и очищает его буфер; удалённого запроса не делает.

def close() -> None: ...

Аргументы

Нет.

Результат

None. Закрывает локальный поток и очищает его буфер; удалённого запроса не делает.

Права

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

Ошибки

Пример

result = stream.close()