flwr 1.25.0__py3-none-any.whl → 1.26.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 (140) hide show
  1. flwr/__init__.py +1 -1
  2. flwr/app/__init__.py +4 -1
  3. flwr/app/message_type.py +29 -0
  4. flwr/app/metadata.py +5 -2
  5. flwr/app/user_config.py +19 -0
  6. flwr/cli/app.py +37 -19
  7. flwr/cli/app_cmd/publish.py +25 -75
  8. flwr/cli/app_cmd/review.py +18 -69
  9. flwr/cli/auth_plugin/auth_plugin.py +5 -10
  10. flwr/cli/auth_plugin/noop_auth_plugin.py +1 -2
  11. flwr/cli/auth_plugin/oidc_cli_plugin.py +38 -38
  12. flwr/cli/build.py +15 -28
  13. flwr/cli/config/__init__.py +21 -0
  14. flwr/cli/config/ls.py +71 -0
  15. flwr/cli/config_migration.py +297 -0
  16. flwr/cli/config_utils.py +63 -156
  17. flwr/cli/constant.py +71 -0
  18. flwr/cli/federation/__init__.py +0 -2
  19. flwr/cli/federation/ls.py +256 -64
  20. flwr/cli/flower_config.py +429 -0
  21. flwr/cli/install.py +23 -62
  22. flwr/cli/log.py +23 -37
  23. flwr/cli/login/login.py +29 -63
  24. flwr/cli/ls.py +28 -58
  25. flwr/cli/new/new.py +9 -29
  26. flwr/cli/pull.py +19 -37
  27. flwr/cli/run/run.py +85 -93
  28. flwr/cli/run_utils.py +1 -1
  29. flwr/cli/stop.py +32 -73
  30. flwr/cli/supernode/ls.py +25 -57
  31. flwr/cli/supernode/register.py +31 -80
  32. flwr/cli/supernode/unregister.py +24 -70
  33. flwr/cli/typing.py +200 -0
  34. flwr/cli/utils.py +160 -275
  35. flwr/client/grpc_rere_client/connection.py +3 -3
  36. flwr/client/grpc_rere_client/grpc_adapter.py +1 -1
  37. flwr/client/message_handler/message_handler.py +2 -1
  38. flwr/client/mod/centraldp_mods.py +1 -1
  39. flwr/client/mod/localdp_mod.py +1 -1
  40. flwr/client/mod/secure_aggregation/secaggplus_mod.py +1 -1
  41. flwr/client/run_info_store.py +2 -1
  42. flwr/clientapp/client_app.py +2 -1
  43. flwr/common/__init__.py +3 -2
  44. flwr/common/args.py +5 -5
  45. flwr/common/config.py +12 -17
  46. flwr/common/constant.py +3 -16
  47. flwr/common/context.py +2 -1
  48. flwr/common/exit/exit.py +4 -4
  49. flwr/common/exit/exit_code.py +6 -0
  50. flwr/common/grpc.py +2 -1
  51. flwr/common/logger.py +1 -1
  52. flwr/common/message.py +1 -1
  53. flwr/common/retry_invoker.py +13 -5
  54. flwr/common/secure_aggregation/ndarrays_arithmetic.py +5 -2
  55. flwr/common/serde.py +7 -5
  56. flwr/common/telemetry.py +1 -1
  57. flwr/common/typing.py +4 -3
  58. flwr/compat/client/app.py +6 -9
  59. flwr/compat/client/grpc_client/connection.py +2 -1
  60. flwr/compat/common/constant.py +29 -0
  61. flwr/compat/server/app.py +1 -1
  62. flwr/proto/clientappio_pb2.py +2 -2
  63. flwr/proto/clientappio_pb2_grpc.py +104 -88
  64. flwr/proto/clientappio_pb2_grpc.pyi +140 -80
  65. flwr/proto/federation_pb2.py +5 -3
  66. flwr/proto/federation_pb2.pyi +32 -2
  67. flwr/proto/run_pb2.py +5 -13
  68. flwr/proto/run_pb2.pyi +0 -57
  69. flwr/proto/serverappio_pb2.py +2 -2
  70. flwr/proto/serverappio_pb2_grpc.py +138 -207
  71. flwr/proto/serverappio_pb2_grpc.pyi +189 -155
  72. flwr/proto/simulationio_pb2.py +2 -2
  73. flwr/proto/simulationio_pb2_grpc.py +62 -90
  74. flwr/proto/simulationio_pb2_grpc.pyi +95 -55
  75. flwr/server/app.py +6 -13
  76. flwr/server/compat/grid_client_proxy.py +2 -1
  77. flwr/server/grid/grpc_grid.py +5 -5
  78. flwr/server/serverapp/app.py +11 -4
  79. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +1 -1
  80. flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +13 -12
  81. flwr/server/superlink/fleet/message_handler/message_handler.py +6 -5
  82. flwr/server/superlink/linkstate/__init__.py +2 -2
  83. flwr/server/superlink/linkstate/in_memory_linkstate.py +2 -10
  84. flwr/server/superlink/linkstate/linkstate.py +2 -21
  85. flwr/server/superlink/linkstate/linkstate_factory.py +16 -8
  86. flwr/server/superlink/linkstate/{sqlite_linkstate.py → sql_linkstate.py} +432 -534
  87. flwr/server/superlink/linkstate/utils.py +49 -2
  88. flwr/server/superlink/serverappio/serverappio_servicer.py +1 -33
  89. flwr/server/superlink/simulation/simulationio_servicer.py +0 -19
  90. flwr/server/utils/validator.py +1 -1
  91. flwr/server/workflow/default_workflows.py +2 -1
  92. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +1 -1
  93. flwr/serverapp/strategy/bulyan.py +7 -1
  94. flwr/serverapp/strategy/dp_fixed_clipping.py +9 -1
  95. flwr/serverapp/strategy/fedavg.py +1 -1
  96. flwr/serverapp/strategy/fedxgb_cyclic.py +1 -1
  97. flwr/simulation/ray_transport/ray_client_proxy.py +2 -6
  98. flwr/simulation/run_simulation.py +3 -12
  99. flwr/simulation/simulationio_connection.py +3 -3
  100. flwr/{common → supercore}/address.py +7 -33
  101. flwr/supercore/app_utils.py +2 -1
  102. flwr/supercore/constant.py +24 -2
  103. flwr/supercore/corestate/{sqlite_corestate.py → sql_corestate.py} +19 -23
  104. flwr/supercore/credential_store/__init__.py +33 -0
  105. flwr/supercore/credential_store/credential_store.py +34 -0
  106. flwr/supercore/credential_store/file_credential_store.py +76 -0
  107. flwr/{common → supercore}/date.py +0 -11
  108. flwr/supercore/ffs/disk_ffs.py +1 -1
  109. flwr/supercore/object_store/object_store_factory.py +14 -6
  110. flwr/supercore/object_store/{sqlite_object_store.py → sql_object_store.py} +115 -117
  111. flwr/supercore/sql_mixin.py +315 -0
  112. flwr/supercore/state/__init__.py +15 -0
  113. flwr/supercore/state/alembic/__init__.py +15 -0
  114. flwr/supercore/state/alembic/env.py +103 -0
  115. flwr/supercore/state/alembic/script.py.mako +43 -0
  116. flwr/supercore/state/alembic/utils.py +239 -0
  117. flwr/supercore/state/alembic/versions/__init__.py +15 -0
  118. flwr/supercore/state/alembic/versions/rev_2026_01_28_initialize_migration_of_state_tables.py +200 -0
  119. flwr/supercore/state/schema/README.md +121 -0
  120. flwr/supercore/state/schema/__init__.py +15 -0
  121. flwr/supercore/state/schema/corestate_tables.py +36 -0
  122. flwr/supercore/state/schema/linkstate_tables.py +152 -0
  123. flwr/supercore/state/schema/objectstore_tables.py +90 -0
  124. flwr/supercore/superexec/run_superexec.py +2 -2
  125. flwr/supercore/utils.py +36 -1
  126. flwr/superlink/federation/federation_manager.py +2 -2
  127. flwr/superlink/federation/noop_federation_manager.py +8 -6
  128. flwr/superlink/servicer/control/control_servicer.py +19 -17
  129. flwr/supernode/cli/flower_supernode.py +2 -1
  130. flwr/supernode/runtime/run_clientapp.py +14 -14
  131. flwr/supernode/servicer/clientappio/clientappio_servicer.py +10 -8
  132. flwr/supernode/start_client_internal.py +10 -6
  133. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/METADATA +7 -5
  134. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/RECORD +137 -116
  135. flwr/cli/federation/show.py +0 -318
  136. flwr/common/pyproject.py +0 -42
  137. flwr/supercore/sqlite_mixin.py +0 -159
  138. /flwr/{common → supercore}/version.py +0 -0
  139. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/WHEEL +0 -0
  140. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/entry_points.txt +0 -0
@@ -20,7 +20,6 @@ limitations under the License.
20
20
  import abc
21
21
  import collections.abc
22
22
  import flwr.proto.appio_pb2
23
- import flwr.proto.fab_pb2
24
23
  import flwr.proto.heartbeat_pb2
25
24
  import flwr.proto.log_pb2
26
25
  import flwr.proto.message_pb2
@@ -43,7 +42,12 @@ class ServerAppIoStub:
43
42
  flwr.proto.appio_pb2.ListAppsToLaunchRequest,
44
43
  flwr.proto.appio_pb2.ListAppsToLaunchResponse,
45
44
  ]
46
- """List runs to launch"""
45
+ """///////////////////////////////////////////////////////////////////////////
46
+ General *AppIo endpoints for SuperExec processes
47
+ ///////////////////////////////////////////////////////////////////////////
48
+
49
+ List runs to launch
50
+ """
47
51
 
48
52
  RequestToken: grpc.UnaryUnaryMultiCallable[
49
53
  flwr.proto.appio_pb2.RequestTokenRequest,
@@ -51,77 +55,45 @@ class ServerAppIoStub:
51
55
  ]
52
56
  """Request token for a run"""
53
57
 
54
- GetNodes: grpc.UnaryUnaryMultiCallable[
55
- flwr.proto.serverappio_pb2.GetNodesRequest,
56
- flwr.proto.serverappio_pb2.GetNodesResponse,
57
- ]
58
- """Return a set of nodes"""
59
-
60
- PushMessages: grpc.UnaryUnaryMultiCallable[
61
- flwr.proto.appio_pb2.PushAppMessagesRequest,
62
- flwr.proto.appio_pb2.PushAppMessagesResponse,
63
- ]
64
- """Create one or more messages"""
65
-
66
- PullMessages: grpc.UnaryUnaryMultiCallable[
67
- flwr.proto.appio_pb2.PullAppMessagesRequest,
68
- flwr.proto.appio_pb2.PullAppMessagesResponse,
69
- ]
70
- """Get message results"""
71
-
72
58
  GetRun: grpc.UnaryUnaryMultiCallable[
73
59
  flwr.proto.run_pb2.GetRunRequest,
74
60
  flwr.proto.run_pb2.GetRunResponse,
75
61
  ]
76
- """Get run details"""
62
+ """///////////////////////////////////////////////////////////////////////////
63
+ General *AppIo endpoints for App Executor processes
64
+ ///////////////////////////////////////////////////////////////////////////
77
65
 
78
- GetFab: grpc.UnaryUnaryMultiCallable[
79
- flwr.proto.fab_pb2.GetFabRequest,
80
- flwr.proto.fab_pb2.GetFabResponse,
66
+ Get run details
67
+ """
68
+
69
+ SendAppHeartbeat: grpc.UnaryUnaryMultiCallable[
70
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
71
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
81
72
  ]
82
- """Get FAB"""
73
+ """App heartbeat"""
83
74
 
84
75
  PullAppInputs: grpc.UnaryUnaryMultiCallable[
85
76
  flwr.proto.appio_pb2.PullAppInputsRequest,
86
77
  flwr.proto.appio_pb2.PullAppInputsResponse,
87
78
  ]
88
- """Pull ServerApp inputs"""
79
+ """Pull app inputs"""
89
80
 
90
81
  PushAppOutputs: grpc.UnaryUnaryMultiCallable[
91
82
  flwr.proto.appio_pb2.PushAppOutputsRequest,
92
83
  flwr.proto.appio_pb2.PushAppOutputsResponse,
93
84
  ]
94
- """Push ServerApp outputs"""
95
-
96
- UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
97
- flwr.proto.run_pb2.UpdateRunStatusRequest,
98
- flwr.proto.run_pb2.UpdateRunStatusResponse,
99
- ]
100
- """Update the status of a given run"""
101
-
102
- GetRunStatus: grpc.UnaryUnaryMultiCallable[
103
- flwr.proto.run_pb2.GetRunStatusRequest,
104
- flwr.proto.run_pb2.GetRunStatusResponse,
105
- ]
106
- """Get the status of a given run"""
107
-
108
- PushLogs: grpc.UnaryUnaryMultiCallable[
109
- flwr.proto.log_pb2.PushLogsRequest,
110
- flwr.proto.log_pb2.PushLogsResponse,
111
- ]
112
- """Push ServerApp logs"""
113
-
114
- SendAppHeartbeat: grpc.UnaryUnaryMultiCallable[
115
- flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
116
- flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
117
- ]
118
- """App heartbeat"""
85
+ """Push app outputs"""
119
86
 
120
87
  PushObject: grpc.UnaryUnaryMultiCallable[
121
88
  flwr.proto.message_pb2.PushObjectRequest,
122
89
  flwr.proto.message_pb2.PushObjectResponse,
123
90
  ]
124
- """Push Object"""
91
+ """///////////////////////////////////////////////////////////////////////////
92
+ Specific endpoints shared by ServerAppIo and ClientAppIo
93
+ ///////////////////////////////////////////////////////////////////////////
94
+
95
+ Push Object
96
+ """
125
97
 
126
98
  PullObject: grpc.UnaryUnaryMultiCallable[
127
99
  flwr.proto.message_pb2.PullObjectRequest,
@@ -135,72 +107,126 @@ class ServerAppIoStub:
135
107
  ]
136
108
  """Confirm Message Received"""
137
109
 
138
- class ServerAppIoAsyncStub:
139
- ListAppsToLaunch: grpc.aio.UnaryUnaryMultiCallable[
140
- flwr.proto.appio_pb2.ListAppsToLaunchRequest,
141
- flwr.proto.appio_pb2.ListAppsToLaunchResponse,
110
+ UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
111
+ flwr.proto.run_pb2.UpdateRunStatusRequest,
112
+ flwr.proto.run_pb2.UpdateRunStatusResponse,
142
113
  ]
143
- """List runs to launch"""
114
+ """///////////////////////////////////////////////////////////////////////////
115
+ Specific endpoints shared by ServerAppIo and SimulationIo
116
+ ///////////////////////////////////////////////////////////////////////////
144
117
 
145
- RequestToken: grpc.aio.UnaryUnaryMultiCallable[
146
- flwr.proto.appio_pb2.RequestTokenRequest,
147
- flwr.proto.appio_pb2.RequestTokenResponse,
148
- ]
149
- """Request token for a run"""
118
+ Update the status of a given run
119
+ """
150
120
 
151
- GetNodes: grpc.aio.UnaryUnaryMultiCallable[
152
- flwr.proto.serverappio_pb2.GetNodesRequest,
153
- flwr.proto.serverappio_pb2.GetNodesResponse,
121
+ PushLogs: grpc.UnaryUnaryMultiCallable[
122
+ flwr.proto.log_pb2.PushLogsRequest,
123
+ flwr.proto.log_pb2.PushLogsResponse,
154
124
  ]
155
- """Return a set of nodes"""
125
+ """Push ServerApp logs"""
156
126
 
157
- PushMessages: grpc.aio.UnaryUnaryMultiCallable[
127
+ PushMessages: grpc.UnaryUnaryMultiCallable[
158
128
  flwr.proto.appio_pb2.PushAppMessagesRequest,
159
129
  flwr.proto.appio_pb2.PushAppMessagesResponse,
160
130
  ]
161
- """Create one or more messages"""
131
+ """///////////////////////////////////////////////////////////////////////////
132
+ Specific endpoints for ServerAppIo
133
+ ///////////////////////////////////////////////////////////////////////////
162
134
 
163
- PullMessages: grpc.aio.UnaryUnaryMultiCallable[
135
+ Create one or more messages
136
+ """
137
+
138
+ PullMessages: grpc.UnaryUnaryMultiCallable[
164
139
  flwr.proto.appio_pb2.PullAppMessagesRequest,
165
140
  flwr.proto.appio_pb2.PullAppMessagesResponse,
166
141
  ]
167
142
  """Get message results"""
168
143
 
144
+ GetNodes: grpc.UnaryUnaryMultiCallable[
145
+ flwr.proto.serverappio_pb2.GetNodesRequest,
146
+ flwr.proto.serverappio_pb2.GetNodesResponse,
147
+ ]
148
+ """Return a set of nodes"""
149
+
150
+ class ServerAppIoAsyncStub:
151
+ ListAppsToLaunch: grpc.aio.UnaryUnaryMultiCallable[
152
+ flwr.proto.appio_pb2.ListAppsToLaunchRequest,
153
+ flwr.proto.appio_pb2.ListAppsToLaunchResponse,
154
+ ]
155
+ """///////////////////////////////////////////////////////////////////////////
156
+ General *AppIo endpoints for SuperExec processes
157
+ ///////////////////////////////////////////////////////////////////////////
158
+
159
+ List runs to launch
160
+ """
161
+
162
+ RequestToken: grpc.aio.UnaryUnaryMultiCallable[
163
+ flwr.proto.appio_pb2.RequestTokenRequest,
164
+ flwr.proto.appio_pb2.RequestTokenResponse,
165
+ ]
166
+ """Request token for a run"""
167
+
169
168
  GetRun: grpc.aio.UnaryUnaryMultiCallable[
170
169
  flwr.proto.run_pb2.GetRunRequest,
171
170
  flwr.proto.run_pb2.GetRunResponse,
172
171
  ]
173
- """Get run details"""
172
+ """///////////////////////////////////////////////////////////////////////////
173
+ General *AppIo endpoints for App Executor processes
174
+ ///////////////////////////////////////////////////////////////////////////
175
+
176
+ Get run details
177
+ """
174
178
 
175
- GetFab: grpc.aio.UnaryUnaryMultiCallable[
176
- flwr.proto.fab_pb2.GetFabRequest,
177
- flwr.proto.fab_pb2.GetFabResponse,
179
+ SendAppHeartbeat: grpc.aio.UnaryUnaryMultiCallable[
180
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
181
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
178
182
  ]
179
- """Get FAB"""
183
+ """App heartbeat"""
180
184
 
181
185
  PullAppInputs: grpc.aio.UnaryUnaryMultiCallable[
182
186
  flwr.proto.appio_pb2.PullAppInputsRequest,
183
187
  flwr.proto.appio_pb2.PullAppInputsResponse,
184
188
  ]
185
- """Pull ServerApp inputs"""
189
+ """Pull app inputs"""
186
190
 
187
191
  PushAppOutputs: grpc.aio.UnaryUnaryMultiCallable[
188
192
  flwr.proto.appio_pb2.PushAppOutputsRequest,
189
193
  flwr.proto.appio_pb2.PushAppOutputsResponse,
190
194
  ]
191
- """Push ServerApp outputs"""
195
+ """Push app outputs"""
196
+
197
+ PushObject: grpc.aio.UnaryUnaryMultiCallable[
198
+ flwr.proto.message_pb2.PushObjectRequest,
199
+ flwr.proto.message_pb2.PushObjectResponse,
200
+ ]
201
+ """///////////////////////////////////////////////////////////////////////////
202
+ Specific endpoints shared by ServerAppIo and ClientAppIo
203
+ ///////////////////////////////////////////////////////////////////////////
204
+
205
+ Push Object
206
+ """
207
+
208
+ PullObject: grpc.aio.UnaryUnaryMultiCallable[
209
+ flwr.proto.message_pb2.PullObjectRequest,
210
+ flwr.proto.message_pb2.PullObjectResponse,
211
+ ]
212
+ """Pull Object"""
213
+
214
+ ConfirmMessageReceived: grpc.aio.UnaryUnaryMultiCallable[
215
+ flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
216
+ flwr.proto.message_pb2.ConfirmMessageReceivedResponse,
217
+ ]
218
+ """Confirm Message Received"""
192
219
 
193
220
  UpdateRunStatus: grpc.aio.UnaryUnaryMultiCallable[
194
221
  flwr.proto.run_pb2.UpdateRunStatusRequest,
195
222
  flwr.proto.run_pb2.UpdateRunStatusResponse,
196
223
  ]
197
- """Update the status of a given run"""
224
+ """///////////////////////////////////////////////////////////////////////////
225
+ Specific endpoints shared by ServerAppIo and SimulationIo
226
+ ///////////////////////////////////////////////////////////////////////////
198
227
 
199
- GetRunStatus: grpc.aio.UnaryUnaryMultiCallable[
200
- flwr.proto.run_pb2.GetRunStatusRequest,
201
- flwr.proto.run_pb2.GetRunStatusResponse,
202
- ]
203
- """Get the status of a given run"""
228
+ Update the status of a given run
229
+ """
204
230
 
205
231
  PushLogs: grpc.aio.UnaryUnaryMultiCallable[
206
232
  flwr.proto.log_pb2.PushLogsRequest,
@@ -208,29 +234,28 @@ class ServerAppIoAsyncStub:
208
234
  ]
209
235
  """Push ServerApp logs"""
210
236
 
211
- SendAppHeartbeat: grpc.aio.UnaryUnaryMultiCallable[
212
- flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
213
- flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
237
+ PushMessages: grpc.aio.UnaryUnaryMultiCallable[
238
+ flwr.proto.appio_pb2.PushAppMessagesRequest,
239
+ flwr.proto.appio_pb2.PushAppMessagesResponse,
214
240
  ]
215
- """App heartbeat"""
241
+ """///////////////////////////////////////////////////////////////////////////
242
+ Specific endpoints for ServerAppIo
243
+ ///////////////////////////////////////////////////////////////////////////
216
244
 
217
- PushObject: grpc.aio.UnaryUnaryMultiCallable[
218
- flwr.proto.message_pb2.PushObjectRequest,
219
- flwr.proto.message_pb2.PushObjectResponse,
220
- ]
221
- """Push Object"""
245
+ Create one or more messages
246
+ """
222
247
 
223
- PullObject: grpc.aio.UnaryUnaryMultiCallable[
224
- flwr.proto.message_pb2.PullObjectRequest,
225
- flwr.proto.message_pb2.PullObjectResponse,
248
+ PullMessages: grpc.aio.UnaryUnaryMultiCallable[
249
+ flwr.proto.appio_pb2.PullAppMessagesRequest,
250
+ flwr.proto.appio_pb2.PullAppMessagesResponse,
226
251
  ]
227
- """Pull Object"""
252
+ """Get message results"""
228
253
 
229
- ConfirmMessageReceived: grpc.aio.UnaryUnaryMultiCallable[
230
- flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
231
- flwr.proto.message_pb2.ConfirmMessageReceivedResponse,
254
+ GetNodes: grpc.aio.UnaryUnaryMultiCallable[
255
+ flwr.proto.serverappio_pb2.GetNodesRequest,
256
+ flwr.proto.serverappio_pb2.GetNodesResponse,
232
257
  ]
233
- """Confirm Message Received"""
258
+ """Return a set of nodes"""
234
259
 
235
260
  class ServerAppIoServicer(metaclass=abc.ABCMeta):
236
261
  @abc.abstractmethod
@@ -239,7 +264,12 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
239
264
  request: flwr.proto.appio_pb2.ListAppsToLaunchRequest,
240
265
  context: _ServicerContext,
241
266
  ) -> typing.Union[flwr.proto.appio_pb2.ListAppsToLaunchResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.ListAppsToLaunchResponse]]:
242
- """List runs to launch"""
267
+ """///////////////////////////////////////////////////////////////////////////
268
+ General *AppIo endpoints for SuperExec processes
269
+ ///////////////////////////////////////////////////////////////////////////
270
+
271
+ List runs to launch
272
+ """
243
273
 
244
274
  @abc.abstractmethod
245
275
  def RequestToken(
@@ -250,60 +280,70 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
250
280
  """Request token for a run"""
251
281
 
252
282
  @abc.abstractmethod
253
- def GetNodes(
283
+ def GetRun(
254
284
  self,
255
- request: flwr.proto.serverappio_pb2.GetNodesRequest,
285
+ request: flwr.proto.run_pb2.GetRunRequest,
256
286
  context: _ServicerContext,
257
- ) -> typing.Union[flwr.proto.serverappio_pb2.GetNodesResponse, collections.abc.Awaitable[flwr.proto.serverappio_pb2.GetNodesResponse]]:
258
- """Return a set of nodes"""
287
+ ) -> typing.Union[flwr.proto.run_pb2.GetRunResponse, collections.abc.Awaitable[flwr.proto.run_pb2.GetRunResponse]]:
288
+ """///////////////////////////////////////////////////////////////////////////
289
+ General *AppIo endpoints for App Executor processes
290
+ ///////////////////////////////////////////////////////////////////////////
291
+
292
+ Get run details
293
+ """
259
294
 
260
295
  @abc.abstractmethod
261
- def PushMessages(
296
+ def SendAppHeartbeat(
262
297
  self,
263
- request: flwr.proto.appio_pb2.PushAppMessagesRequest,
298
+ request: flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
264
299
  context: _ServicerContext,
265
- ) -> typing.Union[flwr.proto.appio_pb2.PushAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppMessagesResponse]]:
266
- """Create one or more messages"""
300
+ ) -> typing.Union[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse, collections.abc.Awaitable[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse]]:
301
+ """App heartbeat"""
267
302
 
268
303
  @abc.abstractmethod
269
- def PullMessages(
304
+ def PullAppInputs(
270
305
  self,
271
- request: flwr.proto.appio_pb2.PullAppMessagesRequest,
306
+ request: flwr.proto.appio_pb2.PullAppInputsRequest,
272
307
  context: _ServicerContext,
273
- ) -> typing.Union[flwr.proto.appio_pb2.PullAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppMessagesResponse]]:
274
- """Get message results"""
308
+ ) -> typing.Union[flwr.proto.appio_pb2.PullAppInputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppInputsResponse]]:
309
+ """Pull app inputs"""
275
310
 
276
311
  @abc.abstractmethod
277
- def GetRun(
312
+ def PushAppOutputs(
278
313
  self,
279
- request: flwr.proto.run_pb2.GetRunRequest,
314
+ request: flwr.proto.appio_pb2.PushAppOutputsRequest,
280
315
  context: _ServicerContext,
281
- ) -> typing.Union[flwr.proto.run_pb2.GetRunResponse, collections.abc.Awaitable[flwr.proto.run_pb2.GetRunResponse]]:
282
- """Get run details"""
316
+ ) -> typing.Union[flwr.proto.appio_pb2.PushAppOutputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppOutputsResponse]]:
317
+ """Push app outputs"""
283
318
 
284
319
  @abc.abstractmethod
285
- def GetFab(
320
+ def PushObject(
286
321
  self,
287
- request: flwr.proto.fab_pb2.GetFabRequest,
322
+ request: flwr.proto.message_pb2.PushObjectRequest,
288
323
  context: _ServicerContext,
289
- ) -> typing.Union[flwr.proto.fab_pb2.GetFabResponse, collections.abc.Awaitable[flwr.proto.fab_pb2.GetFabResponse]]:
290
- """Get FAB"""
324
+ ) -> typing.Union[flwr.proto.message_pb2.PushObjectResponse, collections.abc.Awaitable[flwr.proto.message_pb2.PushObjectResponse]]:
325
+ """///////////////////////////////////////////////////////////////////////////
326
+ Specific endpoints shared by ServerAppIo and ClientAppIo
327
+ ///////////////////////////////////////////////////////////////////////////
328
+
329
+ Push Object
330
+ """
291
331
 
292
332
  @abc.abstractmethod
293
- def PullAppInputs(
333
+ def PullObject(
294
334
  self,
295
- request: flwr.proto.appio_pb2.PullAppInputsRequest,
335
+ request: flwr.proto.message_pb2.PullObjectRequest,
296
336
  context: _ServicerContext,
297
- ) -> typing.Union[flwr.proto.appio_pb2.PullAppInputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppInputsResponse]]:
298
- """Pull ServerApp inputs"""
337
+ ) -> typing.Union[flwr.proto.message_pb2.PullObjectResponse, collections.abc.Awaitable[flwr.proto.message_pb2.PullObjectResponse]]:
338
+ """Pull Object"""
299
339
 
300
340
  @abc.abstractmethod
301
- def PushAppOutputs(
341
+ def ConfirmMessageReceived(
302
342
  self,
303
- request: flwr.proto.appio_pb2.PushAppOutputsRequest,
343
+ request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
304
344
  context: _ServicerContext,
305
- ) -> typing.Union[flwr.proto.appio_pb2.PushAppOutputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppOutputsResponse]]:
306
- """Push ServerApp outputs"""
345
+ ) -> typing.Union[flwr.proto.message_pb2.ConfirmMessageReceivedResponse, collections.abc.Awaitable[flwr.proto.message_pb2.ConfirmMessageReceivedResponse]]:
346
+ """Confirm Message Received"""
307
347
 
308
348
  @abc.abstractmethod
309
349
  def UpdateRunStatus(
@@ -311,15 +351,12 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
311
351
  request: flwr.proto.run_pb2.UpdateRunStatusRequest,
312
352
  context: _ServicerContext,
313
353
  ) -> typing.Union[flwr.proto.run_pb2.UpdateRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.UpdateRunStatusResponse]]:
314
- """Update the status of a given run"""
354
+ """///////////////////////////////////////////////////////////////////////////
355
+ Specific endpoints shared by ServerAppIo and SimulationIo
356
+ ///////////////////////////////////////////////////////////////////////////
315
357
 
316
- @abc.abstractmethod
317
- def GetRunStatus(
318
- self,
319
- request: flwr.proto.run_pb2.GetRunStatusRequest,
320
- context: _ServicerContext,
321
- ) -> typing.Union[flwr.proto.run_pb2.GetRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.GetRunStatusResponse]]:
322
- """Get the status of a given run"""
358
+ Update the status of a given run
359
+ """
323
360
 
324
361
  @abc.abstractmethod
325
362
  def PushLogs(
@@ -330,35 +367,32 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
330
367
  """Push ServerApp logs"""
331
368
 
332
369
  @abc.abstractmethod
333
- def SendAppHeartbeat(
370
+ def PushMessages(
334
371
  self,
335
- request: flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
372
+ request: flwr.proto.appio_pb2.PushAppMessagesRequest,
336
373
  context: _ServicerContext,
337
- ) -> typing.Union[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse, collections.abc.Awaitable[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse]]:
338
- """App heartbeat"""
374
+ ) -> typing.Union[flwr.proto.appio_pb2.PushAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppMessagesResponse]]:
375
+ """///////////////////////////////////////////////////////////////////////////
376
+ Specific endpoints for ServerAppIo
377
+ ///////////////////////////////////////////////////////////////////////////
339
378
 
340
- @abc.abstractmethod
341
- def PushObject(
342
- self,
343
- request: flwr.proto.message_pb2.PushObjectRequest,
344
- context: _ServicerContext,
345
- ) -> typing.Union[flwr.proto.message_pb2.PushObjectResponse, collections.abc.Awaitable[flwr.proto.message_pb2.PushObjectResponse]]:
346
- """Push Object"""
379
+ Create one or more messages
380
+ """
347
381
 
348
382
  @abc.abstractmethod
349
- def PullObject(
383
+ def PullMessages(
350
384
  self,
351
- request: flwr.proto.message_pb2.PullObjectRequest,
385
+ request: flwr.proto.appio_pb2.PullAppMessagesRequest,
352
386
  context: _ServicerContext,
353
- ) -> typing.Union[flwr.proto.message_pb2.PullObjectResponse, collections.abc.Awaitable[flwr.proto.message_pb2.PullObjectResponse]]:
354
- """Pull Object"""
387
+ ) -> typing.Union[flwr.proto.appio_pb2.PullAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppMessagesResponse]]:
388
+ """Get message results"""
355
389
 
356
390
  @abc.abstractmethod
357
- def ConfirmMessageReceived(
391
+ def GetNodes(
358
392
  self,
359
- request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
393
+ request: flwr.proto.serverappio_pb2.GetNodesRequest,
360
394
  context: _ServicerContext,
361
- ) -> typing.Union[flwr.proto.message_pb2.ConfirmMessageReceivedResponse, collections.abc.Awaitable[flwr.proto.message_pb2.ConfirmMessageReceivedResponse]]:
362
- """Confirm Message Received"""
395
+ ) -> typing.Union[flwr.proto.serverappio_pb2.GetNodesResponse, collections.abc.Awaitable[flwr.proto.serverappio_pb2.GetNodesResponse]]:
396
+ """Return a set of nodes"""
363
397
 
364
398
  def add_ServerAppIoServicer_to_server(servicer: ServerAppIoServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
@@ -28,7 +28,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
28
28
  from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x16\x66lwr/proto/appio.proto2\x84\x07\n\x0cSimulationIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\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\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x62\x06proto3')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x16\x66lwr/proto/appio.proto2\xaf\x06\n\x0cSimulationIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\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\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x62\x06proto3')
32
32
 
33
33
  _globals = globals()
34
34
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -36,5 +36,5 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.simulationio_pb2
36
36
  if not _descriptor._USE_C_DESCRIPTORS:
37
37
  DESCRIPTOR._loaded_options = None
38
38
  _globals['_SIMULATIONIO']._serialized_start=142
39
- _globals['_SIMULATIONIO']._serialized_end=1042
39
+ _globals['_SIMULATIONIO']._serialized_end=957
40
40
  # @@protoc_insertion_point(module_scope)