nvflare.client.cell.attach_session module

Attach-only trainer session protocol used by CellClientAPI.

class AttachTrainerSession(api: CellClientAPI)[source]

Bases: object

Own attach rendezvous, retry, and deduplication state for one trainer API.

auth_identity_map() → dict[source]
cell_security() → tuple[bool, dict][source]
cleanup() → None[source]

Best-effort interpreter cleanup without preempting a live result source.

clear_result() → None[source]
close() → None[source]
commit_reserved_task_locked(task_id: str, attempt_id: str) → None[source]

Publish QUEUED after queue insertion; caller must hold the API lock.

connection_resources() → dict[source]

Keep physical CP transport policy separate from Cell message security.

forget_reserved_task(task_id, attempt_id) → None[source]
install_pre_decode_guard(cell) → None[source]

Reject unauthorized attach streams from headers before FOBS decode.

mark_result_publishing(task_id: str) → str[source]
mark_task_complete(task_id: str) → None[source]
mark_task_delivered(task_id: str) → None[source]
prepare_connection() → str[source]
publish_result(task_id: str, result_id: str, shareable: Shareable, source_receiver_ids, fobs_ctx_props: dict) → None[source]

Publish one logical result with status recovery for a lost acceptance reply.

register_callbacks(cell) → None[source]
register_cleanup() → None[source]
reserve_task(task_id, attempt_id, task_sequence)[source]

Reserve a logical task, returning an idempotent reply for a duplicate.

wait_for_open() → None[source]
exception TrainerSessionError[source]

Bases: RuntimeError

The trainer’s Client API session ended or could not be established.