nv_dfm_core.session.ManualCallbackRunner#

class nv_dfm_core.session.ManualCallbackRunner(default_callback=None, place_callbacks=None)[source]#

Runner that queues tokens for manual processing.

Tokens are queued and the user must periodically call: - process_pending() for sync callbacks - process_pending_async() for async callbacks

This enables callbacks to run on a specific thread (e.g., main thread) by having that thread call process_pending().

Parameters:
dispatch(tokens)[source]#

Queue tokens for later processing.

Parameters:

tokens (TokenPackage | list[TokenPackage] | None) – Single token, list of tokens, or None to queue.

Return type:

None

has_pending()[source]#

Check if there are pending tokens in the queue.

Returns:

True if there are tokens waiting to be processed.

Return type:

bool

process_pending()[source]#

Process all pending tokens with sync callbacks.

Call this from your desired thread (e.g., main thread). This is a non-blocking call that processes all currently queued tokens.

Raises:

ValueError – If callbacks are async (use process_pending_async instead).

Return type:

None

async process_pending_async()[source]#

Process all pending tokens with async callbacks.

Call this from your event loop. This is a non-blocking call that processes all currently queued tokens.

Raises:

ValueError – If callbacks are sync (use process_pending instead).

Return type:

None