Cluster · разработчикам
EventStream
Чтение событий с локальным буфером. dropped накапливает число событий, потерянных в очереди ядра.
Все методы SDK · Типы и ошибки
Получение объекта
stream = app.stream("telegram")__init__
Создаёт EventStream. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
def __init__(app: App, kind: str = 'telegram', predicate: Callable[[EventData], bool] | None = None) -> None: ...Аргументы
app: App, обязательный. Переданный ядром объект app. Второй App в модуле создавать не нужно.kind: str, по умолчанию'telegram'. Источник telegram или bot. Другой kind ядро отклоняет.predicate: Callable[[EventData], bool] | None, по умолчаниюNone. Синхронная функция фильтра. Не передавай async def: результат не ожидается.
Результат
None. Создаёт EventStream. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
# Обычный способ получения объекта:
stream = app.stream("telegram")filter
Устанавливает синхронный предикат отбора событий. Исключения предиката выходят вызывающему.
def filter(predicate: Callable[[EventData], bool] | None) -> Self: ...Аргументы
predicate: Callable[[EventData], bool] | None, обязательный. Синхронная функция фильтра. Не передавай async def: результат не ожидается.
Результат
Self. Тот же объект после успешной операции. Устанавливает синхронный предикат отбора событий. Исключения предиката выходят вызывающему.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
TypeError('A predicate is required'): условие проверяется до продолжения операции.
Пример
result = stream.filter(lambda event: bool(event.get("text")))next
Возвращает следующее подходящее событие из буфера либо None. При пустом буфере опрашивает ядро до wait секунд.
async def next(wait: float = 10) -> EventData | None: ...Аргументы
wait: float, по умолчанию10. Время ожидания следующей порции или кадра в секундах в пределах службы ядра.
Результат
EventData | None. Возвращает следующее подходящее событие из буфера либо None. При пустом буфере опрашивает ядро до wait секунд.
Права
Нужны telegram.read для telegram; bot.read для bot; доступ зависит от kind.
Ошибки
ValueError('The event stream is closed'): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
result = await stream.next()__aiter__
Возвращает этот объект как асинхронный итератор. Сам запрос не выполняет.
def __aiter__() -> Self: ...Аргументы
Нет.
Результат
Self. Тот же объект после успешной операции. Возвращает этот объект как асинхронный итератор. Сам запрос не выполняет.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
async for value in stream:
break__anext__
Ожидает следующее значение, пропуская пустые опросы. После локального закрытия завершает перебор через StopAsyncIteration.
async def __anext__() -> EventData: ...Аргументы
Нет.
Результат
EventData. Ожидает следующее значение, пропуская пустые опросы. После локального закрытия завершает перебор через StopAsyncIteration.
Права
Нужны telegram.read для telegram; bot.read для bot; доступ зависит от kind.
Ошибки
StopAsyncIteration: условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
Пример
async for event in stream:
breakclose
Закрывает локальный поток и очищает его буфер; удалённого запроса не делает.
def close() -> None: ...Аргументы
Нет.
Результат
None. Закрывает локальный поток и очищает его буфер; удалённого запроса не делает.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
result = stream.close()