Bind safe run attribution for callback observers before event delivery.
bind_observability
bind_observability(callbacks: Any, request: Any) -> None
Give callback observers lineage before a stage or model can fail.
Source code in src/symfonic/kernel/observability_binding.py
| def bind_observability(callbacks: Any, request: Any) -> None:
"""Give callback observers lineage before a stage or model can fail."""
observers: Iterable[Any] = (callbacks,) if callable(callbacks) else (callbacks or ())
run_id = str(getattr(request, "run_id", "") or "")
root_run_id = str(getattr(request, "root_run_id", "") or run_id)
parent_run_id = str(getattr(request, "parent_run_id", "") or "") or None
session_id = str(getattr(request, "session_id", "") or "")
for observer in observers:
bind = getattr(observer, "bind_run", None)
if callable(bind):
try:
bind(
run_id,
root_run_id=root_run_id,
parent_run_id=parent_run_id,
session_id=session_id,
)
except Exception: # noqa: BLE001 - observation must not break a turn
continue
|