Инструментарий 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 → объекта конфигурации выполняется с помощью этой функции
Связанные документы
- Декларативная конфигурация - Декларативная конфигурация ConfigClass / BaseConfig
- Система принадлежности (owner) - Принадлежность ресурсов и автоматическое освобождение
- Управление жизненным циклом - Фоновые задачи и основной цикл