flwr-nightly 1.20.0.dev20250712__py3-none-any.whl → 1.20.0.dev20250715__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flwr/client/grpc_rere_client/connection.py +3 -1
- flwr/client/rest_client/connection.py +3 -1
- flwr/common/grpc.py +12 -1
- flwr/common/inflatable_utils.py +14 -7
- flwr/proto/appio_pb2.py +51 -0
- flwr/proto/appio_pb2.pyi +167 -0
- flwr/proto/appio_pb2_grpc.py +4 -0
- flwr/proto/appio_pb2_grpc.pyi +4 -0
- flwr/proto/clientappio_pb2.py +19 -11
- flwr/proto/clientappio_pb2.pyi +50 -12
- flwr/proto/clientappio_pb2_grpc.py +68 -0
- flwr/proto/clientappio_pb2_grpc.pyi +26 -0
- flwr/proto/fleet_pb2.py +14 -18
- flwr/proto/fleet_pb2.pyi +4 -19
- flwr/proto/serverappio_pb2.py +8 -31
- flwr/proto/serverappio_pb2.pyi +0 -152
- flwr/proto/serverappio_pb2_grpc.py +39 -38
- flwr/proto/serverappio_pb2_grpc.pyi +21 -20
- flwr/server/grid/grpc_grid.py +10 -8
- flwr/server/serverapp/app.py +9 -11
- flwr/server/superlink/fleet/message_handler/message_handler.py +8 -13
- flwr/server/superlink/serverappio/serverappio_servicer.py +31 -33
- flwr/server/superlink/utils.py +3 -11
- flwr/supercore/grpc_health/__init__.py +22 -0
- flwr/supercore/grpc_health/simple_health_servicer.py +38 -0
- flwr/supercore/object_store/in_memory_object_store.py +31 -31
- flwr/supercore/object_store/object_store.py +16 -40
- flwr/supernode/runtime/run_clientapp.py +14 -4
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +48 -5
- flwr/supernode/start_client_internal.py +14 -0
- {flwr_nightly-1.20.0.dev20250712.dist-info → flwr_nightly-1.20.0.dev20250715.dist-info}/METADATA +2 -1
- {flwr_nightly-1.20.0.dev20250712.dist-info → flwr_nightly-1.20.0.dev20250715.dist-info}/RECORD +34 -28
- {flwr_nightly-1.20.0.dev20250712.dist-info → flwr_nightly-1.20.0.dev20250715.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.20.0.dev20250712.dist-info → flwr_nightly-1.20.0.dev20250715.dist-info}/entry_points.txt +0 -0
flwr/proto/fleet_pb2.py
CHANGED
@@ -19,15 +19,13 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
19
19
|
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
20
20
|
|
21
21
|
|
22
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\"/\n\x11\x43reateNodeRequest\x12\x1a\n\x12heartbeat_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\
|
22
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\"/\n\x11\x43reateNodeRequest\x12\x1a\n\x12heartbeat_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\xa2\x01\n\x14PullMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\x97\x01\n\x13PushMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcb\x02\n\x14PushMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12>\n\x07results\x18\x02 \x03(\x0b\x32-.flwr.proto.PushMessagesResponse.ResultsEntry\x12L\n\x0fobjects_to_push\x18\x03 \x03(\x0b\x32\x33.flwr.proto.PushMessagesResponse.ObjectsToPushEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1aK\n\x12ObjectsToPushEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\xca\x06\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12\x62\n\x11SendNodeHeartbeat\x12$.flwr.proto.SendNodeHeartbeatRequest\x1a%.flwr.proto.SendNodeHeartbeatResponse\"\x00\x12S\n\x0cPullMessages\x12\x1f.flwr.proto.PullMessagesRequest\x1a .flwr.proto.PullMessagesResponse\"\x00\x12S\n\x0cPushMessages\x12\x1f.flwr.proto.PushMessagesRequest\x1a .flwr.proto.PushMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
|
23
23
|
|
24
24
|
_globals = globals()
|
25
25
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
26
26
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.fleet_pb2', _globals)
|
27
27
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
28
28
|
DESCRIPTOR._options = None
|
29
|
-
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
|
30
|
-
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
|
31
29
|
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._options = None
|
32
30
|
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
33
31
|
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
|
@@ -43,19 +41,17 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
43
41
|
_globals['_PULLMESSAGESREQUEST']._serialized_start=337
|
44
42
|
_globals['_PULLMESSAGESREQUEST']._serialized_end=411
|
45
43
|
_globals['_PULLMESSAGESRESPONSE']._serialized_start=414
|
46
|
-
_globals['_PULLMESSAGESRESPONSE']._serialized_end=
|
47
|
-
_globals['
|
48
|
-
_globals['
|
49
|
-
_globals['
|
50
|
-
_globals['
|
51
|
-
_globals['
|
52
|
-
_globals['
|
53
|
-
_globals['
|
54
|
-
_globals['
|
55
|
-
_globals['
|
56
|
-
_globals['
|
57
|
-
_globals['
|
58
|
-
_globals['
|
59
|
-
_globals['_FLEET']._serialized_start=1200
|
60
|
-
_globals['_FLEET']._serialized_end=2042
|
44
|
+
_globals['_PULLMESSAGESRESPONSE']._serialized_end=576
|
45
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_start=579
|
46
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_end=730
|
47
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_start=733
|
48
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_end=1064
|
49
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=941
|
50
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=987
|
51
|
+
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=989
|
52
|
+
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=1064
|
53
|
+
_globals['_RECONNECT']._serialized_start=1066
|
54
|
+
_globals['_RECONNECT']._serialized_end=1096
|
55
|
+
_globals['_FLEET']._serialized_start=1099
|
56
|
+
_globals['_FLEET']._serialized_end=1941
|
61
57
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/fleet_pb2.pyi
CHANGED
@@ -78,38 +78,23 @@ global___PullMessagesRequest = PullMessagesRequest
|
|
78
78
|
|
79
79
|
class PullMessagesResponse(google.protobuf.message.Message):
|
80
80
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
81
|
-
class ObjectsToPullEntry(google.protobuf.message.Message):
|
82
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
83
|
-
KEY_FIELD_NUMBER: builtins.int
|
84
|
-
VALUE_FIELD_NUMBER: builtins.int
|
85
|
-
key: typing.Text
|
86
|
-
@property
|
87
|
-
def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
|
88
|
-
def __init__(self,
|
89
|
-
*,
|
90
|
-
key: typing.Text = ...,
|
91
|
-
value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
|
92
|
-
) -> None: ...
|
93
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
94
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
95
|
-
|
96
81
|
RECONNECT_FIELD_NUMBER: builtins.int
|
97
82
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
98
|
-
|
83
|
+
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
99
84
|
@property
|
100
85
|
def reconnect(self) -> global___Reconnect: ...
|
101
86
|
@property
|
102
87
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
103
88
|
@property
|
104
|
-
def
|
89
|
+
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
105
90
|
def __init__(self,
|
106
91
|
*,
|
107
92
|
reconnect: typing.Optional[global___Reconnect] = ...,
|
108
93
|
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
109
|
-
|
94
|
+
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
110
95
|
) -> None: ...
|
111
96
|
def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
|
112
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
97
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","reconnect",b"reconnect"]) -> None: ...
|
113
98
|
global___PullMessagesResponse = PullMessagesResponse
|
114
99
|
|
115
100
|
class PushMessagesRequest(google.protobuf.message.Message):
|
flwr/proto/serverappio_pb2.py
CHANGED
@@ -18,43 +18,20 @@ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
18
18
|
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
19
19
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
20
20
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
21
|
+
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
21
22
|
|
22
23
|
|
23
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.
|
24
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xb3\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
|
24
25
|
|
25
26
|
_globals = globals()
|
26
27
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
27
28
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
|
28
29
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
29
30
|
DESCRIPTOR._options = None
|
30
|
-
_globals['
|
31
|
-
_globals['
|
32
|
-
_globals['
|
33
|
-
_globals['
|
34
|
-
_globals['
|
35
|
-
_globals['
|
36
|
-
_globals['_GETNODESRESPONSE']._serialized_start=222
|
37
|
-
_globals['_GETNODESRESPONSE']._serialized_end=273
|
38
|
-
_globals['_PUSHINSMESSAGESREQUEST']._serialized_start=276
|
39
|
-
_globals['_PUSHINSMESSAGESREQUEST']._serialized_end=414
|
40
|
-
_globals['_PUSHINSMESSAGESRESPONSE']._serialized_start=417
|
41
|
-
_globals['_PUSHINSMESSAGESRESPONSE']._serialized_end=621
|
42
|
-
_globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=546
|
43
|
-
_globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=621
|
44
|
-
_globals['_PULLRESMESSAGESREQUEST']._serialized_start=623
|
45
|
-
_globals['_PULLRESMESSAGESREQUEST']._serialized_end=684
|
46
|
-
_globals['_PULLRESMESSAGESRESPONSE']._serialized_start=687
|
47
|
-
_globals['_PULLRESMESSAGESRESPONSE']._serialized_end=914
|
48
|
-
_globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=839
|
49
|
-
_globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=914
|
50
|
-
_globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=916
|
51
|
-
_globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=944
|
52
|
-
_globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=946
|
53
|
-
_globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=1073
|
54
|
-
_globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=1075
|
55
|
-
_globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=1158
|
56
|
-
_globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=1160
|
57
|
-
_globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=1190
|
58
|
-
_globals['_SERVERAPPIO']._serialized_start=1193
|
59
|
-
_globals['_SERVERAPPIO']._serialized_end=2432
|
31
|
+
_globals['_GETNODESREQUEST']._serialized_start=211
|
32
|
+
_globals['_GETNODESREQUEST']._serialized_end=244
|
33
|
+
_globals['_GETNODESRESPONSE']._serialized_start=246
|
34
|
+
_globals['_GETNODESRESPONSE']._serialized_end=297
|
35
|
+
_globals['_SERVERAPPIO']._serialized_start=300
|
36
|
+
_globals['_SERVERAPPIO']._serialized_end=1503
|
60
37
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/serverappio_pb2.pyi
CHANGED
@@ -3,10 +3,7 @@
|
|
3
3
|
isort:skip_file
|
4
4
|
"""
|
5
5
|
import builtins
|
6
|
-
import flwr.proto.fab_pb2
|
7
|
-
import flwr.proto.message_pb2
|
8
6
|
import flwr.proto.node_pb2
|
9
|
-
import flwr.proto.run_pb2
|
10
7
|
import google.protobuf.descriptor
|
11
8
|
import google.protobuf.internal.containers
|
12
9
|
import google.protobuf.message
|
@@ -38,152 +35,3 @@ class GetNodesResponse(google.protobuf.message.Message):
|
|
38
35
|
) -> None: ...
|
39
36
|
def ClearField(self, field_name: typing_extensions.Literal["nodes",b"nodes"]) -> None: ...
|
40
37
|
global___GetNodesResponse = GetNodesResponse
|
41
|
-
|
42
|
-
class PushInsMessagesRequest(google.protobuf.message.Message):
|
43
|
-
"""PushMessages messages"""
|
44
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
45
|
-
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
46
|
-
RUN_ID_FIELD_NUMBER: builtins.int
|
47
|
-
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
48
|
-
@property
|
49
|
-
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
50
|
-
run_id: builtins.int
|
51
|
-
@property
|
52
|
-
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
53
|
-
def __init__(self,
|
54
|
-
*,
|
55
|
-
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
56
|
-
run_id: builtins.int = ...,
|
57
|
-
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
58
|
-
) -> None: ...
|
59
|
-
def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
|
60
|
-
global___PushInsMessagesRequest = PushInsMessagesRequest
|
61
|
-
|
62
|
-
class PushInsMessagesResponse(google.protobuf.message.Message):
|
63
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
64
|
-
class ObjectsToPushEntry(google.protobuf.message.Message):
|
65
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
66
|
-
KEY_FIELD_NUMBER: builtins.int
|
67
|
-
VALUE_FIELD_NUMBER: builtins.int
|
68
|
-
key: typing.Text
|
69
|
-
@property
|
70
|
-
def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
|
71
|
-
def __init__(self,
|
72
|
-
*,
|
73
|
-
key: typing.Text = ...,
|
74
|
-
value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
|
75
|
-
) -> None: ...
|
76
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
77
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
78
|
-
|
79
|
-
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
80
|
-
OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
|
81
|
-
@property
|
82
|
-
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
83
|
-
@property
|
84
|
-
def objects_to_push(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
|
85
|
-
def __init__(self,
|
86
|
-
*,
|
87
|
-
message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
88
|
-
objects_to_push: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
|
89
|
-
) -> None: ...
|
90
|
-
def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","objects_to_push",b"objects_to_push"]) -> None: ...
|
91
|
-
global___PushInsMessagesResponse = PushInsMessagesResponse
|
92
|
-
|
93
|
-
class PullResMessagesRequest(google.protobuf.message.Message):
|
94
|
-
"""PullMessages messages"""
|
95
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
96
|
-
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
97
|
-
RUN_ID_FIELD_NUMBER: builtins.int
|
98
|
-
@property
|
99
|
-
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
100
|
-
run_id: builtins.int
|
101
|
-
def __init__(self,
|
102
|
-
*,
|
103
|
-
message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
104
|
-
run_id: builtins.int = ...,
|
105
|
-
) -> None: ...
|
106
|
-
def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
|
107
|
-
global___PullResMessagesRequest = PullResMessagesRequest
|
108
|
-
|
109
|
-
class PullResMessagesResponse(google.protobuf.message.Message):
|
110
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
111
|
-
class ObjectsToPullEntry(google.protobuf.message.Message):
|
112
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
113
|
-
KEY_FIELD_NUMBER: builtins.int
|
114
|
-
VALUE_FIELD_NUMBER: builtins.int
|
115
|
-
key: typing.Text
|
116
|
-
@property
|
117
|
-
def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
|
118
|
-
def __init__(self,
|
119
|
-
*,
|
120
|
-
key: typing.Text = ...,
|
121
|
-
value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
|
122
|
-
) -> None: ...
|
123
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
124
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
125
|
-
|
126
|
-
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
127
|
-
OBJECTS_TO_PULL_FIELD_NUMBER: builtins.int
|
128
|
-
@property
|
129
|
-
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
130
|
-
@property
|
131
|
-
def objects_to_pull(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
|
132
|
-
def __init__(self,
|
133
|
-
*,
|
134
|
-
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
135
|
-
objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
|
136
|
-
) -> None: ...
|
137
|
-
def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull"]) -> None: ...
|
138
|
-
global___PullResMessagesResponse = PullResMessagesResponse
|
139
|
-
|
140
|
-
class PullServerAppInputsRequest(google.protobuf.message.Message):
|
141
|
-
"""PullServerAppInputs messages"""
|
142
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
143
|
-
def __init__(self,
|
144
|
-
) -> None: ...
|
145
|
-
global___PullServerAppInputsRequest = PullServerAppInputsRequest
|
146
|
-
|
147
|
-
class PullServerAppInputsResponse(google.protobuf.message.Message):
|
148
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
149
|
-
CONTEXT_FIELD_NUMBER: builtins.int
|
150
|
-
RUN_FIELD_NUMBER: builtins.int
|
151
|
-
FAB_FIELD_NUMBER: builtins.int
|
152
|
-
@property
|
153
|
-
def context(self) -> flwr.proto.message_pb2.Context: ...
|
154
|
-
@property
|
155
|
-
def run(self) -> flwr.proto.run_pb2.Run: ...
|
156
|
-
@property
|
157
|
-
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
158
|
-
def __init__(self,
|
159
|
-
*,
|
160
|
-
context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
|
161
|
-
run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
|
162
|
-
fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
|
163
|
-
) -> None: ...
|
164
|
-
def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
|
165
|
-
def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
|
166
|
-
global___PullServerAppInputsResponse = PullServerAppInputsResponse
|
167
|
-
|
168
|
-
class PushServerAppOutputsRequest(google.protobuf.message.Message):
|
169
|
-
"""PushServerAppOutputs messages"""
|
170
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
171
|
-
RUN_ID_FIELD_NUMBER: builtins.int
|
172
|
-
CONTEXT_FIELD_NUMBER: builtins.int
|
173
|
-
run_id: builtins.int
|
174
|
-
@property
|
175
|
-
def context(self) -> flwr.proto.message_pb2.Context: ...
|
176
|
-
def __init__(self,
|
177
|
-
*,
|
178
|
-
run_id: builtins.int = ...,
|
179
|
-
context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
|
180
|
-
) -> None: ...
|
181
|
-
def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
|
182
|
-
def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
|
183
|
-
global___PushServerAppOutputsRequest = PushServerAppOutputsRequest
|
184
|
-
|
185
|
-
class PushServerAppOutputsResponse(google.protobuf.message.Message):
|
186
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
187
|
-
def __init__(self,
|
188
|
-
) -> None: ...
|
189
|
-
global___PushServerAppOutputsResponse = PushServerAppOutputsResponse
|
@@ -2,6 +2,7 @@
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
3
3
|
import grpc
|
4
4
|
|
5
|
+
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
5
6
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
6
7
|
from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
|
7
8
|
from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
|
@@ -26,13 +27,13 @@ class ServerAppIoStub(object):
|
|
26
27
|
)
|
27
28
|
self.PushMessages = channel.unary_unary(
|
28
29
|
'/flwr.proto.ServerAppIo/PushMessages',
|
29
|
-
request_serializer=
|
30
|
-
response_deserializer=
|
30
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
|
31
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
|
31
32
|
)
|
32
33
|
self.PullMessages = channel.unary_unary(
|
33
34
|
'/flwr.proto.ServerAppIo/PullMessages',
|
34
|
-
request_serializer=
|
35
|
-
response_deserializer=
|
35
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
|
36
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
|
36
37
|
)
|
37
38
|
self.GetRun = channel.unary_unary(
|
38
39
|
'/flwr.proto.ServerAppIo/GetRun',
|
@@ -44,15 +45,15 @@ class ServerAppIoStub(object):
|
|
44
45
|
request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
45
46
|
response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
46
47
|
)
|
47
|
-
self.
|
48
|
-
'/flwr.proto.ServerAppIo/
|
49
|
-
request_serializer=
|
50
|
-
response_deserializer=
|
48
|
+
self.PullAppInputs = channel.unary_unary(
|
49
|
+
'/flwr.proto.ServerAppIo/PullAppInputs',
|
50
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
|
51
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
|
51
52
|
)
|
52
|
-
self.
|
53
|
-
'/flwr.proto.ServerAppIo/
|
54
|
-
request_serializer=
|
55
|
-
response_deserializer=
|
53
|
+
self.PushAppOutputs = channel.unary_unary(
|
54
|
+
'/flwr.proto.ServerAppIo/PushAppOutputs',
|
55
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
|
56
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
|
56
57
|
)
|
57
58
|
self.UpdateRunStatus = channel.unary_unary(
|
58
59
|
'/flwr.proto.ServerAppIo/UpdateRunStatus',
|
@@ -129,14 +130,14 @@ class ServerAppIoServicer(object):
|
|
129
130
|
context.set_details('Method not implemented!')
|
130
131
|
raise NotImplementedError('Method not implemented!')
|
131
132
|
|
132
|
-
def
|
133
|
+
def PullAppInputs(self, request, context):
|
133
134
|
"""Pull ServerApp inputs
|
134
135
|
"""
|
135
136
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
136
137
|
context.set_details('Method not implemented!')
|
137
138
|
raise NotImplementedError('Method not implemented!')
|
138
139
|
|
139
|
-
def
|
140
|
+
def PushAppOutputs(self, request, context):
|
140
141
|
"""Push ServerApp outputs
|
141
142
|
"""
|
142
143
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
@@ -202,13 +203,13 @@ def add_ServerAppIoServicer_to_server(servicer, server):
|
|
202
203
|
),
|
203
204
|
'PushMessages': grpc.unary_unary_rpc_method_handler(
|
204
205
|
servicer.PushMessages,
|
205
|
-
request_deserializer=
|
206
|
-
response_serializer=
|
206
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.FromString,
|
207
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.SerializeToString,
|
207
208
|
),
|
208
209
|
'PullMessages': grpc.unary_unary_rpc_method_handler(
|
209
210
|
servicer.PullMessages,
|
210
|
-
request_deserializer=
|
211
|
-
response_serializer=
|
211
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
|
212
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
|
212
213
|
),
|
213
214
|
'GetRun': grpc.unary_unary_rpc_method_handler(
|
214
215
|
servicer.GetRun,
|
@@ -220,15 +221,15 @@ def add_ServerAppIoServicer_to_server(servicer, server):
|
|
220
221
|
request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
|
221
222
|
response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
|
222
223
|
),
|
223
|
-
'
|
224
|
-
servicer.
|
225
|
-
request_deserializer=
|
226
|
-
response_serializer=
|
224
|
+
'PullAppInputs': grpc.unary_unary_rpc_method_handler(
|
225
|
+
servicer.PullAppInputs,
|
226
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.FromString,
|
227
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.SerializeToString,
|
227
228
|
),
|
228
|
-
'
|
229
|
-
servicer.
|
230
|
-
request_deserializer=
|
231
|
-
response_serializer=
|
229
|
+
'PushAppOutputs': grpc.unary_unary_rpc_method_handler(
|
230
|
+
servicer.PushAppOutputs,
|
231
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.FromString,
|
232
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.SerializeToString,
|
232
233
|
),
|
233
234
|
'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
|
234
235
|
servicer.UpdateRunStatus,
|
@@ -304,8 +305,8 @@ class ServerAppIo(object):
|
|
304
305
|
timeout=None,
|
305
306
|
metadata=None):
|
306
307
|
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushMessages',
|
307
|
-
|
308
|
-
|
308
|
+
flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
|
309
|
+
flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
|
309
310
|
options, channel_credentials,
|
310
311
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
311
312
|
|
@@ -321,8 +322,8 @@ class ServerAppIo(object):
|
|
321
322
|
timeout=None,
|
322
323
|
metadata=None):
|
323
324
|
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullMessages',
|
324
|
-
|
325
|
-
|
325
|
+
flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
|
326
|
+
flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
|
326
327
|
options, channel_credentials,
|
327
328
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
328
329
|
|
@@ -361,7 +362,7 @@ class ServerAppIo(object):
|
|
361
362
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
362
363
|
|
363
364
|
@staticmethod
|
364
|
-
def
|
365
|
+
def PullAppInputs(request,
|
365
366
|
target,
|
366
367
|
options=(),
|
367
368
|
channel_credentials=None,
|
@@ -371,14 +372,14 @@ class ServerAppIo(object):
|
|
371
372
|
wait_for_ready=None,
|
372
373
|
timeout=None,
|
373
374
|
metadata=None):
|
374
|
-
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/
|
375
|
-
|
376
|
-
|
375
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullAppInputs',
|
376
|
+
flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
|
377
|
+
flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
|
377
378
|
options, channel_credentials,
|
378
379
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
379
380
|
|
380
381
|
@staticmethod
|
381
|
-
def
|
382
|
+
def PushAppOutputs(request,
|
382
383
|
target,
|
383
384
|
options=(),
|
384
385
|
channel_credentials=None,
|
@@ -388,9 +389,9 @@ class ServerAppIo(object):
|
|
388
389
|
wait_for_ready=None,
|
389
390
|
timeout=None,
|
390
391
|
metadata=None):
|
391
|
-
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/
|
392
|
-
|
393
|
-
|
392
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushAppOutputs',
|
393
|
+
flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
|
394
|
+
flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
|
394
395
|
options, channel_credentials,
|
395
396
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
396
397
|
|
@@ -3,6 +3,7 @@
|
|
3
3
|
isort:skip_file
|
4
4
|
"""
|
5
5
|
import abc
|
6
|
+
import flwr.proto.appio_pb2
|
6
7
|
import flwr.proto.fab_pb2
|
7
8
|
import flwr.proto.heartbeat_pb2
|
8
9
|
import flwr.proto.log_pb2
|
@@ -19,13 +20,13 @@ class ServerAppIoStub:
|
|
19
20
|
"""Return a set of nodes"""
|
20
21
|
|
21
22
|
PushMessages: grpc.UnaryUnaryMultiCallable[
|
22
|
-
flwr.proto.
|
23
|
-
flwr.proto.
|
23
|
+
flwr.proto.appio_pb2.PushAppMessagesRequest,
|
24
|
+
flwr.proto.appio_pb2.PushAppMessagesResponse]
|
24
25
|
"""Create one or more messages"""
|
25
26
|
|
26
27
|
PullMessages: grpc.UnaryUnaryMultiCallable[
|
27
|
-
flwr.proto.
|
28
|
-
flwr.proto.
|
28
|
+
flwr.proto.appio_pb2.PullAppMessagesRequest,
|
29
|
+
flwr.proto.appio_pb2.PullAppMessagesResponse]
|
29
30
|
"""Get message results"""
|
30
31
|
|
31
32
|
GetRun: grpc.UnaryUnaryMultiCallable[
|
@@ -38,14 +39,14 @@ class ServerAppIoStub:
|
|
38
39
|
flwr.proto.fab_pb2.GetFabResponse]
|
39
40
|
"""Get FAB"""
|
40
41
|
|
41
|
-
|
42
|
-
flwr.proto.
|
43
|
-
flwr.proto.
|
42
|
+
PullAppInputs: grpc.UnaryUnaryMultiCallable[
|
43
|
+
flwr.proto.appio_pb2.PullAppInputsRequest,
|
44
|
+
flwr.proto.appio_pb2.PullAppInputsResponse]
|
44
45
|
"""Pull ServerApp inputs"""
|
45
46
|
|
46
|
-
|
47
|
-
flwr.proto.
|
48
|
-
flwr.proto.
|
47
|
+
PushAppOutputs: grpc.UnaryUnaryMultiCallable[
|
48
|
+
flwr.proto.appio_pb2.PushAppOutputsRequest,
|
49
|
+
flwr.proto.appio_pb2.PushAppOutputsResponse]
|
49
50
|
"""Push ServerApp outputs"""
|
50
51
|
|
51
52
|
UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
|
@@ -95,17 +96,17 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
|
|
95
96
|
|
96
97
|
@abc.abstractmethod
|
97
98
|
def PushMessages(self,
|
98
|
-
request: flwr.proto.
|
99
|
+
request: flwr.proto.appio_pb2.PushAppMessagesRequest,
|
99
100
|
context: grpc.ServicerContext,
|
100
|
-
) -> flwr.proto.
|
101
|
+
) -> flwr.proto.appio_pb2.PushAppMessagesResponse:
|
101
102
|
"""Create one or more messages"""
|
102
103
|
pass
|
103
104
|
|
104
105
|
@abc.abstractmethod
|
105
106
|
def PullMessages(self,
|
106
|
-
request: flwr.proto.
|
107
|
+
request: flwr.proto.appio_pb2.PullAppMessagesRequest,
|
107
108
|
context: grpc.ServicerContext,
|
108
|
-
) -> flwr.proto.
|
109
|
+
) -> flwr.proto.appio_pb2.PullAppMessagesResponse:
|
109
110
|
"""Get message results"""
|
110
111
|
pass
|
111
112
|
|
@@ -126,18 +127,18 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
|
|
126
127
|
pass
|
127
128
|
|
128
129
|
@abc.abstractmethod
|
129
|
-
def
|
130
|
-
request: flwr.proto.
|
130
|
+
def PullAppInputs(self,
|
131
|
+
request: flwr.proto.appio_pb2.PullAppInputsRequest,
|
131
132
|
context: grpc.ServicerContext,
|
132
|
-
) -> flwr.proto.
|
133
|
+
) -> flwr.proto.appio_pb2.PullAppInputsResponse:
|
133
134
|
"""Pull ServerApp inputs"""
|
134
135
|
pass
|
135
136
|
|
136
137
|
@abc.abstractmethod
|
137
|
-
def
|
138
|
-
request: flwr.proto.
|
138
|
+
def PushAppOutputs(self,
|
139
|
+
request: flwr.proto.appio_pb2.PushAppOutputsRequest,
|
139
140
|
context: grpc.ServicerContext,
|
140
|
-
) -> flwr.proto.
|
141
|
+
) -> flwr.proto.appio_pb2.PushAppOutputsResponse:
|
141
142
|
"""Push ServerApp outputs"""
|
142
143
|
pass
|
143
144
|
|
flwr/server/grid/grpc_grid.py
CHANGED
@@ -47,6 +47,12 @@ from flwr.common.message import remove_content_from_message
|
|
47
47
|
from flwr.common.retry_invoker import _make_simple_grpc_retry_invoker, _wrap_stub
|
48
48
|
from flwr.common.serde import message_to_proto, run_from_proto
|
49
49
|
from flwr.common.typing import Run
|
50
|
+
from flwr.proto.appio_pb2 import ( # pylint: disable=E0611
|
51
|
+
PullAppMessagesRequest,
|
52
|
+
PullAppMessagesResponse,
|
53
|
+
PushAppMessagesRequest,
|
54
|
+
PushAppMessagesResponse,
|
55
|
+
)
|
50
56
|
from flwr.proto.message_pb2 import ( # pylint: disable=E0611
|
51
57
|
ConfirmMessageReceivedRequest,
|
52
58
|
)
|
@@ -55,10 +61,6 @@ from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=
|
|
55
61
|
from flwr.proto.serverappio_pb2 import ( # pylint: disable=E0611
|
56
62
|
GetNodesRequest,
|
57
63
|
GetNodesResponse,
|
58
|
-
PullResMessagesRequest,
|
59
|
-
PullResMessagesResponse,
|
60
|
-
PushInsMessagesRequest,
|
61
|
-
PushInsMessagesResponse,
|
62
64
|
)
|
63
65
|
from flwr.proto.serverappio_pb2_grpc import ServerAppIoStub # pylint: disable=E0611
|
64
66
|
|
@@ -223,8 +225,8 @@ class GrpcGrid(Grid):
|
|
223
225
|
object_tree = get_object_tree(message)
|
224
226
|
|
225
227
|
# Call GrpcServerAppIoStub method
|
226
|
-
res:
|
227
|
-
|
228
|
+
res: PushAppMessagesResponse = self._stub.PushMessages(
|
229
|
+
PushAppMessagesRequest(
|
228
230
|
messages_list=[message_to_proto(remove_content_from_message(message))],
|
229
231
|
run_id=run_id,
|
230
232
|
message_object_trees=[object_tree],
|
@@ -294,8 +296,8 @@ class GrpcGrid(Grid):
|
|
294
296
|
run_id = cast(Run, self._run).run_id
|
295
297
|
try:
|
296
298
|
# Pull Messages
|
297
|
-
res:
|
298
|
-
|
299
|
+
res: PullAppMessagesResponse = self._stub.PullMessages(
|
300
|
+
PullAppMessagesRequest(
|
299
301
|
message_ids=message_ids,
|
300
302
|
run_id=run_id,
|
301
303
|
)
|