ErisPulse ErisPulse
Открыть интерактивную версию →
Разделы страницы
Статическое зеркало — интерактивная версия является основной Открыть интерактивную версию →

Инструментарий runtime

Tip

Когда нужно читать эту статью: если вы хотите получить обзор всех инструментов, доступных для прямого импорта из пакета ErisPulse.runtime. Подробное описание использования каждого инструмента находится в соответствующих тематических документах, в этой статье представлены краткие справочные сведения и описание использования инструментов, не относящихся к конкретной теме.

ErisPulse.runtime — это агрегирующий слой экспорта фреймворка: он собирает разрозненные инструменты времени выполнения из разных модулей в единый входной точку, и скрипты, модули, адаптеры могут использовать их через from ErisPulse.runtime import X, не запоминая глубокие пути.

Справочник возможностей

Категория Имя Назначение Подробнее
Принадлежность bind_owner Вшивает контекст владельца в обратный вызов / точку входа потока Система принадлежности
Принадлежность owner_scope / get_current_owner Контекст принадлежности на уровне блока кода Система принадлежности
Принадлежность get_owner_tasks / cancel_owner_tasks Получение / отмена фоновых задач владельца Система принадлежности
Фоновые задачи spawn_background / spawn_later / spawn_thread Фоновые корутины / отложенные задачи / задачи потоков Управление жизненным циклом
Фоновые задачи cancel_all_background_tasks / run_main_loop Очистка фоновых задач и регистрация главного цикла Управление жизненным циклом
Контекст события get_current_trace_id Получение текущего идентификатора трассировки Трассировка
Контекст события get_send_receipts Получение учетной книги подтверждений отправки сообщений Сообщения
Контекст события get_current_event_account / get_current_caller / get_handler_waits Получение учетной записи события / вызывающей стороны / таблицы ожидания Система взаимодействия
Память snapshot / log_snapshot Снимок RSS + tracemalloc с меткой (автоматически вычисляется приращение) Диагностика памяти
Память get_rss_mb / get_traced_mb Текущее значение памяти процесса Диагностика памяти
Парсинг конфигурации dict_to_dataclass Преобразование dict → типобезопасный экземпляр dataclass См. следующий раздел
Парсинг конфигурации dataclass_to_defaults_dict / dataclass_to_toml_with_comments Преобразование dataclass → словарь значений по умолчанию / сериализация TOML с комментариями Декларативная конфигурация
Отладка explain_module / explain_event / explain_trace Модуль / событие / трассировка сообщения для диагностики Запуск и обработка событий
Отладка format_diagnostic_block / log_diagnostic / extract_user_frame Форматирование диагностического блока и извлечение пользовательской кадровой информации Запуск
Обработка исключений setup_exception_handling / global_exception_handler Установка глобального обработчика исключений Запуск
Безопасность redact_secret Скрытие секретных значений в логах / отчетах Запуск
Метрики metrics / MetricsRegistry Регистратор метрик (источник данных для эндпоинта /metrics) Руководство по развертыванию

dict_to_dataclass: dict → типобезопасный объект

Обратное направление декларативной конфигурации dataclass — преобразование произвольного dict (ответ API, webhook payload, пользовательский ввод) в типобезопасный экземпляр по объявлению, вместо ручного написания цепочек data.get("x", default):

from dataclasses import dataclass, field
from ErisPulse.runtime import dict_to_dataclass

@dataclass
class WebhookPayload:
    order_id: str
    amount: float = 0.0
    tags: list = field(default_factory=list)
    remark: str = ""

payload = dict_to_dataclass(WebhookPayload, {
    "order_id": "A-1024",
    "amount": "99.5",          # Автоматическое преобразование str → float
    "unknown_key": "игнорируется",      # Необъявленные поля автоматически игнорируются
})
payload.amount                   # 99.5 (float)
  • Преобразование типов (str → int/float и т.д.), заполнение значений по умолчанию, рекурсивное заполнение вложенных dataclass
  • Перекрытие переменными окружения: при наличии метаданных metadata={"env": "NAME"} приоритет переменных окружения > данных > значения по умолчанию
  • Внутри декларативных конфигурационных классов (ConfigClass / BaseConfig) для теплого обновления обратный вызов от dict → объекта конфигурации выполняется с помощью этой функции

Связанные документы