flwr-nightly 1.19.0.dev20250610__py3-none-any.whl → 1.19.0.dev20250612__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 +48 -29
- flwr/client/grpc_rere_client/grpc_adapter.py +8 -0
- flwr/client/rest_client/connection.py +138 -27
- flwr/common/auth_plugin/auth_plugin.py +6 -4
- flwr/common/event_log_plugin/event_log_plugin.py +3 -3
- flwr/common/inflatable.py +70 -1
- flwr/common/inflatable_grpc_utils.py +1 -1
- flwr/common/inflatable_rest_utils.py +99 -0
- flwr/common/serde.py +2 -0
- flwr/common/typing.py +5 -3
- flwr/proto/fleet_pb2.py +12 -16
- flwr/proto/fleet_pb2.pyi +4 -19
- flwr/proto/fleet_pb2_grpc.py +34 -0
- flwr/proto/fleet_pb2_grpc.pyi +13 -0
- flwr/proto/message_pb2.py +15 -9
- flwr/proto/message_pb2.pyi +41 -0
- flwr/proto/run_pb2.py +24 -24
- flwr/proto/run_pb2.pyi +4 -1
- flwr/proto/serverappio_pb2.py +22 -26
- flwr/proto/serverappio_pb2.pyi +4 -19
- flwr/proto/serverappio_pb2_grpc.py +34 -0
- flwr/proto/serverappio_pb2_grpc.pyi +13 -0
- flwr/server/fleet_event_log_interceptor.py +2 -2
- flwr/server/grid/grpc_grid.py +20 -9
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +25 -0
- flwr/server/superlink/fleet/message_handler/message_handler.py +33 -2
- flwr/server/superlink/fleet/rest_rere/rest_api.py +56 -2
- flwr/server/superlink/linkstate/in_memory_linkstate.py +17 -2
- flwr/server/superlink/linkstate/linkstate.py +6 -2
- flwr/server/superlink/linkstate/sqlite_linkstate.py +19 -7
- flwr/server/superlink/serverappio/serverappio_servicer.py +65 -29
- flwr/server/superlink/simulation/simulationio_servicer.py +2 -1
- flwr/server/superlink/utils.py +23 -10
- flwr/supercore/object_store/in_memory_object_store.py +160 -33
- flwr/supercore/object_store/object_store.py +54 -7
- flwr/superexec/deployment.py +6 -2
- flwr/superexec/exec_event_log_interceptor.py +4 -4
- flwr/superexec/exec_servicer.py +4 -1
- flwr/superexec/exec_user_auth_interceptor.py +11 -11
- flwr/superexec/executor.py +4 -0
- flwr/superexec/simulation.py +7 -1
- {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/METADATA +1 -1
- {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/RECORD +45 -44
- {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/entry_points.txt +0 -0
flwr/proto/fleet_pb2.py
CHANGED
@@ -19,7 +19,7 @@ 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\"\x87\x02\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\x12L\n\x0fobjects_to_pull\x18\x03 \x03(\x0b\x32\x33.flwr.proto.PullMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x97\
|
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\"\x87\x02\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\x12L\n\x0fobjects_to_pull\x18\x03 \x03(\x0b\x32\x33.flwr.proto.PullMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\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)
|
@@ -28,8 +28,6 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
28
28
|
DESCRIPTOR._options = None
|
29
29
|
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
|
30
30
|
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
|
31
|
-
_globals['_PUSHMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._options = None
|
32
|
-
_globals['_PUSHMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_options = b'8\001'
|
33
31
|
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._options = None
|
34
32
|
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
35
33
|
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
|
@@ -49,17 +47,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
49
47
|
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=602
|
50
48
|
_globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=677
|
51
49
|
_globals['_PUSHMESSAGESREQUEST']._serialized_start=680
|
52
|
-
_globals['_PUSHMESSAGESREQUEST']._serialized_end=
|
53
|
-
_globals['
|
54
|
-
_globals['
|
55
|
-
_globals['
|
56
|
-
_globals['
|
57
|
-
_globals['
|
58
|
-
_globals['
|
59
|
-
_globals['
|
60
|
-
_globals['
|
61
|
-
_globals['
|
62
|
-
_globals['
|
63
|
-
_globals['_FLEET']._serialized_start=1328
|
64
|
-
_globals['_FLEET']._serialized_end=2055
|
50
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_end=831
|
51
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_start=834
|
52
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_end=1165
|
53
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=1042
|
54
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=1088
|
55
|
+
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=1090
|
56
|
+
_globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=1165
|
57
|
+
_globals['_RECONNECT']._serialized_start=1167
|
58
|
+
_globals['_RECONNECT']._serialized_end=1197
|
59
|
+
_globals['_FLEET']._serialized_start=1200
|
60
|
+
_globals['_FLEET']._serialized_end=2042
|
65
61
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/fleet_pb2.pyi
CHANGED
@@ -115,38 +115,23 @@ global___PullMessagesResponse = PullMessagesResponse
|
|
115
115
|
class PushMessagesRequest(google.protobuf.message.Message):
|
116
116
|
"""PushMessages messages"""
|
117
117
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
118
|
-
class MsgToDescendantMappingEntry(google.protobuf.message.Message):
|
119
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
120
|
-
KEY_FIELD_NUMBER: builtins.int
|
121
|
-
VALUE_FIELD_NUMBER: builtins.int
|
122
|
-
key: typing.Text
|
123
|
-
@property
|
124
|
-
def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
|
125
|
-
def __init__(self,
|
126
|
-
*,
|
127
|
-
key: typing.Text = ...,
|
128
|
-
value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
|
129
|
-
) -> None: ...
|
130
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
131
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
132
|
-
|
133
118
|
NODE_FIELD_NUMBER: builtins.int
|
134
119
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
135
|
-
|
120
|
+
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
136
121
|
@property
|
137
122
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
138
123
|
@property
|
139
124
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
140
125
|
@property
|
141
|
-
def
|
126
|
+
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
142
127
|
def __init__(self,
|
143
128
|
*,
|
144
129
|
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
145
130
|
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
146
|
-
|
131
|
+
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
147
132
|
) -> None: ...
|
148
133
|
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
149
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
134
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","node",b"node"]) -> None: ...
|
150
135
|
global___PushMessagesRequest = PushMessagesRequest
|
151
136
|
|
152
137
|
class PushMessagesResponse(google.protobuf.message.Message):
|
flwr/proto/fleet_pb2_grpc.py
CHANGED
@@ -63,6 +63,11 @@ class FleetStub(object):
|
|
63
63
|
request_serializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
|
64
64
|
response_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
65
65
|
)
|
66
|
+
self.ConfirmMessageReceived = channel.unary_unary(
|
67
|
+
'/flwr.proto.Fleet/ConfirmMessageReceived',
|
68
|
+
request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
69
|
+
response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
70
|
+
)
|
66
71
|
|
67
72
|
|
68
73
|
class FleetServicer(object):
|
@@ -131,6 +136,13 @@ class FleetServicer(object):
|
|
131
136
|
context.set_details('Method not implemented!')
|
132
137
|
raise NotImplementedError('Method not implemented!')
|
133
138
|
|
139
|
+
def ConfirmMessageReceived(self, request, context):
|
140
|
+
"""Confirm Message Received
|
141
|
+
"""
|
142
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
143
|
+
context.set_details('Method not implemented!')
|
144
|
+
raise NotImplementedError('Method not implemented!')
|
145
|
+
|
134
146
|
|
135
147
|
def add_FleetServicer_to_server(servicer, server):
|
136
148
|
rpc_method_handlers = {
|
@@ -179,6 +191,11 @@ def add_FleetServicer_to_server(servicer, server):
|
|
179
191
|
request_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.FromString,
|
180
192
|
response_serializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.SerializeToString,
|
181
193
|
),
|
194
|
+
'ConfirmMessageReceived': grpc.unary_unary_rpc_method_handler(
|
195
|
+
servicer.ConfirmMessageReceived,
|
196
|
+
request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
|
197
|
+
response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
|
198
|
+
),
|
182
199
|
}
|
183
200
|
generic_handler = grpc.method_handlers_generic_handler(
|
184
201
|
'flwr.proto.Fleet', rpc_method_handlers)
|
@@ -341,3 +358,20 @@ class Fleet(object):
|
|
341
358
|
flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
342
359
|
options, channel_credentials,
|
343
360
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
361
|
+
|
362
|
+
@staticmethod
|
363
|
+
def ConfirmMessageReceived(request,
|
364
|
+
target,
|
365
|
+
options=(),
|
366
|
+
channel_credentials=None,
|
367
|
+
call_credentials=None,
|
368
|
+
insecure=False,
|
369
|
+
compression=None,
|
370
|
+
wait_for_ready=None,
|
371
|
+
timeout=None,
|
372
|
+
metadata=None):
|
373
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/ConfirmMessageReceived',
|
374
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
375
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
376
|
+
options, channel_credentials,
|
377
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
flwr/proto/fleet_pb2_grpc.pyi
CHANGED
@@ -59,6 +59,11 @@ class FleetStub:
|
|
59
59
|
flwr.proto.message_pb2.PullObjectResponse]
|
60
60
|
"""Pull Object"""
|
61
61
|
|
62
|
+
ConfirmMessageReceived: grpc.UnaryUnaryMultiCallable[
|
63
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
64
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedResponse]
|
65
|
+
"""Confirm Message Received"""
|
66
|
+
|
62
67
|
|
63
68
|
class FleetServicer(metaclass=abc.ABCMeta):
|
64
69
|
@abc.abstractmethod
|
@@ -131,5 +136,13 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
131
136
|
"""Pull Object"""
|
132
137
|
pass
|
133
138
|
|
139
|
+
@abc.abstractmethod
|
140
|
+
def ConfirmMessageReceived(self,
|
141
|
+
request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
142
|
+
context: grpc.ServicerContext,
|
143
|
+
) -> flwr.proto.message_pb2.ConfirmMessageReceivedResponse:
|
144
|
+
"""Confirm Message Received"""
|
145
|
+
pass
|
146
|
+
|
134
147
|
|
135
148
|
def add_FleetServicer_to_server(servicer: FleetServicer, server: grpc.Server) -> None: ...
|
flwr/proto/message_pb2.py
CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
18
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
19
19
|
|
20
20
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x15\x66lwr/proto/node.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\"\x1f\n\tObjectIDs\x12\x12\n\nobject_ids\x18\x01 \x03(\t\"n\n\x11PushObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\x12\x16\n\x0eobject_content\x18\x04 \x01(\x0c\"$\n\x12PushObjectResponse\x12\x0e\n\x06stored\x18\x01 \x01(\x08\"V\n\x11PullObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\"\\\n\x12PullObjectResponse\x12\x14\n\x0cobject_found\x18\x01 \x01(\x08\x12\x18\n\x10object_available\x18\x02 \x01(\x08\x12\x16\n\x0eobject_content\x18\x03 \x01(\x0c\
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x15\x66lwr/proto/node.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\"\x1f\n\tObjectIDs\x12\x12\n\nobject_ids\x18\x01 \x03(\t\"I\n\nObjectTree\x12\x11\n\tobject_id\x18\x01 \x01(\t\x12(\n\x08\x63hildren\x18\x02 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"n\n\x11PushObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\x12\x16\n\x0eobject_content\x18\x04 \x01(\x0c\"$\n\x12PushObjectResponse\x12\x0e\n\x06stored\x18\x01 \x01(\x08\"V\n\x11PullObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\"\\\n\x12PullObjectResponse\x12\x14\n\x0cobject_found\x18\x01 \x01(\x08\x12\x18\n\x10object_available\x18\x02 \x01(\x08\x12\x16\n\x0eobject_content\x18\x03 \x01(\x0c\"j\n\x1d\x43onfirmMessageReceivedRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x19\n\x11message_object_id\x18\x03 \x01(\t\" \n\x1e\x43onfirmMessageReceivedResponseb\x06proto3')
|
22
22
|
|
23
23
|
_globals = globals()
|
24
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -41,12 +41,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
41
41
|
_globals['_METADATA']._serialized_end=800
|
42
42
|
_globals['_OBJECTIDS']._serialized_start=802
|
43
43
|
_globals['_OBJECTIDS']._serialized_end=833
|
44
|
-
_globals['
|
45
|
-
_globals['
|
46
|
-
_globals['
|
47
|
-
_globals['
|
48
|
-
_globals['
|
49
|
-
_globals['
|
50
|
-
_globals['
|
51
|
-
_globals['
|
44
|
+
_globals['_OBJECTTREE']._serialized_start=835
|
45
|
+
_globals['_OBJECTTREE']._serialized_end=908
|
46
|
+
_globals['_PUSHOBJECTREQUEST']._serialized_start=910
|
47
|
+
_globals['_PUSHOBJECTREQUEST']._serialized_end=1020
|
48
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_start=1022
|
49
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_end=1058
|
50
|
+
_globals['_PULLOBJECTREQUEST']._serialized_start=1060
|
51
|
+
_globals['_PULLOBJECTREQUEST']._serialized_end=1146
|
52
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_start=1148
|
53
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_end=1240
|
54
|
+
_globals['_CONFIRMMESSAGERECEIVEDREQUEST']._serialized_start=1242
|
55
|
+
_globals['_CONFIRMMESSAGERECEIVEDREQUEST']._serialized_end=1348
|
56
|
+
_globals['_CONFIRMMESSAGERECEIVEDRESPONSE']._serialized_start=1350
|
57
|
+
_globals['_CONFIRMMESSAGERECEIVEDRESPONSE']._serialized_end=1382
|
52
58
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/message_pb2.pyi
CHANGED
@@ -140,6 +140,21 @@ class ObjectIDs(google.protobuf.message.Message):
|
|
140
140
|
def ClearField(self, field_name: typing_extensions.Literal["object_ids",b"object_ids"]) -> None: ...
|
141
141
|
global___ObjectIDs = ObjectIDs
|
142
142
|
|
143
|
+
class ObjectTree(google.protobuf.message.Message):
|
144
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
145
|
+
OBJECT_ID_FIELD_NUMBER: builtins.int
|
146
|
+
CHILDREN_FIELD_NUMBER: builtins.int
|
147
|
+
object_id: typing.Text
|
148
|
+
@property
|
149
|
+
def children(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObjectTree]: ...
|
150
|
+
def __init__(self,
|
151
|
+
*,
|
152
|
+
object_id: typing.Text = ...,
|
153
|
+
children: typing.Optional[typing.Iterable[global___ObjectTree]] = ...,
|
154
|
+
) -> None: ...
|
155
|
+
def ClearField(self, field_name: typing_extensions.Literal["children",b"children","object_id",b"object_id"]) -> None: ...
|
156
|
+
global___ObjectTree = ObjectTree
|
157
|
+
|
143
158
|
class PushObjectRequest(google.protobuf.message.Message):
|
144
159
|
"""PushObject messages"""
|
145
160
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
@@ -210,3 +225,29 @@ class PullObjectResponse(google.protobuf.message.Message):
|
|
210
225
|
) -> None: ...
|
211
226
|
def ClearField(self, field_name: typing_extensions.Literal["object_available",b"object_available","object_content",b"object_content","object_found",b"object_found"]) -> None: ...
|
212
227
|
global___PullObjectResponse = PullObjectResponse
|
228
|
+
|
229
|
+
class ConfirmMessageReceivedRequest(google.protobuf.message.Message):
|
230
|
+
"""ConfirmMessageReceived messages"""
|
231
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
232
|
+
NODE_FIELD_NUMBER: builtins.int
|
233
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
234
|
+
MESSAGE_OBJECT_ID_FIELD_NUMBER: builtins.int
|
235
|
+
@property
|
236
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
237
|
+
run_id: builtins.int
|
238
|
+
message_object_id: typing.Text
|
239
|
+
def __init__(self,
|
240
|
+
*,
|
241
|
+
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
242
|
+
run_id: builtins.int = ...,
|
243
|
+
message_object_id: typing.Text = ...,
|
244
|
+
) -> None: ...
|
245
|
+
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
246
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_object_id",b"message_object_id","node",b"node","run_id",b"run_id"]) -> None: ...
|
247
|
+
global___ConfirmMessageReceivedRequest = ConfirmMessageReceivedRequest
|
248
|
+
|
249
|
+
class ConfirmMessageReceivedResponse(google.protobuf.message.Message):
|
250
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
251
|
+
def __init__(self,
|
252
|
+
) -> None: ...
|
253
|
+
global___ConfirmMessageReceivedResponse = ConfirmMessageReceivedResponse
|
flwr/proto/run_pb2.py
CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
|
|
18
18
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
19
19
|
|
20
20
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xe0\x02\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
|
22
22
|
|
23
23
|
_globals = globals()
|
24
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -30,27 +30,27 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
30
30
|
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._options = None
|
31
31
|
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_options = b'8\001'
|
32
32
|
_globals['_RUN']._serialized_start=139
|
33
|
-
_globals['_RUN']._serialized_end=
|
34
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=
|
35
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=
|
36
|
-
_globals['_RUNSTATUS']._serialized_start=
|
37
|
-
_globals['_RUNSTATUS']._serialized_end=
|
38
|
-
_globals['_GETRUNREQUEST']._serialized_start=
|
39
|
-
_globals['_GETRUNREQUEST']._serialized_end=
|
40
|
-
_globals['_GETRUNRESPONSE']._serialized_start=
|
41
|
-
_globals['_GETRUNRESPONSE']._serialized_end=
|
42
|
-
_globals['_UPDATERUNSTATUSREQUEST']._serialized_start=
|
43
|
-
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=
|
44
|
-
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=
|
45
|
-
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=
|
46
|
-
_globals['_GETRUNSTATUSREQUEST']._serialized_start=
|
47
|
-
_globals['_GETRUNSTATUSREQUEST']._serialized_end=
|
48
|
-
_globals['_GETRUNSTATUSRESPONSE']._serialized_start=
|
49
|
-
_globals['_GETRUNSTATUSRESPONSE']._serialized_end=
|
50
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=
|
51
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=
|
52
|
-
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=
|
53
|
-
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=
|
54
|
-
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=
|
55
|
-
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=
|
33
|
+
_globals['_RUN']._serialized_end=491
|
34
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=418
|
35
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=491
|
36
|
+
_globals['_RUNSTATUS']._serialized_start=493
|
37
|
+
_globals['_RUNSTATUS']._serialized_end=557
|
38
|
+
_globals['_GETRUNREQUEST']._serialized_start=559
|
39
|
+
_globals['_GETRUNREQUEST']._serialized_end=622
|
40
|
+
_globals['_GETRUNRESPONSE']._serialized_start=624
|
41
|
+
_globals['_GETRUNRESPONSE']._serialized_end=670
|
42
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_start=672
|
43
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=755
|
44
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=757
|
45
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=782
|
46
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_start=784
|
47
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_end=854
|
48
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_start=857
|
49
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_end=1034
|
50
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=959
|
51
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1034
|
52
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1036
|
53
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1081
|
54
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1083
|
55
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1167
|
56
56
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/run_pb2.pyi
CHANGED
@@ -41,6 +41,7 @@ class Run(google.protobuf.message.Message):
|
|
41
41
|
RUNNING_AT_FIELD_NUMBER: builtins.int
|
42
42
|
FINISHED_AT_FIELD_NUMBER: builtins.int
|
43
43
|
STATUS_FIELD_NUMBER: builtins.int
|
44
|
+
FLWR_AID_FIELD_NUMBER: builtins.int
|
44
45
|
run_id: builtins.int
|
45
46
|
fab_id: typing.Text
|
46
47
|
fab_version: typing.Text
|
@@ -53,6 +54,7 @@ class Run(google.protobuf.message.Message):
|
|
53
54
|
finished_at: typing.Text
|
54
55
|
@property
|
55
56
|
def status(self) -> global___RunStatus: ...
|
57
|
+
flwr_aid: typing.Text
|
56
58
|
def __init__(self,
|
57
59
|
*,
|
58
60
|
run_id: builtins.int = ...,
|
@@ -65,9 +67,10 @@ class Run(google.protobuf.message.Message):
|
|
65
67
|
running_at: typing.Text = ...,
|
66
68
|
finished_at: typing.Text = ...,
|
67
69
|
status: typing.Optional[global___RunStatus] = ...,
|
70
|
+
flwr_aid: typing.Text = ...,
|
68
71
|
) -> None: ...
|
69
72
|
def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
|
70
|
-
def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","finished_at",b"finished_at","override_config",b"override_config","pending_at",b"pending_at","run_id",b"run_id","running_at",b"running_at","starting_at",b"starting_at","status",b"status"]) -> None: ...
|
73
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","finished_at",b"finished_at","flwr_aid",b"flwr_aid","override_config",b"override_config","pending_at",b"pending_at","run_id",b"run_id","running_at",b"running_at","starting_at",b"starting_at","status",b"status"]) -> None: ...
|
71
74
|
global___Run = Run
|
72
75
|
|
73
76
|
class RunStatus(google.protobuf.message.Message):
|
flwr/proto/serverappio_pb2.py
CHANGED
@@ -20,15 +20,13 @@ 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
21
|
|
22
22
|
|
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.Node\"\
|
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.Node\"\x8a\x01\n\x16PushInsMessagesRequest\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcc\x01\n\x17PushInsMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12O\n\x0fobjects_to_push\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PushInsMessagesResponse.ObjectsToPushEntry\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\"=\n\x16PullResMessagesRequest\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\"\xe3\x01\n\x17PullResMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12O\n\x0fobjects_to_pull\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PullResMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x1c\n\x1aPullServerAppInputsRequest\"\x7f\n\x1bPullServerAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"S\n\x1bPushServerAppOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1e\n\x1cPushServerAppOutputsResponse2\xd7\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushInsMessagesRequest\x1a#.flwr.proto.PushInsMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullResMessagesRequest\x1a#.flwr.proto.PullResMessagesResponse\"\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\x12h\n\x13PullServerAppInputs\x12&.flwr.proto.PullServerAppInputsRequest\x1a\'.flwr.proto.PullServerAppInputsResponse\"\x00\x12k\n\x14PushServerAppOutputs\x12\'.flwr.proto.PushServerAppOutputsRequest\x1a(.flwr.proto.PushServerAppOutputsResponse\"\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
24
|
|
25
25
|
_globals = globals()
|
26
26
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
27
27
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
|
28
28
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
29
29
|
DESCRIPTOR._options = None
|
30
|
-
_globals['_PUSHINSMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._options = None
|
31
|
-
_globals['_PUSHINSMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_options = b'8\001'
|
32
30
|
_globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
|
33
31
|
_globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
|
34
32
|
_globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
|
@@ -38,27 +36,25 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
38
36
|
_globals['_GETNODESRESPONSE']._serialized_start=222
|
39
37
|
_globals['_GETNODESRESPONSE']._serialized_end=273
|
40
38
|
_globals['_PUSHINSMESSAGESREQUEST']._serialized_start=276
|
41
|
-
_globals['_PUSHINSMESSAGESREQUEST']._serialized_end=
|
42
|
-
_globals['
|
43
|
-
_globals['
|
44
|
-
_globals['
|
45
|
-
_globals['
|
46
|
-
_globals['
|
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['
|
60
|
-
_globals['
|
61
|
-
_globals['
|
62
|
-
_globals['_SERVERAPPIO']._serialized_start=1324
|
63
|
-
_globals['_SERVERAPPIO']._serialized_end=2448
|
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
|
64
60
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/serverappio_pb2.pyi
CHANGED
@@ -42,36 +42,21 @@ global___GetNodesResponse = GetNodesResponse
|
|
42
42
|
class PushInsMessagesRequest(google.protobuf.message.Message):
|
43
43
|
"""PushMessages messages"""
|
44
44
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
45
|
-
class MsgToDescendantMappingEntry(google.protobuf.message.Message):
|
46
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
47
|
-
KEY_FIELD_NUMBER: builtins.int
|
48
|
-
VALUE_FIELD_NUMBER: builtins.int
|
49
|
-
key: typing.Text
|
50
|
-
@property
|
51
|
-
def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
|
52
|
-
def __init__(self,
|
53
|
-
*,
|
54
|
-
key: typing.Text = ...,
|
55
|
-
value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
|
56
|
-
) -> None: ...
|
57
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
58
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
59
|
-
|
60
45
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
61
46
|
RUN_ID_FIELD_NUMBER: builtins.int
|
62
|
-
|
47
|
+
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
63
48
|
@property
|
64
49
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
65
50
|
run_id: builtins.int
|
66
51
|
@property
|
67
|
-
def
|
52
|
+
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
68
53
|
def __init__(self,
|
69
54
|
*,
|
70
55
|
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
71
56
|
run_id: builtins.int = ...,
|
72
|
-
|
57
|
+
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
73
58
|
) -> None: ...
|
74
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
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: ...
|
75
60
|
global___PushInsMessagesRequest = PushInsMessagesRequest
|
76
61
|
|
77
62
|
class PushInsMessagesResponse(google.protobuf.message.Message):
|
@@ -84,6 +84,11 @@ class ServerAppIoStub(object):
|
|
84
84
|
request_serializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
|
85
85
|
response_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
86
86
|
)
|
87
|
+
self.ConfirmMessageReceived = channel.unary_unary(
|
88
|
+
'/flwr.proto.ServerAppIo/ConfirmMessageReceived',
|
89
|
+
request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
90
|
+
response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
91
|
+
)
|
87
92
|
|
88
93
|
|
89
94
|
class ServerAppIoServicer(object):
|
@@ -180,6 +185,13 @@ class ServerAppIoServicer(object):
|
|
180
185
|
context.set_details('Method not implemented!')
|
181
186
|
raise NotImplementedError('Method not implemented!')
|
182
187
|
|
188
|
+
def ConfirmMessageReceived(self, request, context):
|
189
|
+
"""Confirm Message Received
|
190
|
+
"""
|
191
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
192
|
+
context.set_details('Method not implemented!')
|
193
|
+
raise NotImplementedError('Method not implemented!')
|
194
|
+
|
183
195
|
|
184
196
|
def add_ServerAppIoServicer_to_server(servicer, server):
|
185
197
|
rpc_method_handlers = {
|
@@ -248,6 +260,11 @@ def add_ServerAppIoServicer_to_server(servicer, server):
|
|
248
260
|
request_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.FromString,
|
249
261
|
response_serializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.SerializeToString,
|
250
262
|
),
|
263
|
+
'ConfirmMessageReceived': grpc.unary_unary_rpc_method_handler(
|
264
|
+
servicer.ConfirmMessageReceived,
|
265
|
+
request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
|
266
|
+
response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
|
267
|
+
),
|
251
268
|
}
|
252
269
|
generic_handler = grpc.method_handlers_generic_handler(
|
253
270
|
'flwr.proto.ServerAppIo', rpc_method_handlers)
|
@@ -478,3 +495,20 @@ class ServerAppIo(object):
|
|
478
495
|
flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
479
496
|
options, channel_credentials,
|
480
497
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
498
|
+
|
499
|
+
@staticmethod
|
500
|
+
def ConfirmMessageReceived(request,
|
501
|
+
target,
|
502
|
+
options=(),
|
503
|
+
channel_credentials=None,
|
504
|
+
call_credentials=None,
|
505
|
+
insecure=False,
|
506
|
+
compression=None,
|
507
|
+
wait_for_ready=None,
|
508
|
+
timeout=None,
|
509
|
+
metadata=None):
|
510
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/ConfirmMessageReceived',
|
511
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
512
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
513
|
+
options, channel_credentials,
|
514
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@@ -78,6 +78,11 @@ class ServerAppIoStub:
|
|
78
78
|
flwr.proto.message_pb2.PullObjectResponse]
|
79
79
|
"""Pull Object"""
|
80
80
|
|
81
|
+
ConfirmMessageReceived: grpc.UnaryUnaryMultiCallable[
|
82
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
83
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedResponse]
|
84
|
+
"""Confirm Message Received"""
|
85
|
+
|
81
86
|
|
82
87
|
class ServerAppIoServicer(metaclass=abc.ABCMeta):
|
83
88
|
@abc.abstractmethod
|
@@ -184,5 +189,13 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
|
|
184
189
|
"""Pull Object"""
|
185
190
|
pass
|
186
191
|
|
192
|
+
@abc.abstractmethod
|
193
|
+
def ConfirmMessageReceived(self,
|
194
|
+
request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
195
|
+
context: grpc.ServicerContext,
|
196
|
+
) -> flwr.proto.message_pb2.ConfirmMessageReceivedResponse:
|
197
|
+
"""Confirm Message Received"""
|
198
|
+
pass
|
199
|
+
|
187
200
|
|
188
201
|
def add_ServerAppIoServicer_to_server(servicer: ServerAppIoServicer, server: grpc.Server) -> None: ...
|
@@ -59,7 +59,7 @@ class FleetEventLogInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
59
59
|
log_entry = self.log_plugin.compose_log_before_event(
|
60
60
|
request=request,
|
61
61
|
context=context,
|
62
|
-
|
62
|
+
account_info=None,
|
63
63
|
method_name=method_name,
|
64
64
|
)
|
65
65
|
self.log_plugin.write_log(log_entry)
|
@@ -75,7 +75,7 @@ class FleetEventLogInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
75
75
|
log_entry = self.log_plugin.compose_log_after_event(
|
76
76
|
request=request,
|
77
77
|
context=context,
|
78
|
-
|
78
|
+
account_info=None,
|
79
79
|
method_name=method_name,
|
80
80
|
response=unary_response or error,
|
81
81
|
)
|