nvflare.fuel.f3.drivers.grpc_driver module

class GrpcDriver[source]

Bases: BaseDriver

static capabilities() Dict[str, Any][source]

Return a dictionary of capabilities of the driver.

connect(connector: ConnectorInfo)[source]

Start the driver in active mode

Parameters:

connector – Connector with parameters

Raises:

CommError – If any errors

static get_urls(scheme: str, resources: dict) -> (<class 'str'>, <class 'str'>)[source]

Get active and passive URL pair based on resources

Parameters:
  • scheme – A scheme supported by the driver, like http or https

  • resources – User specified resources like host and port ranges.

Returns:

A tuple with active and passive URLs

Raises:

CommError – If no free port can be found

listen(connector: ConnectorInfo)[source]

Start the driver in passive mode

Parameters:

connector – Connector with parameters

Raises:

CommError – If any errors

shutdown()[source]

Stop driver and disconnect all the connections created by it

Raises:

CommError – If any errors

static supported_transports() List[str][source]

Return a list of transports supported by this driver, for example [“http”, “https”, “ws”, “wss”]

class Server(driver, connector, max_workers, options)[source]

Bases: object

shutdown()[source]
start()[source]
class Servicer(server)[source]

Bases: StreamerServicer

Stream(request_iterator, context)[source]

A Bidirectional streaming RPC.

class StreamConnection(oq: QQ, connector: ConnectorInfo, conn_props: dict, side: str, context=None, channel=None)[source]

Bases: Connection

close()[source]

Close connection

Raises:

CommError – If any errors

generate_output()[source]
get_conn_properties() dict[source]

Get connection specific properties, like peer address, TLS certificate etc

Raises:

CommError – If any errors

read_loop(msg_iter)[source]
send_frame(frame: bytes | bytearray | memoryview)[source]

Send a SFM frame through the connection to the remote endpoint.

Parameters:

frame – The frame to be sent

Raises:

CommError – If any error happens while sending the frame

seq_num = 0