flwr 1.23.0__py3-none-any.whl → 1.24.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 (292) hide show
  1. flwr/__init__.py +16 -5
  2. flwr/app/error.py +2 -2
  3. flwr/app/exception.py +3 -3
  4. flwr/cli/app.py +19 -0
  5. flwr/cli/app_cmd/__init__.py +23 -0
  6. flwr/cli/app_cmd/publish.py +285 -0
  7. flwr/cli/app_cmd/review.py +252 -0
  8. flwr/cli/auth_plugin/auth_plugin.py +4 -5
  9. flwr/cli/auth_plugin/noop_auth_plugin.py +54 -11
  10. flwr/cli/auth_plugin/oidc_cli_plugin.py +32 -9
  11. flwr/cli/build.py +60 -18
  12. flwr/cli/cli_account_auth_interceptor.py +24 -7
  13. flwr/cli/config_utils.py +101 -13
  14. flwr/cli/federation/__init__.py +24 -0
  15. flwr/cli/federation/ls.py +140 -0
  16. flwr/cli/federation/show.py +317 -0
  17. flwr/cli/install.py +91 -13
  18. flwr/cli/log.py +52 -9
  19. flwr/cli/login/login.py +7 -4
  20. flwr/cli/ls.py +170 -130
  21. flwr/cli/new/new.py +33 -50
  22. flwr/cli/new/templates/app/code/task.pytorch.py.tpl +1 -0
  23. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  24. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  25. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  26. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  27. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  28. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  29. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -3
  30. flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +1 -1
  31. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  32. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  33. flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +1 -1
  34. flwr/cli/pull.py +10 -5
  35. flwr/cli/run/run.py +77 -30
  36. flwr/cli/run_utils.py +130 -0
  37. flwr/cli/stop.py +25 -7
  38. flwr/cli/supernode/ls.py +16 -8
  39. flwr/cli/supernode/register.py +9 -4
  40. flwr/cli/supernode/unregister.py +5 -3
  41. flwr/cli/utils.py +376 -16
  42. flwr/client/__init__.py +1 -1
  43. flwr/client/dpfedavg_numpy_client.py +4 -1
  44. flwr/client/grpc_adapter_client/connection.py +6 -7
  45. flwr/client/grpc_rere_client/connection.py +10 -11
  46. flwr/client/grpc_rere_client/grpc_adapter.py +6 -2
  47. flwr/client/grpc_rere_client/node_auth_client_interceptor.py +2 -1
  48. flwr/client/message_handler/message_handler.py +2 -2
  49. flwr/client/mod/secure_aggregation/secaggplus_mod.py +3 -3
  50. flwr/client/numpy_client.py +1 -1
  51. flwr/client/rest_client/connection.py +12 -14
  52. flwr/client/run_info_store.py +4 -5
  53. flwr/client/typing.py +1 -1
  54. flwr/clientapp/client_app.py +9 -10
  55. flwr/clientapp/mod/centraldp_mods.py +16 -17
  56. flwr/clientapp/mod/localdp_mod.py +8 -9
  57. flwr/clientapp/typing.py +1 -1
  58. flwr/clientapp/utils.py +3 -3
  59. flwr/common/address.py +1 -2
  60. flwr/common/args.py +3 -4
  61. flwr/common/config.py +13 -16
  62. flwr/common/constant.py +5 -2
  63. flwr/common/differential_privacy.py +3 -4
  64. flwr/common/event_log_plugin/event_log_plugin.py +3 -4
  65. flwr/common/exit/exit.py +15 -2
  66. flwr/common/exit/exit_code.py +19 -0
  67. flwr/common/exit/exit_handler.py +6 -2
  68. flwr/common/exit/signal_handler.py +5 -5
  69. flwr/common/grpc.py +6 -6
  70. flwr/common/inflatable_protobuf_utils.py +1 -1
  71. flwr/common/inflatable_utils.py +38 -21
  72. flwr/common/logger.py +19 -19
  73. flwr/common/message.py +4 -4
  74. flwr/common/object_ref.py +7 -7
  75. flwr/common/record/array.py +3 -3
  76. flwr/common/record/arrayrecord.py +18 -30
  77. flwr/common/record/configrecord.py +3 -3
  78. flwr/common/record/recorddict.py +5 -5
  79. flwr/common/record/typeddict.py +9 -2
  80. flwr/common/recorddict_compat.py +7 -10
  81. flwr/common/retry_invoker.py +20 -20
  82. flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
  83. flwr/common/serde.py +5 -4
  84. flwr/common/serde_utils.py +2 -2
  85. flwr/common/telemetry.py +9 -5
  86. flwr/common/typing.py +52 -37
  87. flwr/compat/client/app.py +38 -37
  88. flwr/compat/client/grpc_client/connection.py +11 -11
  89. flwr/compat/server/app.py +5 -6
  90. flwr/proto/appio_pb2.py +13 -3
  91. flwr/proto/appio_pb2.pyi +134 -65
  92. flwr/proto/appio_pb2_grpc.py +20 -0
  93. flwr/proto/appio_pb2_grpc.pyi +27 -0
  94. flwr/proto/clientappio_pb2.py +17 -7
  95. flwr/proto/clientappio_pb2.pyi +15 -0
  96. flwr/proto/clientappio_pb2_grpc.py +206 -40
  97. flwr/proto/clientappio_pb2_grpc.pyi +168 -53
  98. flwr/proto/control_pb2.py +71 -52
  99. flwr/proto/control_pb2.pyi +277 -111
  100. flwr/proto/control_pb2_grpc.py +249 -40
  101. flwr/proto/control_pb2_grpc.pyi +185 -52
  102. flwr/proto/error_pb2.py +13 -3
  103. flwr/proto/error_pb2.pyi +24 -6
  104. flwr/proto/error_pb2_grpc.py +20 -0
  105. flwr/proto/error_pb2_grpc.pyi +27 -0
  106. flwr/proto/fab_pb2.py +14 -4
  107. flwr/proto/fab_pb2.pyi +59 -31
  108. flwr/proto/fab_pb2_grpc.py +20 -0
  109. flwr/proto/fab_pb2_grpc.pyi +27 -0
  110. flwr/proto/federation_pb2.py +38 -0
  111. flwr/proto/federation_pb2.pyi +56 -0
  112. flwr/proto/federation_pb2_grpc.py +24 -0
  113. flwr/proto/federation_pb2_grpc.pyi +31 -0
  114. flwr/proto/fleet_pb2.py +14 -4
  115. flwr/proto/fleet_pb2.pyi +137 -61
  116. flwr/proto/fleet_pb2_grpc.py +189 -48
  117. flwr/proto/fleet_pb2_grpc.pyi +175 -61
  118. flwr/proto/grpcadapter_pb2.py +14 -4
  119. flwr/proto/grpcadapter_pb2.pyi +38 -16
  120. flwr/proto/grpcadapter_pb2_grpc.py +35 -4
  121. flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
  122. flwr/proto/heartbeat_pb2.py +17 -7
  123. flwr/proto/heartbeat_pb2.pyi +51 -22
  124. flwr/proto/heartbeat_pb2_grpc.py +20 -0
  125. flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
  126. flwr/proto/log_pb2.py +13 -3
  127. flwr/proto/log_pb2.pyi +34 -11
  128. flwr/proto/log_pb2_grpc.py +20 -0
  129. flwr/proto/log_pb2_grpc.pyi +27 -0
  130. flwr/proto/message_pb2.py +15 -5
  131. flwr/proto/message_pb2.pyi +154 -86
  132. flwr/proto/message_pb2_grpc.py +20 -0
  133. flwr/proto/message_pb2_grpc.pyi +27 -0
  134. flwr/proto/node_pb2.py +15 -5
  135. flwr/proto/node_pb2.pyi +50 -25
  136. flwr/proto/node_pb2_grpc.py +20 -0
  137. flwr/proto/node_pb2_grpc.pyi +27 -0
  138. flwr/proto/recorddict_pb2.py +13 -3
  139. flwr/proto/recorddict_pb2.pyi +184 -107
  140. flwr/proto/recorddict_pb2_grpc.py +20 -0
  141. flwr/proto/recorddict_pb2_grpc.pyi +27 -0
  142. flwr/proto/run_pb2.py +40 -31
  143. flwr/proto/run_pb2.pyi +149 -84
  144. flwr/proto/run_pb2_grpc.py +20 -0
  145. flwr/proto/run_pb2_grpc.pyi +27 -0
  146. flwr/proto/serverappio_pb2.py +13 -3
  147. flwr/proto/serverappio_pb2.pyi +32 -8
  148. flwr/proto/serverappio_pb2_grpc.py +246 -65
  149. flwr/proto/serverappio_pb2_grpc.pyi +221 -85
  150. flwr/proto/simulationio_pb2.py +16 -8
  151. flwr/proto/simulationio_pb2.pyi +15 -0
  152. flwr/proto/simulationio_pb2_grpc.py +162 -41
  153. flwr/proto/simulationio_pb2_grpc.pyi +149 -55
  154. flwr/proto/transport_pb2.py +20 -10
  155. flwr/proto/transport_pb2.pyi +249 -160
  156. flwr/proto/transport_pb2_grpc.py +35 -4
  157. flwr/proto/transport_pb2_grpc.pyi +38 -8
  158. flwr/server/app.py +38 -17
  159. flwr/server/client_manager.py +4 -5
  160. flwr/server/client_proxy.py +10 -11
  161. flwr/server/compat/app.py +4 -5
  162. flwr/server/compat/app_utils.py +2 -1
  163. flwr/server/compat/grid_client_proxy.py +10 -12
  164. flwr/server/compat/legacy_context.py +3 -4
  165. flwr/server/fleet_event_log_interceptor.py +2 -1
  166. flwr/server/grid/grid.py +2 -3
  167. flwr/server/grid/grpc_grid.py +10 -8
  168. flwr/server/grid/inmemory_grid.py +4 -4
  169. flwr/server/run_serverapp.py +2 -3
  170. flwr/server/server.py +34 -39
  171. flwr/server/server_app.py +7 -8
  172. flwr/server/server_config.py +1 -2
  173. flwr/server/serverapp/app.py +34 -28
  174. flwr/server/serverapp_components.py +4 -5
  175. flwr/server/strategy/aggregate.py +9 -8
  176. flwr/server/strategy/bulyan.py +13 -11
  177. flwr/server/strategy/dp_adaptive_clipping.py +16 -20
  178. flwr/server/strategy/dp_fixed_clipping.py +12 -17
  179. flwr/server/strategy/dpfedavg_adaptive.py +3 -4
  180. flwr/server/strategy/dpfedavg_fixed.py +6 -10
  181. flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
  182. flwr/server/strategy/fedadagrad.py +18 -14
  183. flwr/server/strategy/fedadam.py +16 -14
  184. flwr/server/strategy/fedavg.py +16 -17
  185. flwr/server/strategy/fedavg_android.py +15 -15
  186. flwr/server/strategy/fedavgm.py +21 -18
  187. flwr/server/strategy/fedmedian.py +2 -3
  188. flwr/server/strategy/fedopt.py +11 -10
  189. flwr/server/strategy/fedprox.py +10 -9
  190. flwr/server/strategy/fedtrimmedavg.py +12 -11
  191. flwr/server/strategy/fedxgb_bagging.py +13 -11
  192. flwr/server/strategy/fedxgb_cyclic.py +6 -6
  193. flwr/server/strategy/fedxgb_nn_avg.py +4 -4
  194. flwr/server/strategy/fedyogi.py +16 -14
  195. flwr/server/strategy/krum.py +12 -11
  196. flwr/server/strategy/qfedavg.py +16 -15
  197. flwr/server/strategy/strategy.py +6 -9
  198. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +2 -1
  199. flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
  200. flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
  201. flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
  202. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
  203. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +4 -4
  204. flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +3 -2
  205. flwr/server/superlink/fleet/message_handler/message_handler.py +34 -28
  206. flwr/server/superlink/fleet/rest_rere/rest_api.py +2 -2
  207. flwr/server/superlink/fleet/vce/backend/backend.py +1 -1
  208. flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -5
  209. flwr/server/superlink/fleet/vce/vce_api.py +15 -9
  210. flwr/server/superlink/linkstate/in_memory_linkstate.py +115 -150
  211. flwr/server/superlink/linkstate/linkstate.py +59 -43
  212. flwr/server/superlink/linkstate/linkstate_factory.py +22 -5
  213. flwr/server/superlink/linkstate/sqlite_linkstate.py +447 -438
  214. flwr/server/superlink/linkstate/utils.py +6 -6
  215. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
  216. flwr/server/superlink/serverappio/serverappio_servicer.py +26 -21
  217. flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
  218. flwr/server/superlink/simulation/simulationio_servicer.py +18 -13
  219. flwr/server/superlink/utils.py +4 -6
  220. flwr/server/typing.py +1 -1
  221. flwr/server/utils/tensorboard.py +15 -8
  222. flwr/server/workflow/default_workflows.py +5 -5
  223. flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
  224. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +8 -8
  225. flwr/serverapp/strategy/bulyan.py +16 -15
  226. flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
  227. flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
  228. flwr/serverapp/strategy/fedadagrad.py +10 -11
  229. flwr/serverapp/strategy/fedadam.py +10 -11
  230. flwr/serverapp/strategy/fedavg.py +9 -10
  231. flwr/serverapp/strategy/fedavgm.py +17 -16
  232. flwr/serverapp/strategy/fedmedian.py +2 -2
  233. flwr/serverapp/strategy/fedopt.py +10 -11
  234. flwr/serverapp/strategy/fedprox.py +7 -8
  235. flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
  236. flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
  237. flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
  238. flwr/serverapp/strategy/fedyogi.py +9 -11
  239. flwr/serverapp/strategy/krum.py +7 -7
  240. flwr/serverapp/strategy/multikrum.py +9 -9
  241. flwr/serverapp/strategy/qfedavg.py +17 -16
  242. flwr/serverapp/strategy/strategy.py +6 -9
  243. flwr/serverapp/strategy/strategy_utils.py +7 -8
  244. flwr/simulation/app.py +46 -42
  245. flwr/simulation/legacy_app.py +12 -12
  246. flwr/simulation/ray_transport/ray_actor.py +10 -11
  247. flwr/simulation/ray_transport/ray_client_proxy.py +11 -12
  248. flwr/simulation/run_simulation.py +43 -43
  249. flwr/simulation/simulationio_connection.py +4 -4
  250. flwr/supercore/cli/flower_superexec.py +3 -4
  251. flwr/supercore/constant.py +31 -1
  252. flwr/supercore/corestate/corestate.py +24 -3
  253. flwr/supercore/corestate/in_memory_corestate.py +138 -0
  254. flwr/supercore/corestate/sqlite_corestate.py +157 -0
  255. flwr/supercore/ffs/disk_ffs.py +1 -2
  256. flwr/supercore/ffs/ffs.py +1 -2
  257. flwr/supercore/ffs/ffs_factory.py +1 -2
  258. flwr/{common → supercore}/heartbeat.py +20 -25
  259. flwr/supercore/object_store/in_memory_object_store.py +1 -2
  260. flwr/supercore/object_store/object_store.py +1 -2
  261. flwr/supercore/object_store/object_store_factory.py +1 -2
  262. flwr/supercore/object_store/sqlite_object_store.py +8 -7
  263. flwr/supercore/primitives/asymmetric.py +1 -1
  264. flwr/supercore/primitives/asymmetric_ed25519.py +11 -1
  265. flwr/supercore/sqlite_mixin.py +37 -34
  266. flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
  267. flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
  268. flwr/supercore/superexec/run_superexec.py +9 -13
  269. flwr/superlink/artifact_provider/artifact_provider.py +1 -2
  270. flwr/superlink/auth_plugin/auth_plugin.py +6 -9
  271. flwr/superlink/auth_plugin/noop_auth_plugin.py +6 -9
  272. flwr/superlink/federation/__init__.py +24 -0
  273. flwr/superlink/federation/federation_manager.py +64 -0
  274. flwr/superlink/federation/noop_federation_manager.py +71 -0
  275. flwr/superlink/servicer/control/control_account_auth_interceptor.py +22 -13
  276. flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
  277. flwr/superlink/servicer/control/control_grpc.py +5 -6
  278. flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
  279. flwr/superlink/servicer/control/control_servicer.py +102 -18
  280. flwr/supernode/cli/flower_supernode.py +58 -3
  281. flwr/supernode/nodestate/in_memory_nodestate.py +60 -49
  282. flwr/supernode/nodestate/nodestate.py +7 -8
  283. flwr/supernode/nodestate/nodestate_factory.py +7 -4
  284. flwr/supernode/runtime/run_clientapp.py +41 -22
  285. flwr/supernode/servicer/clientappio/clientappio_servicer.py +40 -10
  286. flwr/supernode/start_client_internal.py +158 -42
  287. {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/METADATA +8 -8
  288. flwr-1.24.0.dist-info/RECORD +454 -0
  289. flwr/supercore/object_store/utils.py +0 -43
  290. flwr-1.23.0.dist-info/RECORD +0 -439
  291. {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/WHEEL +0 -0
  292. {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/entry_points.txt +0 -0
@@ -1,9 +1,29 @@
1
1
  # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
+ import warnings
4
5
 
5
6
  from flwr.proto import control_pb2 as flwr_dot_proto_dot_control__pb2
6
7
 
8
+ GRPC_GENERATED_VERSION = '1.70.0'
9
+ GRPC_VERSION = grpc.__version__
10
+ _version_not_supported = False
11
+
12
+ try:
13
+ from grpc._utilities import first_version_is_lower
14
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
15
+ except ImportError:
16
+ _version_not_supported = True
17
+
18
+ if _version_not_supported:
19
+ raise RuntimeError(
20
+ f'The grpc package installed is at version {GRPC_VERSION},'
21
+ + f' but the generated code in flwr/proto/control_pb2_grpc.py depends on'
22
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
25
+ )
26
+
7
27
 
8
28
  class ControlStub(object):
9
29
  """Missing associated documentation comment in .proto file."""
@@ -18,52 +38,62 @@ class ControlStub(object):
18
38
  '/flwr.proto.Control/StartRun',
19
39
  request_serializer=flwr_dot_proto_dot_control__pb2.StartRunRequest.SerializeToString,
20
40
  response_deserializer=flwr_dot_proto_dot_control__pb2.StartRunResponse.FromString,
21
- )
41
+ _registered_method=True)
22
42
  self.StopRun = channel.unary_unary(
23
43
  '/flwr.proto.Control/StopRun',
24
44
  request_serializer=flwr_dot_proto_dot_control__pb2.StopRunRequest.SerializeToString,
25
45
  response_deserializer=flwr_dot_proto_dot_control__pb2.StopRunResponse.FromString,
26
- )
46
+ _registered_method=True)
27
47
  self.StreamLogs = channel.unary_stream(
28
48
  '/flwr.proto.Control/StreamLogs',
29
49
  request_serializer=flwr_dot_proto_dot_control__pb2.StreamLogsRequest.SerializeToString,
30
50
  response_deserializer=flwr_dot_proto_dot_control__pb2.StreamLogsResponse.FromString,
31
- )
51
+ _registered_method=True)
32
52
  self.ListRuns = channel.unary_unary(
33
53
  '/flwr.proto.Control/ListRuns',
34
54
  request_serializer=flwr_dot_proto_dot_control__pb2.ListRunsRequest.SerializeToString,
35
55
  response_deserializer=flwr_dot_proto_dot_control__pb2.ListRunsResponse.FromString,
36
- )
56
+ _registered_method=True)
37
57
  self.GetLoginDetails = channel.unary_unary(
38
58
  '/flwr.proto.Control/GetLoginDetails',
39
59
  request_serializer=flwr_dot_proto_dot_control__pb2.GetLoginDetailsRequest.SerializeToString,
40
60
  response_deserializer=flwr_dot_proto_dot_control__pb2.GetLoginDetailsResponse.FromString,
41
- )
61
+ _registered_method=True)
42
62
  self.GetAuthTokens = channel.unary_unary(
43
63
  '/flwr.proto.Control/GetAuthTokens',
44
64
  request_serializer=flwr_dot_proto_dot_control__pb2.GetAuthTokensRequest.SerializeToString,
45
65
  response_deserializer=flwr_dot_proto_dot_control__pb2.GetAuthTokensResponse.FromString,
46
- )
66
+ _registered_method=True)
47
67
  self.PullArtifacts = channel.unary_unary(
48
68
  '/flwr.proto.Control/PullArtifacts',
49
69
  request_serializer=flwr_dot_proto_dot_control__pb2.PullArtifactsRequest.SerializeToString,
50
70
  response_deserializer=flwr_dot_proto_dot_control__pb2.PullArtifactsResponse.FromString,
51
- )
71
+ _registered_method=True)
52
72
  self.RegisterNode = channel.unary_unary(
53
73
  '/flwr.proto.Control/RegisterNode',
54
74
  request_serializer=flwr_dot_proto_dot_control__pb2.RegisterNodeRequest.SerializeToString,
55
75
  response_deserializer=flwr_dot_proto_dot_control__pb2.RegisterNodeResponse.FromString,
56
- )
76
+ _registered_method=True)
57
77
  self.UnregisterNode = channel.unary_unary(
58
78
  '/flwr.proto.Control/UnregisterNode',
59
79
  request_serializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeRequest.SerializeToString,
60
80
  response_deserializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeResponse.FromString,
61
- )
81
+ _registered_method=True)
62
82
  self.ListNodes = channel.unary_unary(
63
83
  '/flwr.proto.Control/ListNodes',
64
84
  request_serializer=flwr_dot_proto_dot_control__pb2.ListNodesRequest.SerializeToString,
65
85
  response_deserializer=flwr_dot_proto_dot_control__pb2.ListNodesResponse.FromString,
66
- )
86
+ _registered_method=True)
87
+ self.ListFederations = channel.unary_unary(
88
+ '/flwr.proto.Control/ListFederations',
89
+ request_serializer=flwr_dot_proto_dot_control__pb2.ListFederationsRequest.SerializeToString,
90
+ response_deserializer=flwr_dot_proto_dot_control__pb2.ListFederationsResponse.FromString,
91
+ _registered_method=True)
92
+ self.ShowFederation = channel.unary_unary(
93
+ '/flwr.proto.Control/ShowFederation',
94
+ request_serializer=flwr_dot_proto_dot_control__pb2.ShowFederationRequest.SerializeToString,
95
+ response_deserializer=flwr_dot_proto_dot_control__pb2.ShowFederationResponse.FromString,
96
+ _registered_method=True)
67
97
 
68
98
 
69
99
  class ControlServicer(object):
@@ -139,6 +169,20 @@ class ControlServicer(object):
139
169
  context.set_details('Method not implemented!')
140
170
  raise NotImplementedError('Method not implemented!')
141
171
 
172
+ def ListFederations(self, request, context):
173
+ """List Federations
174
+ """
175
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
176
+ context.set_details('Method not implemented!')
177
+ raise NotImplementedError('Method not implemented!')
178
+
179
+ def ShowFederation(self, request, context):
180
+ """Show Federation
181
+ """
182
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
183
+ context.set_details('Method not implemented!')
184
+ raise NotImplementedError('Method not implemented!')
185
+
142
186
 
143
187
  def add_ControlServicer_to_server(servicer, server):
144
188
  rpc_method_handlers = {
@@ -192,10 +236,21 @@ def add_ControlServicer_to_server(servicer, server):
192
236
  request_deserializer=flwr_dot_proto_dot_control__pb2.ListNodesRequest.FromString,
193
237
  response_serializer=flwr_dot_proto_dot_control__pb2.ListNodesResponse.SerializeToString,
194
238
  ),
239
+ 'ListFederations': grpc.unary_unary_rpc_method_handler(
240
+ servicer.ListFederations,
241
+ request_deserializer=flwr_dot_proto_dot_control__pb2.ListFederationsRequest.FromString,
242
+ response_serializer=flwr_dot_proto_dot_control__pb2.ListFederationsResponse.SerializeToString,
243
+ ),
244
+ 'ShowFederation': grpc.unary_unary_rpc_method_handler(
245
+ servicer.ShowFederation,
246
+ request_deserializer=flwr_dot_proto_dot_control__pb2.ShowFederationRequest.FromString,
247
+ response_serializer=flwr_dot_proto_dot_control__pb2.ShowFederationResponse.SerializeToString,
248
+ ),
195
249
  }
196
250
  generic_handler = grpc.method_handlers_generic_handler(
197
251
  'flwr.proto.Control', rpc_method_handlers)
198
252
  server.add_generic_rpc_handlers((generic_handler,))
253
+ server.add_registered_method_handlers('flwr.proto.Control', rpc_method_handlers)
199
254
 
200
255
 
201
256
  # This class is part of an EXPERIMENTAL API.
@@ -213,11 +268,21 @@ class Control(object):
213
268
  wait_for_ready=None,
214
269
  timeout=None,
215
270
  metadata=None):
216
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/StartRun',
271
+ return grpc.experimental.unary_unary(
272
+ request,
273
+ target,
274
+ '/flwr.proto.Control/StartRun',
217
275
  flwr_dot_proto_dot_control__pb2.StartRunRequest.SerializeToString,
218
276
  flwr_dot_proto_dot_control__pb2.StartRunResponse.FromString,
219
- options, channel_credentials,
220
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
277
+ options,
278
+ channel_credentials,
279
+ insecure,
280
+ call_credentials,
281
+ compression,
282
+ wait_for_ready,
283
+ timeout,
284
+ metadata,
285
+ _registered_method=True)
221
286
 
222
287
  @staticmethod
223
288
  def StopRun(request,
@@ -230,11 +295,21 @@ class Control(object):
230
295
  wait_for_ready=None,
231
296
  timeout=None,
232
297
  metadata=None):
233
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/StopRun',
298
+ return grpc.experimental.unary_unary(
299
+ request,
300
+ target,
301
+ '/flwr.proto.Control/StopRun',
234
302
  flwr_dot_proto_dot_control__pb2.StopRunRequest.SerializeToString,
235
303
  flwr_dot_proto_dot_control__pb2.StopRunResponse.FromString,
236
- options, channel_credentials,
237
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
304
+ options,
305
+ channel_credentials,
306
+ insecure,
307
+ call_credentials,
308
+ compression,
309
+ wait_for_ready,
310
+ timeout,
311
+ metadata,
312
+ _registered_method=True)
238
313
 
239
314
  @staticmethod
240
315
  def StreamLogs(request,
@@ -247,11 +322,21 @@ class Control(object):
247
322
  wait_for_ready=None,
248
323
  timeout=None,
249
324
  metadata=None):
250
- return grpc.experimental.unary_stream(request, target, '/flwr.proto.Control/StreamLogs',
325
+ return grpc.experimental.unary_stream(
326
+ request,
327
+ target,
328
+ '/flwr.proto.Control/StreamLogs',
251
329
  flwr_dot_proto_dot_control__pb2.StreamLogsRequest.SerializeToString,
252
330
  flwr_dot_proto_dot_control__pb2.StreamLogsResponse.FromString,
253
- options, channel_credentials,
254
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
331
+ options,
332
+ channel_credentials,
333
+ insecure,
334
+ call_credentials,
335
+ compression,
336
+ wait_for_ready,
337
+ timeout,
338
+ metadata,
339
+ _registered_method=True)
255
340
 
256
341
  @staticmethod
257
342
  def ListRuns(request,
@@ -264,11 +349,21 @@ class Control(object):
264
349
  wait_for_ready=None,
265
350
  timeout=None,
266
351
  metadata=None):
267
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/ListRuns',
352
+ return grpc.experimental.unary_unary(
353
+ request,
354
+ target,
355
+ '/flwr.proto.Control/ListRuns',
268
356
  flwr_dot_proto_dot_control__pb2.ListRunsRequest.SerializeToString,
269
357
  flwr_dot_proto_dot_control__pb2.ListRunsResponse.FromString,
270
- options, channel_credentials,
271
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
358
+ options,
359
+ channel_credentials,
360
+ insecure,
361
+ call_credentials,
362
+ compression,
363
+ wait_for_ready,
364
+ timeout,
365
+ metadata,
366
+ _registered_method=True)
272
367
 
273
368
  @staticmethod
274
369
  def GetLoginDetails(request,
@@ -281,11 +376,21 @@ class Control(object):
281
376
  wait_for_ready=None,
282
377
  timeout=None,
283
378
  metadata=None):
284
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/GetLoginDetails',
379
+ return grpc.experimental.unary_unary(
380
+ request,
381
+ target,
382
+ '/flwr.proto.Control/GetLoginDetails',
285
383
  flwr_dot_proto_dot_control__pb2.GetLoginDetailsRequest.SerializeToString,
286
384
  flwr_dot_proto_dot_control__pb2.GetLoginDetailsResponse.FromString,
287
- options, channel_credentials,
288
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
385
+ options,
386
+ channel_credentials,
387
+ insecure,
388
+ call_credentials,
389
+ compression,
390
+ wait_for_ready,
391
+ timeout,
392
+ metadata,
393
+ _registered_method=True)
289
394
 
290
395
  @staticmethod
291
396
  def GetAuthTokens(request,
@@ -298,11 +403,21 @@ class Control(object):
298
403
  wait_for_ready=None,
299
404
  timeout=None,
300
405
  metadata=None):
301
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/GetAuthTokens',
406
+ return grpc.experimental.unary_unary(
407
+ request,
408
+ target,
409
+ '/flwr.proto.Control/GetAuthTokens',
302
410
  flwr_dot_proto_dot_control__pb2.GetAuthTokensRequest.SerializeToString,
303
411
  flwr_dot_proto_dot_control__pb2.GetAuthTokensResponse.FromString,
304
- options, channel_credentials,
305
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
412
+ options,
413
+ channel_credentials,
414
+ insecure,
415
+ call_credentials,
416
+ compression,
417
+ wait_for_ready,
418
+ timeout,
419
+ metadata,
420
+ _registered_method=True)
306
421
 
307
422
  @staticmethod
308
423
  def PullArtifacts(request,
@@ -315,11 +430,21 @@ class Control(object):
315
430
  wait_for_ready=None,
316
431
  timeout=None,
317
432
  metadata=None):
318
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/PullArtifacts',
433
+ return grpc.experimental.unary_unary(
434
+ request,
435
+ target,
436
+ '/flwr.proto.Control/PullArtifacts',
319
437
  flwr_dot_proto_dot_control__pb2.PullArtifactsRequest.SerializeToString,
320
438
  flwr_dot_proto_dot_control__pb2.PullArtifactsResponse.FromString,
321
- options, channel_credentials,
322
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
439
+ options,
440
+ channel_credentials,
441
+ insecure,
442
+ call_credentials,
443
+ compression,
444
+ wait_for_ready,
445
+ timeout,
446
+ metadata,
447
+ _registered_method=True)
323
448
 
324
449
  @staticmethod
325
450
  def RegisterNode(request,
@@ -332,11 +457,21 @@ class Control(object):
332
457
  wait_for_ready=None,
333
458
  timeout=None,
334
459
  metadata=None):
335
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/RegisterNode',
460
+ return grpc.experimental.unary_unary(
461
+ request,
462
+ target,
463
+ '/flwr.proto.Control/RegisterNode',
336
464
  flwr_dot_proto_dot_control__pb2.RegisterNodeRequest.SerializeToString,
337
465
  flwr_dot_proto_dot_control__pb2.RegisterNodeResponse.FromString,
338
- options, channel_credentials,
339
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
466
+ options,
467
+ channel_credentials,
468
+ insecure,
469
+ call_credentials,
470
+ compression,
471
+ wait_for_ready,
472
+ timeout,
473
+ metadata,
474
+ _registered_method=True)
340
475
 
341
476
  @staticmethod
342
477
  def UnregisterNode(request,
@@ -349,11 +484,21 @@ class Control(object):
349
484
  wait_for_ready=None,
350
485
  timeout=None,
351
486
  metadata=None):
352
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/UnregisterNode',
487
+ return grpc.experimental.unary_unary(
488
+ request,
489
+ target,
490
+ '/flwr.proto.Control/UnregisterNode',
353
491
  flwr_dot_proto_dot_control__pb2.UnregisterNodeRequest.SerializeToString,
354
492
  flwr_dot_proto_dot_control__pb2.UnregisterNodeResponse.FromString,
355
- options, channel_credentials,
356
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
493
+ options,
494
+ channel_credentials,
495
+ insecure,
496
+ call_credentials,
497
+ compression,
498
+ wait_for_ready,
499
+ timeout,
500
+ metadata,
501
+ _registered_method=True)
357
502
 
358
503
  @staticmethod
359
504
  def ListNodes(request,
@@ -366,8 +511,72 @@ class Control(object):
366
511
  wait_for_ready=None,
367
512
  timeout=None,
368
513
  metadata=None):
369
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.Control/ListNodes',
514
+ return grpc.experimental.unary_unary(
515
+ request,
516
+ target,
517
+ '/flwr.proto.Control/ListNodes',
370
518
  flwr_dot_proto_dot_control__pb2.ListNodesRequest.SerializeToString,
371
519
  flwr_dot_proto_dot_control__pb2.ListNodesResponse.FromString,
372
- options, channel_credentials,
373
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
520
+ options,
521
+ channel_credentials,
522
+ insecure,
523
+ call_credentials,
524
+ compression,
525
+ wait_for_ready,
526
+ timeout,
527
+ metadata,
528
+ _registered_method=True)
529
+
530
+ @staticmethod
531
+ def ListFederations(request,
532
+ target,
533
+ options=(),
534
+ channel_credentials=None,
535
+ call_credentials=None,
536
+ insecure=False,
537
+ compression=None,
538
+ wait_for_ready=None,
539
+ timeout=None,
540
+ metadata=None):
541
+ return grpc.experimental.unary_unary(
542
+ request,
543
+ target,
544
+ '/flwr.proto.Control/ListFederations',
545
+ flwr_dot_proto_dot_control__pb2.ListFederationsRequest.SerializeToString,
546
+ flwr_dot_proto_dot_control__pb2.ListFederationsResponse.FromString,
547
+ options,
548
+ channel_credentials,
549
+ insecure,
550
+ call_credentials,
551
+ compression,
552
+ wait_for_ready,
553
+ timeout,
554
+ metadata,
555
+ _registered_method=True)
556
+
557
+ @staticmethod
558
+ def ShowFederation(request,
559
+ target,
560
+ options=(),
561
+ channel_credentials=None,
562
+ call_credentials=None,
563
+ insecure=False,
564
+ compression=None,
565
+ wait_for_ready=None,
566
+ timeout=None,
567
+ metadata=None):
568
+ return grpc.experimental.unary_unary(
569
+ request,
570
+ target,
571
+ '/flwr.proto.Control/ShowFederation',
572
+ flwr_dot_proto_dot_control__pb2.ShowFederationRequest.SerializeToString,
573
+ flwr_dot_proto_dot_control__pb2.ShowFederationResponse.FromString,
574
+ options,
575
+ channel_credentials,
576
+ insecure,
577
+ call_credentials,
578
+ compression,
579
+ wait_for_ready,
580
+ timeout,
581
+ metadata,
582
+ _registered_method=True)