flwr 1.19.0__py3-none-any.whl → 1.20.0__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 (94) hide show
  1. flwr/cli/build.py +15 -5
  2. flwr/cli/new/new.py +12 -4
  3. flwr/cli/new/templates/app/README.flowertune.md.tpl +2 -0
  4. flwr/cli/new/templates/app/README.md.tpl +5 -0
  5. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +14 -3
  6. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +13 -1
  7. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +21 -2
  8. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +18 -1
  9. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +19 -2
  10. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +18 -1
  11. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +20 -3
  12. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +18 -1
  13. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +18 -1
  14. flwr/cli/run/run.py +45 -38
  15. flwr/cli/utils.py +12 -5
  16. flwr/client/grpc_adapter_client/connection.py +11 -4
  17. flwr/client/grpc_rere_client/connection.py +92 -117
  18. flwr/client/rest_client/connection.py +131 -164
  19. flwr/common/constant.py +3 -1
  20. flwr/common/exit/exit_code.py +16 -1
  21. flwr/common/grpc.py +12 -1
  22. flwr/common/{inflatable_grpc_utils.py → inflatable_protobuf_utils.py} +52 -10
  23. flwr/common/inflatable_utils.py +191 -24
  24. flwr/common/record/array.py +101 -22
  25. flwr/common/record/arraychunk.py +59 -0
  26. flwr/common/serde.py +0 -28
  27. flwr/compat/client/app.py +14 -31
  28. flwr/proto/appio_pb2.py +43 -0
  29. flwr/proto/appio_pb2.pyi +151 -0
  30. flwr/proto/appio_pb2_grpc.py +4 -0
  31. flwr/proto/appio_pb2_grpc.pyi +4 -0
  32. flwr/proto/clientappio_pb2.py +12 -19
  33. flwr/proto/clientappio_pb2.pyi +23 -101
  34. flwr/proto/clientappio_pb2_grpc.py +269 -28
  35. flwr/proto/clientappio_pb2_grpc.pyi +114 -20
  36. flwr/proto/fleet_pb2.py +12 -20
  37. flwr/proto/fleet_pb2.pyi +6 -36
  38. flwr/proto/serverappio_pb2.py +8 -31
  39. flwr/proto/serverappio_pb2.pyi +0 -152
  40. flwr/proto/serverappio_pb2_grpc.py +39 -38
  41. flwr/proto/serverappio_pb2_grpc.pyi +21 -20
  42. flwr/server/app.py +1 -1
  43. flwr/server/fleet_event_log_interceptor.py +4 -0
  44. flwr/server/grid/grpc_grid.py +91 -54
  45. flwr/server/serverapp/app.py +27 -17
  46. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +8 -0
  47. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +1 -1
  48. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
  49. flwr/server/superlink/fleet/message_handler/message_handler.py +10 -16
  50. flwr/server/superlink/fleet/rest_rere/rest_api.py +1 -2
  51. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -1
  52. flwr/server/superlink/serverappio/serverappio_servicer.py +35 -43
  53. flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
  54. flwr/server/superlink/simulation/simulationio_servicer.py +1 -1
  55. flwr/server/superlink/utils.py +0 -35
  56. flwr/simulation/app.py +8 -0
  57. flwr/simulation/run_simulation.py +17 -0
  58. flwr/{server/superlink → supercore}/ffs/disk_ffs.py +1 -1
  59. flwr/supercore/grpc_health/__init__.py +22 -0
  60. flwr/supercore/grpc_health/simple_health_servicer.py +38 -0
  61. flwr/supercore/license_plugin/__init__.py +22 -0
  62. flwr/supercore/license_plugin/license_plugin.py +26 -0
  63. flwr/supercore/object_store/in_memory_object_store.py +31 -31
  64. flwr/supercore/object_store/object_store.py +20 -42
  65. flwr/supercore/object_store/utils.py +43 -0
  66. flwr/supercore/scheduler/__init__.py +22 -0
  67. flwr/supercore/scheduler/plugin.py +71 -0
  68. flwr/supercore/utils.py +32 -0
  69. flwr/superexec/deployment.py +1 -2
  70. flwr/superexec/exec_event_log_interceptor.py +4 -0
  71. flwr/superexec/exec_grpc.py +18 -2
  72. flwr/superexec/exec_license_interceptor.py +82 -0
  73. flwr/superexec/exec_servicer.py +10 -1
  74. flwr/superexec/exec_user_auth_interceptor.py +10 -2
  75. flwr/superexec/executor.py +1 -1
  76. flwr/superexec/simulation.py +1 -2
  77. flwr/supernode/cli/flower_supernode.py +0 -7
  78. flwr/supernode/cli/flwr_clientapp.py +10 -3
  79. flwr/supernode/nodestate/in_memory_nodestate.py +11 -2
  80. flwr/supernode/nodestate/nodestate.py +15 -0
  81. flwr/supernode/runtime/run_clientapp.py +110 -33
  82. flwr/supernode/scheduler/__init__.py +22 -0
  83. flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +49 -0
  84. flwr/supernode/servicer/clientappio/__init__.py +1 -3
  85. flwr/supernode/servicer/clientappio/clientappio_servicer.py +223 -164
  86. flwr/supernode/start_client_internal.py +202 -104
  87. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/METADATA +2 -1
  88. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/RECORD +93 -78
  89. flwr/common/inflatable_rest_utils.py +0 -99
  90. /flwr/{server/superlink → supercore}/ffs/__init__.py +0 -0
  91. /flwr/{server/superlink → supercore}/ffs/ffs.py +0 -0
  92. /flwr/{server/superlink → supercore}/ffs/ffs_factory.py +0 -0
  93. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/WHEEL +0 -0
  94. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/entry_points.txt +0 -0
flwr/proto/fleet_pb2.pyi CHANGED
@@ -78,38 +78,23 @@ global___PullMessagesRequest = PullMessagesRequest
78
78
 
79
79
  class PullMessagesResponse(google.protobuf.message.Message):
80
80
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
81
- class ObjectsToPullEntry(google.protobuf.message.Message):
82
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
83
- KEY_FIELD_NUMBER: builtins.int
84
- VALUE_FIELD_NUMBER: builtins.int
85
- key: typing.Text
86
- @property
87
- def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
88
- def __init__(self,
89
- *,
90
- key: typing.Text = ...,
91
- value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
92
- ) -> None: ...
93
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
94
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
95
-
96
81
  RECONNECT_FIELD_NUMBER: builtins.int
97
82
  MESSAGES_LIST_FIELD_NUMBER: builtins.int
98
- OBJECTS_TO_PULL_FIELD_NUMBER: builtins.int
83
+ MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
99
84
  @property
100
85
  def reconnect(self) -> global___Reconnect: ...
101
86
  @property
102
87
  def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
103
88
  @property
104
- def objects_to_pull(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
89
+ def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
105
90
  def __init__(self,
106
91
  *,
107
92
  reconnect: typing.Optional[global___Reconnect] = ...,
108
93
  messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
109
- objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
94
+ message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
110
95
  ) -> None: ...
111
96
  def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
112
- def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull","reconnect",b"reconnect"]) -> None: ...
97
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","reconnect",b"reconnect"]) -> None: ...
113
98
  global___PullMessagesResponse = PullMessagesResponse
114
99
 
115
100
  class PushMessagesRequest(google.protobuf.message.Message):
@@ -149,21 +134,6 @@ class PushMessagesResponse(google.protobuf.message.Message):
149
134
  ) -> None: ...
150
135
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
151
136
 
152
- class ObjectsToPushEntry(google.protobuf.message.Message):
153
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
- KEY_FIELD_NUMBER: builtins.int
155
- VALUE_FIELD_NUMBER: builtins.int
156
- key: typing.Text
157
- @property
158
- def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
159
- def __init__(self,
160
- *,
161
- key: typing.Text = ...,
162
- value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
163
- ) -> None: ...
164
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
165
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
166
-
167
137
  RECONNECT_FIELD_NUMBER: builtins.int
168
138
  RESULTS_FIELD_NUMBER: builtins.int
169
139
  OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
@@ -172,12 +142,12 @@ class PushMessagesResponse(google.protobuf.message.Message):
172
142
  @property
173
143
  def results(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, builtins.int]: ...
174
144
  @property
175
- def objects_to_push(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
145
+ def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
176
146
  def __init__(self,
177
147
  *,
178
148
  reconnect: typing.Optional[global___Reconnect] = ...,
179
149
  results: typing.Optional[typing.Mapping[typing.Text, builtins.int]] = ...,
180
- objects_to_push: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
150
+ objects_to_push: typing.Optional[typing.Iterable[typing.Text]] = ...,
181
151
  ) -> None: ...
182
152
  def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
183
153
  def ClearField(self, field_name: typing_extensions.Literal["objects_to_push",b"objects_to_push","reconnect",b"reconnect","results",b"results"]) -> None: ...
@@ -18,43 +18,20 @@ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
18
18
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
19
19
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
20
20
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
21
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
21
22
 
22
23
 
23
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.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
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xb3\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
24
25
 
25
26
  _globals = globals()
26
27
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
28
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
28
29
  if _descriptor._USE_C_DESCRIPTORS == False:
29
30
  DESCRIPTOR._options = None
30
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
31
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
32
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
33
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
34
- _globals['_GETNODESREQUEST']._serialized_start=187
35
- _globals['_GETNODESREQUEST']._serialized_end=220
36
- _globals['_GETNODESRESPONSE']._serialized_start=222
37
- _globals['_GETNODESRESPONSE']._serialized_end=273
38
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_start=276
39
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_end=414
40
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_start=417
41
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_end=621
42
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=546
43
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=621
44
- _globals['_PULLRESMESSAGESREQUEST']._serialized_start=623
45
- _globals['_PULLRESMESSAGESREQUEST']._serialized_end=684
46
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_start=687
47
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_end=914
48
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=839
49
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=914
50
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=916
51
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=944
52
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=946
53
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=1073
54
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=1075
55
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=1158
56
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=1160
57
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=1190
58
- _globals['_SERVERAPPIO']._serialized_start=1193
59
- _globals['_SERVERAPPIO']._serialized_end=2432
31
+ _globals['_GETNODESREQUEST']._serialized_start=211
32
+ _globals['_GETNODESREQUEST']._serialized_end=244
33
+ _globals['_GETNODESRESPONSE']._serialized_start=246
34
+ _globals['_GETNODESRESPONSE']._serialized_end=297
35
+ _globals['_SERVERAPPIO']._serialized_start=300
36
+ _globals['_SERVERAPPIO']._serialized_end=1503
60
37
  # @@protoc_insertion_point(module_scope)
@@ -3,10 +3,7 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
- import flwr.proto.fab_pb2
7
- import flwr.proto.message_pb2
8
6
  import flwr.proto.node_pb2
9
- import flwr.proto.run_pb2
10
7
  import google.protobuf.descriptor
11
8
  import google.protobuf.internal.containers
12
9
  import google.protobuf.message
@@ -38,152 +35,3 @@ class GetNodesResponse(google.protobuf.message.Message):
38
35
  ) -> None: ...
39
36
  def ClearField(self, field_name: typing_extensions.Literal["nodes",b"nodes"]) -> None: ...
40
37
  global___GetNodesResponse = GetNodesResponse
41
-
42
- class PushInsMessagesRequest(google.protobuf.message.Message):
43
- """PushMessages messages"""
44
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
45
- MESSAGES_LIST_FIELD_NUMBER: builtins.int
46
- RUN_ID_FIELD_NUMBER: builtins.int
47
- MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
48
- @property
49
- def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
50
- run_id: builtins.int
51
- @property
52
- def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
53
- def __init__(self,
54
- *,
55
- messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
56
- run_id: builtins.int = ...,
57
- message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
58
- ) -> None: ...
59
- def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
60
- global___PushInsMessagesRequest = PushInsMessagesRequest
61
-
62
- class PushInsMessagesResponse(google.protobuf.message.Message):
63
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
64
- class ObjectsToPushEntry(google.protobuf.message.Message):
65
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
66
- KEY_FIELD_NUMBER: builtins.int
67
- VALUE_FIELD_NUMBER: builtins.int
68
- key: typing.Text
69
- @property
70
- def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
71
- def __init__(self,
72
- *,
73
- key: typing.Text = ...,
74
- value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
75
- ) -> None: ...
76
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
77
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
78
-
79
- MESSAGE_IDS_FIELD_NUMBER: builtins.int
80
- OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
81
- @property
82
- def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
83
- @property
84
- def objects_to_push(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
85
- def __init__(self,
86
- *,
87
- message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
88
- objects_to_push: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
89
- ) -> None: ...
90
- def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","objects_to_push",b"objects_to_push"]) -> None: ...
91
- global___PushInsMessagesResponse = PushInsMessagesResponse
92
-
93
- class PullResMessagesRequest(google.protobuf.message.Message):
94
- """PullMessages messages"""
95
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
96
- MESSAGE_IDS_FIELD_NUMBER: builtins.int
97
- RUN_ID_FIELD_NUMBER: builtins.int
98
- @property
99
- def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
100
- run_id: builtins.int
101
- def __init__(self,
102
- *,
103
- message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
104
- run_id: builtins.int = ...,
105
- ) -> None: ...
106
- def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
107
- global___PullResMessagesRequest = PullResMessagesRequest
108
-
109
- class PullResMessagesResponse(google.protobuf.message.Message):
110
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
111
- class ObjectsToPullEntry(google.protobuf.message.Message):
112
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
113
- KEY_FIELD_NUMBER: builtins.int
114
- VALUE_FIELD_NUMBER: builtins.int
115
- key: typing.Text
116
- @property
117
- def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
118
- def __init__(self,
119
- *,
120
- key: typing.Text = ...,
121
- value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
122
- ) -> None: ...
123
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
124
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
125
-
126
- MESSAGES_LIST_FIELD_NUMBER: builtins.int
127
- OBJECTS_TO_PULL_FIELD_NUMBER: builtins.int
128
- @property
129
- def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
130
- @property
131
- def objects_to_pull(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
132
- def __init__(self,
133
- *,
134
- messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
135
- objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
136
- ) -> None: ...
137
- def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull"]) -> None: ...
138
- global___PullResMessagesResponse = PullResMessagesResponse
139
-
140
- class PullServerAppInputsRequest(google.protobuf.message.Message):
141
- """PullServerAppInputs messages"""
142
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
143
- def __init__(self,
144
- ) -> None: ...
145
- global___PullServerAppInputsRequest = PullServerAppInputsRequest
146
-
147
- class PullServerAppInputsResponse(google.protobuf.message.Message):
148
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
- CONTEXT_FIELD_NUMBER: builtins.int
150
- RUN_FIELD_NUMBER: builtins.int
151
- FAB_FIELD_NUMBER: builtins.int
152
- @property
153
- def context(self) -> flwr.proto.message_pb2.Context: ...
154
- @property
155
- def run(self) -> flwr.proto.run_pb2.Run: ...
156
- @property
157
- def fab(self) -> flwr.proto.fab_pb2.Fab: ...
158
- def __init__(self,
159
- *,
160
- context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
161
- run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
162
- fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
163
- ) -> None: ...
164
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
165
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
166
- global___PullServerAppInputsResponse = PullServerAppInputsResponse
167
-
168
- class PushServerAppOutputsRequest(google.protobuf.message.Message):
169
- """PushServerAppOutputs messages"""
170
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
171
- RUN_ID_FIELD_NUMBER: builtins.int
172
- CONTEXT_FIELD_NUMBER: builtins.int
173
- run_id: builtins.int
174
- @property
175
- def context(self) -> flwr.proto.message_pb2.Context: ...
176
- def __init__(self,
177
- *,
178
- run_id: builtins.int = ...,
179
- context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
180
- ) -> None: ...
181
- def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
182
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
183
- global___PushServerAppOutputsRequest = PushServerAppOutputsRequest
184
-
185
- class PushServerAppOutputsResponse(google.protobuf.message.Message):
186
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
187
- def __init__(self,
188
- ) -> None: ...
189
- global___PushServerAppOutputsResponse = PushServerAppOutputsResponse
@@ -2,6 +2,7 @@
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
4
 
5
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
5
6
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
6
7
  from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
7
8
  from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
@@ -26,13 +27,13 @@ class ServerAppIoStub(object):
26
27
  )
27
28
  self.PushMessages = channel.unary_unary(
28
29
  '/flwr.proto.ServerAppIo/PushMessages',
29
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.SerializeToString,
30
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.FromString,
30
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
31
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
31
32
  )
32
33
  self.PullMessages = channel.unary_unary(
33
34
  '/flwr.proto.ServerAppIo/PullMessages',
34
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.SerializeToString,
35
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.FromString,
35
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
36
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
36
37
  )
37
38
  self.GetRun = channel.unary_unary(
38
39
  '/flwr.proto.ServerAppIo/GetRun',
@@ -44,15 +45,15 @@ class ServerAppIoStub(object):
44
45
  request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
45
46
  response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
46
47
  )
47
- self.PullServerAppInputs = channel.unary_unary(
48
- '/flwr.proto.ServerAppIo/PullServerAppInputs',
49
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.SerializeToString,
50
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.FromString,
48
+ self.PullAppInputs = channel.unary_unary(
49
+ '/flwr.proto.ServerAppIo/PullAppInputs',
50
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
51
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
51
52
  )
52
- self.PushServerAppOutputs = channel.unary_unary(
53
- '/flwr.proto.ServerAppIo/PushServerAppOutputs',
54
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.SerializeToString,
55
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.FromString,
53
+ self.PushAppOutputs = channel.unary_unary(
54
+ '/flwr.proto.ServerAppIo/PushAppOutputs',
55
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
56
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
56
57
  )
57
58
  self.UpdateRunStatus = channel.unary_unary(
58
59
  '/flwr.proto.ServerAppIo/UpdateRunStatus',
@@ -129,14 +130,14 @@ class ServerAppIoServicer(object):
129
130
  context.set_details('Method not implemented!')
130
131
  raise NotImplementedError('Method not implemented!')
131
132
 
132
- def PullServerAppInputs(self, request, context):
133
+ def PullAppInputs(self, request, context):
133
134
  """Pull ServerApp inputs
134
135
  """
135
136
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
136
137
  context.set_details('Method not implemented!')
137
138
  raise NotImplementedError('Method not implemented!')
138
139
 
139
- def PushServerAppOutputs(self, request, context):
140
+ def PushAppOutputs(self, request, context):
140
141
  """Push ServerApp outputs
141
142
  """
142
143
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -202,13 +203,13 @@ def add_ServerAppIoServicer_to_server(servicer, server):
202
203
  ),
203
204
  'PushMessages': grpc.unary_unary_rpc_method_handler(
204
205
  servicer.PushMessages,
205
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.FromString,
206
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.SerializeToString,
206
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.FromString,
207
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.SerializeToString,
207
208
  ),
208
209
  'PullMessages': grpc.unary_unary_rpc_method_handler(
209
210
  servicer.PullMessages,
210
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.FromString,
211
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.SerializeToString,
211
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
212
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
212
213
  ),
213
214
  'GetRun': grpc.unary_unary_rpc_method_handler(
214
215
  servicer.GetRun,
@@ -220,15 +221,15 @@ def add_ServerAppIoServicer_to_server(servicer, server):
220
221
  request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
221
222
  response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
222
223
  ),
223
- 'PullServerAppInputs': grpc.unary_unary_rpc_method_handler(
224
- servicer.PullServerAppInputs,
225
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.FromString,
226
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.SerializeToString,
224
+ 'PullAppInputs': grpc.unary_unary_rpc_method_handler(
225
+ servicer.PullAppInputs,
226
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.FromString,
227
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.SerializeToString,
227
228
  ),
228
- 'PushServerAppOutputs': grpc.unary_unary_rpc_method_handler(
229
- servicer.PushServerAppOutputs,
230
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.FromString,
231
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.SerializeToString,
229
+ 'PushAppOutputs': grpc.unary_unary_rpc_method_handler(
230
+ servicer.PushAppOutputs,
231
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.FromString,
232
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.SerializeToString,
232
233
  ),
233
234
  'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
234
235
  servicer.UpdateRunStatus,
@@ -304,8 +305,8 @@ class ServerAppIo(object):
304
305
  timeout=None,
305
306
  metadata=None):
306
307
  return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushMessages',
307
- flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.SerializeToString,
308
- flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.FromString,
308
+ flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
309
+ flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
309
310
  options, channel_credentials,
310
311
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
311
312
 
@@ -321,8 +322,8 @@ class ServerAppIo(object):
321
322
  timeout=None,
322
323
  metadata=None):
323
324
  return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullMessages',
324
- flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.SerializeToString,
325
- flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.FromString,
325
+ flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
326
+ flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
326
327
  options, channel_credentials,
327
328
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
328
329
 
@@ -361,7 +362,7 @@ class ServerAppIo(object):
361
362
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
362
363
 
363
364
  @staticmethod
364
- def PullServerAppInputs(request,
365
+ def PullAppInputs(request,
365
366
  target,
366
367
  options=(),
367
368
  channel_credentials=None,
@@ -371,14 +372,14 @@ class ServerAppIo(object):
371
372
  wait_for_ready=None,
372
373
  timeout=None,
373
374
  metadata=None):
374
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullServerAppInputs',
375
- flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.SerializeToString,
376
- flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.FromString,
375
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullAppInputs',
376
+ flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
377
+ flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
377
378
  options, channel_credentials,
378
379
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
379
380
 
380
381
  @staticmethod
381
- def PushServerAppOutputs(request,
382
+ def PushAppOutputs(request,
382
383
  target,
383
384
  options=(),
384
385
  channel_credentials=None,
@@ -388,9 +389,9 @@ class ServerAppIo(object):
388
389
  wait_for_ready=None,
389
390
  timeout=None,
390
391
  metadata=None):
391
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushServerAppOutputs',
392
- flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.SerializeToString,
393
- flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.FromString,
392
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushAppOutputs',
393
+ flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
394
+ flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
394
395
  options, channel_credentials,
395
396
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
396
397
 
@@ -3,6 +3,7 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import abc
6
+ import flwr.proto.appio_pb2
6
7
  import flwr.proto.fab_pb2
7
8
  import flwr.proto.heartbeat_pb2
8
9
  import flwr.proto.log_pb2
@@ -19,13 +20,13 @@ class ServerAppIoStub:
19
20
  """Return a set of nodes"""
20
21
 
21
22
  PushMessages: grpc.UnaryUnaryMultiCallable[
22
- flwr.proto.serverappio_pb2.PushInsMessagesRequest,
23
- flwr.proto.serverappio_pb2.PushInsMessagesResponse]
23
+ flwr.proto.appio_pb2.PushAppMessagesRequest,
24
+ flwr.proto.appio_pb2.PushAppMessagesResponse]
24
25
  """Create one or more messages"""
25
26
 
26
27
  PullMessages: grpc.UnaryUnaryMultiCallable[
27
- flwr.proto.serverappio_pb2.PullResMessagesRequest,
28
- flwr.proto.serverappio_pb2.PullResMessagesResponse]
28
+ flwr.proto.appio_pb2.PullAppMessagesRequest,
29
+ flwr.proto.appio_pb2.PullAppMessagesResponse]
29
30
  """Get message results"""
30
31
 
31
32
  GetRun: grpc.UnaryUnaryMultiCallable[
@@ -38,14 +39,14 @@ class ServerAppIoStub:
38
39
  flwr.proto.fab_pb2.GetFabResponse]
39
40
  """Get FAB"""
40
41
 
41
- PullServerAppInputs: grpc.UnaryUnaryMultiCallable[
42
- flwr.proto.serverappio_pb2.PullServerAppInputsRequest,
43
- flwr.proto.serverappio_pb2.PullServerAppInputsResponse]
42
+ PullAppInputs: grpc.UnaryUnaryMultiCallable[
43
+ flwr.proto.appio_pb2.PullAppInputsRequest,
44
+ flwr.proto.appio_pb2.PullAppInputsResponse]
44
45
  """Pull ServerApp inputs"""
45
46
 
46
- PushServerAppOutputs: grpc.UnaryUnaryMultiCallable[
47
- flwr.proto.serverappio_pb2.PushServerAppOutputsRequest,
48
- flwr.proto.serverappio_pb2.PushServerAppOutputsResponse]
47
+ PushAppOutputs: grpc.UnaryUnaryMultiCallable[
48
+ flwr.proto.appio_pb2.PushAppOutputsRequest,
49
+ flwr.proto.appio_pb2.PushAppOutputsResponse]
49
50
  """Push ServerApp outputs"""
50
51
 
51
52
  UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
@@ -95,17 +96,17 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
95
96
 
96
97
  @abc.abstractmethod
97
98
  def PushMessages(self,
98
- request: flwr.proto.serverappio_pb2.PushInsMessagesRequest,
99
+ request: flwr.proto.appio_pb2.PushAppMessagesRequest,
99
100
  context: grpc.ServicerContext,
100
- ) -> flwr.proto.serverappio_pb2.PushInsMessagesResponse:
101
+ ) -> flwr.proto.appio_pb2.PushAppMessagesResponse:
101
102
  """Create one or more messages"""
102
103
  pass
103
104
 
104
105
  @abc.abstractmethod
105
106
  def PullMessages(self,
106
- request: flwr.proto.serverappio_pb2.PullResMessagesRequest,
107
+ request: flwr.proto.appio_pb2.PullAppMessagesRequest,
107
108
  context: grpc.ServicerContext,
108
- ) -> flwr.proto.serverappio_pb2.PullResMessagesResponse:
109
+ ) -> flwr.proto.appio_pb2.PullAppMessagesResponse:
109
110
  """Get message results"""
110
111
  pass
111
112
 
@@ -126,18 +127,18 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
126
127
  pass
127
128
 
128
129
  @abc.abstractmethod
129
- def PullServerAppInputs(self,
130
- request: flwr.proto.serverappio_pb2.PullServerAppInputsRequest,
130
+ def PullAppInputs(self,
131
+ request: flwr.proto.appio_pb2.PullAppInputsRequest,
131
132
  context: grpc.ServicerContext,
132
- ) -> flwr.proto.serverappio_pb2.PullServerAppInputsResponse:
133
+ ) -> flwr.proto.appio_pb2.PullAppInputsResponse:
133
134
  """Pull ServerApp inputs"""
134
135
  pass
135
136
 
136
137
  @abc.abstractmethod
137
- def PushServerAppOutputs(self,
138
- request: flwr.proto.serverappio_pb2.PushServerAppOutputsRequest,
138
+ def PushAppOutputs(self,
139
+ request: flwr.proto.appio_pb2.PushAppOutputsRequest,
139
140
  context: grpc.ServicerContext,
140
- ) -> flwr.proto.serverappio_pb2.PushServerAppOutputsResponse:
141
+ ) -> flwr.proto.appio_pb2.PushAppOutputsResponse:
141
142
  """Push ServerApp outputs"""
142
143
  pass
143
144
 
flwr/server/app.py CHANGED
@@ -71,11 +71,11 @@ from flwr.proto.grpcadapter_pb2_grpc import add_GrpcAdapterServicer_to_server
71
71
  from flwr.server.fleet_event_log_interceptor import FleetEventLogInterceptor
72
72
  from flwr.server.serverapp.app import flwr_serverapp
73
73
  from flwr.simulation.app import flwr_simulation
74
+ from flwr.supercore.ffs import FfsFactory
74
75
  from flwr.supercore.object_store import ObjectStoreFactory
75
76
  from flwr.superexec.app import load_executor
76
77
  from flwr.superexec.exec_grpc import run_exec_api_grpc
77
78
 
78
- from .superlink.ffs.ffs_factory import FfsFactory
79
79
  from .superlink.fleet.grpc_adapter.grpc_adapter_servicer import GrpcAdapterServicer
80
80
  from .superlink.fleet.grpc_rere.fleet_servicer import FleetServicer
81
81
  from .superlink.fleet.grpc_rere.server_interceptor import AuthenticateServerInterceptor
@@ -41,6 +41,10 @@ class FleetEventLogInterceptor(grpc.ServerInterceptor): # type: ignore
41
41
  if event logger is enabled on the SuperLink, else, terminate RPC call by setting
42
42
  context to abort.
43
43
  """
44
+ # Only apply to Fleet service
45
+ if not handler_call_details.method.startswith("/flwr.proto.Fleet/"):
46
+ return continuation(handler_call_details)
47
+
44
48
  # One of the method handlers in
45
49
  # `flwr.server.superlink.fleet.grpc_rere.fleet_servicer.FleetServicer`
46
50
  method_handler: grpc.RpcMethodHandler = continuation(handler_call_details)