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.
Files changed (45) hide show
  1. flwr/client/grpc_rere_client/connection.py +48 -29
  2. flwr/client/grpc_rere_client/grpc_adapter.py +8 -0
  3. flwr/client/rest_client/connection.py +138 -27
  4. flwr/common/auth_plugin/auth_plugin.py +6 -4
  5. flwr/common/event_log_plugin/event_log_plugin.py +3 -3
  6. flwr/common/inflatable.py +70 -1
  7. flwr/common/inflatable_grpc_utils.py +1 -1
  8. flwr/common/inflatable_rest_utils.py +99 -0
  9. flwr/common/serde.py +2 -0
  10. flwr/common/typing.py +5 -3
  11. flwr/proto/fleet_pb2.py +12 -16
  12. flwr/proto/fleet_pb2.pyi +4 -19
  13. flwr/proto/fleet_pb2_grpc.py +34 -0
  14. flwr/proto/fleet_pb2_grpc.pyi +13 -0
  15. flwr/proto/message_pb2.py +15 -9
  16. flwr/proto/message_pb2.pyi +41 -0
  17. flwr/proto/run_pb2.py +24 -24
  18. flwr/proto/run_pb2.pyi +4 -1
  19. flwr/proto/serverappio_pb2.py +22 -26
  20. flwr/proto/serverappio_pb2.pyi +4 -19
  21. flwr/proto/serverappio_pb2_grpc.py +34 -0
  22. flwr/proto/serverappio_pb2_grpc.pyi +13 -0
  23. flwr/server/fleet_event_log_interceptor.py +2 -2
  24. flwr/server/grid/grpc_grid.py +20 -9
  25. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +25 -0
  26. flwr/server/superlink/fleet/message_handler/message_handler.py +33 -2
  27. flwr/server/superlink/fleet/rest_rere/rest_api.py +56 -2
  28. flwr/server/superlink/linkstate/in_memory_linkstate.py +17 -2
  29. flwr/server/superlink/linkstate/linkstate.py +6 -2
  30. flwr/server/superlink/linkstate/sqlite_linkstate.py +19 -7
  31. flwr/server/superlink/serverappio/serverappio_servicer.py +65 -29
  32. flwr/server/superlink/simulation/simulationio_servicer.py +2 -1
  33. flwr/server/superlink/utils.py +23 -10
  34. flwr/supercore/object_store/in_memory_object_store.py +160 -33
  35. flwr/supercore/object_store/object_store.py +54 -7
  36. flwr/superexec/deployment.py +6 -2
  37. flwr/superexec/exec_event_log_interceptor.py +4 -4
  38. flwr/superexec/exec_servicer.py +4 -1
  39. flwr/superexec/exec_user_auth_interceptor.py +11 -11
  40. flwr/superexec/executor.py +4 -0
  41. flwr/superexec/simulation.py +7 -1
  42. {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/METADATA +1 -1
  43. {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/RECORD +45 -44
  44. {flwr_nightly-1.19.0.dev20250610.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/WHEEL +0 -0
  45. {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\x02\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^\n\x19msg_to_descendant_mapping\x18\x03 \x03(\x0b\x32;.flwr.proto.PushMessagesRequest.MsgToDescendantMappingEntry\x1aT\n\x1bMsgToDescendantMappingEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\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\xd7\x05\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\x62\x06proto3')
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=959
53
- _globals['_PUSHMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_start=875
54
- _globals['_PUSHMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_end=959
55
- _globals['_PUSHMESSAGESRESPONSE']._serialized_start=962
56
- _globals['_PUSHMESSAGESRESPONSE']._serialized_end=1293
57
- _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=1170
58
- _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=1216
59
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=1218
60
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=1293
61
- _globals['_RECONNECT']._serialized_start=1295
62
- _globals['_RECONNECT']._serialized_end=1325
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
- MSG_TO_DESCENDANT_MAPPING_FIELD_NUMBER: builtins.int
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 msg_to_descendant_mapping(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
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
- msg_to_descendant_mapping: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
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["messages_list",b"messages_list","msg_to_descendant_mapping",b"msg_to_descendant_mapping","node",b"node"]) -> None: ...
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):
@@ -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)
@@ -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\x62\x06proto3')
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['_PUSHOBJECTREQUEST']._serialized_start=835
45
- _globals['_PUSHOBJECTREQUEST']._serialized_end=945
46
- _globals['_PUSHOBJECTRESPONSE']._serialized_start=947
47
- _globals['_PUSHOBJECTRESPONSE']._serialized_end=983
48
- _globals['_PULLOBJECTREQUEST']._serialized_start=985
49
- _globals['_PULLOBJECTREQUEST']._serialized_end=1071
50
- _globals['_PULLOBJECTRESPONSE']._serialized_start=1073
51
- _globals['_PULLOBJECTRESPONSE']._serialized_end=1165
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)
@@ -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\"\xce\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\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')
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=473
34
- _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=400
35
- _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=473
36
- _globals['_RUNSTATUS']._serialized_start=475
37
- _globals['_RUNSTATUS']._serialized_end=539
38
- _globals['_GETRUNREQUEST']._serialized_start=541
39
- _globals['_GETRUNREQUEST']._serialized_end=604
40
- _globals['_GETRUNRESPONSE']._serialized_start=606
41
- _globals['_GETRUNRESPONSE']._serialized_end=652
42
- _globals['_UPDATERUNSTATUSREQUEST']._serialized_start=654
43
- _globals['_UPDATERUNSTATUSREQUEST']._serialized_end=737
44
- _globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=739
45
- _globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=764
46
- _globals['_GETRUNSTATUSREQUEST']._serialized_start=766
47
- _globals['_GETRUNSTATUSREQUEST']._serialized_end=836
48
- _globals['_GETRUNSTATUSRESPONSE']._serialized_start=839
49
- _globals['_GETRUNSTATUSRESPONSE']._serialized_end=1016
50
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=941
51
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1016
52
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1018
53
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1063
54
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1065
55
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1149
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):
@@ -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\"\x8d\x02\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\x61\n\x19msg_to_descendant_mapping\x18\x03 \x03(\x0b\x32>.flwr.proto.PushInsMessagesRequest.MsgToDescendantMappingEntry\x1aT\n\x1bMsgToDescendantMappingEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\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\xe4\x08\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\x62\x06proto3')
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=545
42
- _globals['_PUSHINSMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_start=461
43
- _globals['_PUSHINSMESSAGESREQUEST_MSGTODESCENDANTMAPPINGENTRY']._serialized_end=545
44
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_start=548
45
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_end=752
46
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=677
47
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=752
48
- _globals['_PULLRESMESSAGESREQUEST']._serialized_start=754
49
- _globals['_PULLRESMESSAGESREQUEST']._serialized_end=815
50
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_start=818
51
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_end=1045
52
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=970
53
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=1045
54
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=1047
55
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=1075
56
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=1077
57
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=1204
58
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=1206
59
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=1289
60
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=1291
61
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=1321
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)
@@ -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
- MSG_TO_DESCENDANT_MAPPING_FIELD_NUMBER: builtins.int
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 msg_to_descendant_mapping(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
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
- msg_to_descendant_mapping: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
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["messages_list",b"messages_list","msg_to_descendant_mapping",b"msg_to_descendant_mapping","run_id",b"run_id"]) -> 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: ...
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
- user_info=None,
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
- user_info=None,
78
+ account_info=None,
79
79
  method_name=method_name,
80
80
  response=unary_response or error,
81
81
  )