nvflare.private.fed.client.client_runner module

class ClientRunner(config: ClientRunnerConfig, job_id, engine: ClientEngineExecutorSpec)[source]

Bases: TBI

Initializes the ClientRunner.

Parameters:
  • config – ClientRunnerConfig

  • job_id – job id

  • engine – ClientEngine object

abort(msg: str = '')[source]

To Abort the current run.

Returns: N/A

end_run_events_sequence()[source]
fetch_and_run_one_task(fl_ctx) -> (<class 'float'>, <class 'bool'>)[source]

Fetches and runs a task.

Returns:

A tuple of (task_fetch_interval, task_processed).

find_executor(task_name)[source]
handle_event(event_type: str, fl_ctx: FLContext)[source]

Handles events.

Parameters:
  • event_type (str) – event type fired by workflow.

  • fl_ctx (FLContext) – FLContext information.

init_run(app_root, args)[source]
run(app_root, args)[source]
class ClientRunnerConfig(task_router: TaskRouter, task_data_filters: dict, task_result_filters: dict, handlers=None, components=None, default_task_fetch_interval: float = 0.5)[source]

Bases: object

To init ClientRunnerConfig.

Parameters:
  • task_router – TaskRouter object to find executor for a task

  • task_data_filters – task_name => list of data filters

  • task_result_filters – task_name => list of result filters

  • handlers – list of event handlers

  • components – dict of extra python objects: id => object

  • default_task_fetch_interval – default task fetch interval before getting the correct value from server. default is set to 0.5.

add_component(comp_id: str, component: object)[source]
class TaskRouter[source]

Bases: object

add_executor(tasks: list, executor: Executor)[source]
route(task_name: str)[source]