nemo_flow.subscribers#
Global event subscriber registration.
Subscribers observe all lifecycle events emitted by the current process, including scope, tool, LLM, and mark events. They are typically used for logging, metrics, tracing, and custom observability pipelines.
Example:
import nemo_flow
def log_event(event):
print(f"{event.kind}: {event.name}")
nemo_flow.subscribers.register("logger", log_event)
try:
with nemo_flow.scope.scope("demo", nemo_flow.ScopeType.Agent):
nemo_flow.scope.event("started")
finally:
nemo_flow.subscribers.deregister("logger")
Functions#
|
Register a global event subscriber. |
|
Remove a previously registered global subscriber. |
Module Contents#
- nemo_flow.subscribers.register(name: str, callback: Callable[[Event], None]) None#
Register a global event subscriber.
- Parameters:
name – Unique subscriber name.
callback – Callable invoked as
callback(event)for every emitted lifecycle event.
- Returns:
This function returns after the subscriber is registered.
- Return type:
None
- Raises:
RuntimeError – If a subscriber with the same name already exists.
Example:
import nemo_flow nemo_flow.subscribers.register("printer", lambda event: print(event.kind))
- nemo_flow.subscribers.deregister(name: str) bool#
Remove a previously registered global subscriber.
- Parameters:
name – Subscriber name passed to
register().- Returns:
Trueif a subscriber was removed, otherwiseFalse.
Notes
Deregistering a subscriber affects only future event delivery. Events already emitted before removal are not replayed or withdrawn.
Example:
import nemo_flow nemo_flow.subscribers.register("printer", lambda event: None) removed = nemo_flow.subscribers.deregister("printer") assert removed is True