Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(framework) Move run-related request/response to run.proto #4240

Merged
merged 15 commits into from
Sep 19, 2024
2 changes: 1 addition & 1 deletion src/proto/flwr/proto/control.proto
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ syntax = "proto3";

package flwr.proto;

import "flwr/proto/driver.proto";
import "flwr/proto/run.proto";

service Control {
// Request to create a new run
Expand Down
10 changes: 0 additions & 10 deletions src/proto/flwr/proto/driver.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import "flwr/proto/node.proto";
import "flwr/proto/task.proto";
import "flwr/proto/run.proto";
import "flwr/proto/fab.proto";
import "flwr/proto/transport.proto";

service Driver {
// Request run_id
Expand All @@ -43,15 +42,6 @@ service Driver {
rpc GetFab(GetFabRequest) returns (GetFabResponse) {}
}

// CreateRun
message CreateRunRequest {
string fab_id = 1;
string fab_version = 2;
map<string, Scalar> override_config = 3;
Fab fab = 4;
}
message CreateRunResponse { uint64 run_id = 1; }

// GetNodes messages
message GetNodesRequest { uint64 run_id = 1; }
message GetNodesResponse { repeated Node nodes = 1; }
Expand Down
12 changes: 12 additions & 0 deletions src/proto/flwr/proto/run.proto
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ syntax = "proto3";

package flwr.proto;

import "flwr/proto/fab.proto";
import "flwr/proto/transport.proto";

message Run {
Expand All @@ -26,5 +27,16 @@ message Run {
map<string, Scalar> override_config = 4;
string fab_hash = 5;
}

// CreateRun
message CreateRunRequest {
string fab_id = 1;
string fab_version = 2;
map<string, Scalar> override_config = 3;
Fab fab = 4;
}
message CreateRunResponse { uint64 run_id = 1; }

// GetRun
message GetRunRequest { uint64 run_id = 1; }
message GetRunResponse { Run run = 1; }
8 changes: 4 additions & 4 deletions src/py/flwr/proto/control_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions src/py/flwr/proto/control_pb2_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from flwr.proto import driver_pb2 as flwr_dot_proto_dot_driver__pb2
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2


class ControlStub(object):
Expand All @@ -16,8 +16,8 @@ def __init__(self, channel):
"""
self.CreateRun = channel.unary_unary(
'/flwr.proto.Control/CreateRun',
request_serializer=flwr_dot_proto_dot_driver__pb2.CreateRunRequest.SerializeToString,
response_deserializer=flwr_dot_proto_dot_driver__pb2.CreateRunResponse.FromString,
request_serializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
response_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
)


Expand All @@ -36,8 +36,8 @@ def add_ControlServicer_to_server(servicer, server):
rpc_method_handlers = {
'CreateRun': grpc.unary_unary_rpc_method_handler(
servicer.CreateRun,
request_deserializer=flwr_dot_proto_dot_driver__pb2.CreateRunRequest.FromString,
response_serializer=flwr_dot_proto_dot_driver__pb2.CreateRunResponse.SerializeToString,
request_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.FromString,
response_serializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
Expand All @@ -61,7 +61,7 @@ def CreateRun(request,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/CreateRun',
flwr_dot_proto_dot_driver__pb2.CreateRunRequest.SerializeToString,
flwr_dot_proto_dot_driver__pb2.CreateRunResponse.FromString,
flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
10 changes: 5 additions & 5 deletions src/py/flwr/proto/control_pb2_grpc.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@
isort:skip_file
"""
import abc
import flwr.proto.driver_pb2
import flwr.proto.run_pb2
import grpc

class ControlStub:
def __init__(self, channel: grpc.Channel) -> None: ...
CreateRun: grpc.UnaryUnaryMultiCallable[
flwr.proto.driver_pb2.CreateRunRequest,
flwr.proto.driver_pb2.CreateRunResponse]
flwr.proto.run_pb2.CreateRunRequest,
flwr.proto.run_pb2.CreateRunResponse]
"""Request to create a new run"""


class ControlServicer(metaclass=abc.ABCMeta):
@abc.abstractmethod
def CreateRun(self,
request: flwr.proto.driver_pb2.CreateRunRequest,
request: flwr.proto.run_pb2.CreateRunRequest,
context: grpc.ServicerContext,
) -> flwr.proto.driver_pb2.CreateRunResponse:
) -> flwr.proto.run_pb2.CreateRunResponse:
"""Request to create a new run"""
pass

Expand Down
39 changes: 15 additions & 24 deletions src/py/flwr/proto/driver_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 0 additions & 52 deletions src/py/flwr/proto/driver_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
isort:skip_file
"""
import builtins
import flwr.proto.fab_pb2
import flwr.proto.node_pb2
import flwr.proto.task_pb2
import flwr.proto.transport_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
Expand All @@ -15,56 +13,6 @@ import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class CreateRunRequest(google.protobuf.message.Message):
"""CreateRun"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class OverrideConfigEntry(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
KEY_FIELD_NUMBER: builtins.int
VALUE_FIELD_NUMBER: builtins.int
key: typing.Text
@property
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
def __init__(self,
*,
key: typing.Text = ...,
value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

FAB_ID_FIELD_NUMBER: builtins.int
FAB_VERSION_FIELD_NUMBER: builtins.int
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
FAB_FIELD_NUMBER: builtins.int
fab_id: typing.Text
fab_version: typing.Text
@property
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
@property
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
def __init__(self,
*,
fab_id: typing.Text = ...,
fab_version: typing.Text = ...,
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["fab",b"fab"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config"]) -> None: ...
global___CreateRunRequest = CreateRunRequest

class CreateRunResponse(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
RUN_ID_FIELD_NUMBER: builtins.int
run_id: builtins.int
def __init__(self,
*,
run_id: builtins.int = ...,
) -> None: ...
def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
global___CreateRunResponse = CreateRunResponse

class GetNodesRequest(google.protobuf.message.Message):
"""GetNodes messages"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
Expand Down
12 changes: 6 additions & 6 deletions src/py/flwr/proto/driver_pb2_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ def __init__(self, channel):
"""
self.CreateRun = channel.unary_unary(
'/flwr.proto.Driver/CreateRun',
request_serializer=flwr_dot_proto_dot_driver__pb2.CreateRunRequest.SerializeToString,
response_deserializer=flwr_dot_proto_dot_driver__pb2.CreateRunResponse.FromString,
request_serializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
response_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
)
self.GetNodes = channel.unary_unary(
'/flwr.proto.Driver/GetNodes',
Expand Down Expand Up @@ -98,8 +98,8 @@ def add_DriverServicer_to_server(servicer, server):
rpc_method_handlers = {
'CreateRun': grpc.unary_unary_rpc_method_handler(
servicer.CreateRun,
request_deserializer=flwr_dot_proto_dot_driver__pb2.CreateRunRequest.FromString,
response_serializer=flwr_dot_proto_dot_driver__pb2.CreateRunResponse.SerializeToString,
request_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.FromString,
response_serializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.SerializeToString,
),
'GetNodes': grpc.unary_unary_rpc_method_handler(
servicer.GetNodes,
Expand Down Expand Up @@ -148,8 +148,8 @@ def CreateRun(request,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Driver/CreateRun',
flwr_dot_proto_dot_driver__pb2.CreateRunRequest.SerializeToString,
flwr_dot_proto_dot_driver__pb2.CreateRunResponse.FromString,
flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

Expand Down
8 changes: 4 additions & 4 deletions src/py/flwr/proto/driver_pb2_grpc.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import grpc
class DriverStub:
def __init__(self, channel: grpc.Channel) -> None: ...
CreateRun: grpc.UnaryUnaryMultiCallable[
flwr.proto.driver_pb2.CreateRunRequest,
flwr.proto.driver_pb2.CreateRunResponse]
flwr.proto.run_pb2.CreateRunRequest,
flwr.proto.run_pb2.CreateRunResponse]
"""Request run_id"""

GetNodes: grpc.UnaryUnaryMultiCallable[
Expand Down Expand Up @@ -44,9 +44,9 @@ class DriverStub:
class DriverServicer(metaclass=abc.ABCMeta):
@abc.abstractmethod
def CreateRun(self,
request: flwr.proto.driver_pb2.CreateRunRequest,
request: flwr.proto.run_pb2.CreateRunRequest,
context: grpc.ServicerContext,
) -> flwr.proto.driver_pb2.CreateRunResponse:
) -> flwr.proto.run_pb2.CreateRunResponse:
"""Request run_id"""
pass

Expand Down
Loading