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(name, callback)

Register a global event subscriber.

deregister(name)

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:

True if a subscriber was removed, otherwise False.

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