flwr 1.22.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 (301) 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 +34 -1
  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/__init__.py +15 -6
  9. flwr/cli/auth_plugin/auth_plugin.py +94 -0
  10. flwr/cli/auth_plugin/noop_auth_plugin.py +101 -0
  11. flwr/cli/auth_plugin/oidc_cli_plugin.py +46 -32
  12. flwr/cli/build.py +166 -53
  13. flwr/cli/{cli_user_auth_interceptor.py → cli_account_auth_interceptor.py} +29 -11
  14. flwr/cli/config_utils.py +101 -13
  15. flwr/cli/federation/__init__.py +24 -0
  16. flwr/cli/federation/ls.py +140 -0
  17. flwr/cli/federation/show.py +317 -0
  18. flwr/cli/install.py +91 -13
  19. flwr/cli/log.py +54 -11
  20. flwr/cli/login/login.py +41 -27
  21. flwr/cli/ls.py +177 -133
  22. flwr/cli/new/new.py +175 -40
  23. flwr/cli/new/templates/app/code/task.pytorch.py.tpl +1 -0
  24. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  25. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  26. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  27. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  28. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  29. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  30. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -3
  31. flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +1 -1
  32. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  33. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  34. flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +1 -1
  35. flwr/cli/pull.py +12 -7
  36. flwr/cli/run/run.py +82 -31
  37. flwr/cli/run_utils.py +130 -0
  38. flwr/cli/stop.py +27 -9
  39. flwr/cli/supernode/__init__.py +25 -0
  40. flwr/cli/supernode/ls.py +268 -0
  41. flwr/cli/supernode/register.py +190 -0
  42. flwr/cli/supernode/unregister.py +140 -0
  43. flwr/cli/utils.py +464 -81
  44. flwr/client/__init__.py +2 -1
  45. flwr/client/dpfedavg_numpy_client.py +4 -1
  46. flwr/client/grpc_adapter_client/connection.py +12 -15
  47. flwr/client/grpc_rere_client/connection.py +68 -41
  48. flwr/client/grpc_rere_client/grpc_adapter.py +34 -14
  49. flwr/client/grpc_rere_client/{client_interceptor.py → node_auth_client_interceptor.py} +5 -7
  50. flwr/client/message_handler/message_handler.py +2 -2
  51. flwr/client/mod/secure_aggregation/secaggplus_mod.py +10 -8
  52. flwr/client/numpy_client.py +1 -1
  53. flwr/client/rest_client/connection.py +94 -51
  54. flwr/client/run_info_store.py +4 -5
  55. flwr/client/typing.py +1 -1
  56. flwr/clientapp/__init__.py +1 -2
  57. flwr/{client → clientapp}/client_app.py +9 -10
  58. flwr/clientapp/mod/centraldp_mods.py +16 -17
  59. flwr/clientapp/mod/localdp_mod.py +8 -9
  60. flwr/clientapp/typing.py +1 -1
  61. flwr/{client/clientapp → clientapp}/utils.py +4 -4
  62. flwr/common/address.py +1 -2
  63. flwr/common/args.py +3 -4
  64. flwr/common/config.py +13 -16
  65. flwr/common/constant.py +56 -13
  66. flwr/common/differential_privacy.py +3 -4
  67. flwr/common/event_log_plugin/event_log_plugin.py +3 -4
  68. flwr/common/exit/exit.py +15 -2
  69. flwr/common/exit/exit_code.py +39 -10
  70. flwr/common/exit/exit_handler.py +6 -2
  71. flwr/common/exit/signal_handler.py +5 -5
  72. flwr/common/grpc.py +6 -6
  73. flwr/common/inflatable_protobuf_utils.py +1 -1
  74. flwr/common/inflatable_utils.py +48 -31
  75. flwr/common/logger.py +19 -19
  76. flwr/common/message.py +4 -4
  77. flwr/common/object_ref.py +7 -7
  78. flwr/common/record/array.py +6 -6
  79. flwr/common/record/arrayrecord.py +18 -21
  80. flwr/common/record/configrecord.py +3 -3
  81. flwr/common/record/recorddict.py +5 -5
  82. flwr/common/record/typeddict.py +9 -2
  83. flwr/common/recorddict_compat.py +7 -10
  84. flwr/common/retry_invoker.py +20 -20
  85. flwr/common/secure_aggregation/crypto/symmetric_encryption.py +1 -89
  86. flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
  87. flwr/common/serde.py +9 -6
  88. flwr/common/serde_utils.py +2 -2
  89. flwr/common/telemetry.py +9 -5
  90. flwr/common/typing.py +59 -43
  91. flwr/compat/client/app.py +39 -38
  92. flwr/compat/client/grpc_client/connection.py +13 -13
  93. flwr/compat/server/app.py +5 -6
  94. flwr/proto/appio_pb2.py +13 -3
  95. flwr/proto/appio_pb2.pyi +134 -65
  96. flwr/proto/appio_pb2_grpc.py +20 -0
  97. flwr/proto/appio_pb2_grpc.pyi +27 -0
  98. flwr/proto/clientappio_pb2.py +17 -7
  99. flwr/proto/clientappio_pb2.pyi +15 -0
  100. flwr/proto/clientappio_pb2_grpc.py +206 -40
  101. flwr/proto/clientappio_pb2_grpc.pyi +168 -53
  102. flwr/proto/control_pb2.py +72 -40
  103. flwr/proto/control_pb2.pyi +319 -87
  104. flwr/proto/control_pb2_grpc.py +339 -28
  105. flwr/proto/control_pb2_grpc.pyi +209 -37
  106. flwr/proto/error_pb2.py +13 -3
  107. flwr/proto/error_pb2.pyi +24 -6
  108. flwr/proto/error_pb2_grpc.py +20 -0
  109. flwr/proto/error_pb2_grpc.pyi +27 -0
  110. flwr/proto/fab_pb2.py +24 -10
  111. flwr/proto/fab_pb2.pyi +68 -20
  112. flwr/proto/fab_pb2_grpc.py +20 -0
  113. flwr/proto/fab_pb2_grpc.pyi +27 -0
  114. flwr/proto/federation_pb2.py +38 -0
  115. flwr/proto/federation_pb2.pyi +56 -0
  116. flwr/proto/federation_pb2_grpc.py +24 -0
  117. flwr/proto/federation_pb2_grpc.pyi +31 -0
  118. flwr/proto/fleet_pb2.py +45 -27
  119. flwr/proto/fleet_pb2.pyi +186 -70
  120. flwr/proto/fleet_pb2_grpc.py +277 -66
  121. flwr/proto/fleet_pb2_grpc.pyi +201 -55
  122. flwr/proto/grpcadapter_pb2.py +14 -4
  123. flwr/proto/grpcadapter_pb2.pyi +38 -16
  124. flwr/proto/grpcadapter_pb2_grpc.py +35 -4
  125. flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
  126. flwr/proto/heartbeat_pb2.py +17 -7
  127. flwr/proto/heartbeat_pb2.pyi +51 -22
  128. flwr/proto/heartbeat_pb2_grpc.py +20 -0
  129. flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
  130. flwr/proto/log_pb2.py +13 -3
  131. flwr/proto/log_pb2.pyi +34 -11
  132. flwr/proto/log_pb2_grpc.py +20 -0
  133. flwr/proto/log_pb2_grpc.pyi +27 -0
  134. flwr/proto/message_pb2.py +15 -5
  135. flwr/proto/message_pb2.pyi +154 -86
  136. flwr/proto/message_pb2_grpc.py +20 -0
  137. flwr/proto/message_pb2_grpc.pyi +27 -0
  138. flwr/proto/node_pb2.py +16 -4
  139. flwr/proto/node_pb2.pyi +77 -4
  140. flwr/proto/node_pb2_grpc.py +20 -0
  141. flwr/proto/node_pb2_grpc.pyi +27 -0
  142. flwr/proto/recorddict_pb2.py +13 -3
  143. flwr/proto/recorddict_pb2.pyi +184 -107
  144. flwr/proto/recorddict_pb2_grpc.py +20 -0
  145. flwr/proto/recorddict_pb2_grpc.pyi +27 -0
  146. flwr/proto/run_pb2.py +40 -31
  147. flwr/proto/run_pb2.pyi +149 -84
  148. flwr/proto/run_pb2_grpc.py +20 -0
  149. flwr/proto/run_pb2_grpc.pyi +27 -0
  150. flwr/proto/serverappio_pb2.py +13 -3
  151. flwr/proto/serverappio_pb2.pyi +32 -8
  152. flwr/proto/serverappio_pb2_grpc.py +246 -65
  153. flwr/proto/serverappio_pb2_grpc.pyi +221 -85
  154. flwr/proto/simulationio_pb2.py +16 -8
  155. flwr/proto/simulationio_pb2.pyi +15 -0
  156. flwr/proto/simulationio_pb2_grpc.py +162 -41
  157. flwr/proto/simulationio_pb2_grpc.pyi +149 -55
  158. flwr/proto/transport_pb2.py +20 -10
  159. flwr/proto/transport_pb2.pyi +249 -160
  160. flwr/proto/transport_pb2_grpc.py +35 -4
  161. flwr/proto/transport_pb2_grpc.pyi +38 -8
  162. flwr/server/app.py +173 -127
  163. flwr/server/client_manager.py +4 -5
  164. flwr/server/client_proxy.py +10 -11
  165. flwr/server/compat/app.py +4 -5
  166. flwr/server/compat/app_utils.py +2 -1
  167. flwr/server/compat/grid_client_proxy.py +10 -12
  168. flwr/server/compat/legacy_context.py +3 -4
  169. flwr/server/fleet_event_log_interceptor.py +2 -1
  170. flwr/server/grid/grid.py +2 -3
  171. flwr/server/grid/grpc_grid.py +10 -8
  172. flwr/server/grid/inmemory_grid.py +4 -4
  173. flwr/server/run_serverapp.py +2 -3
  174. flwr/server/server.py +34 -39
  175. flwr/server/server_app.py +7 -8
  176. flwr/server/server_config.py +1 -2
  177. flwr/server/serverapp/app.py +34 -28
  178. flwr/server/serverapp_components.py +4 -5
  179. flwr/server/strategy/aggregate.py +9 -8
  180. flwr/server/strategy/bulyan.py +13 -11
  181. flwr/server/strategy/dp_adaptive_clipping.py +16 -20
  182. flwr/server/strategy/dp_fixed_clipping.py +12 -17
  183. flwr/server/strategy/dpfedavg_adaptive.py +3 -4
  184. flwr/server/strategy/dpfedavg_fixed.py +6 -10
  185. flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
  186. flwr/server/strategy/fedadagrad.py +18 -14
  187. flwr/server/strategy/fedadam.py +16 -14
  188. flwr/server/strategy/fedavg.py +16 -17
  189. flwr/server/strategy/fedavg_android.py +15 -15
  190. flwr/server/strategy/fedavgm.py +21 -18
  191. flwr/server/strategy/fedmedian.py +2 -3
  192. flwr/server/strategy/fedopt.py +11 -10
  193. flwr/server/strategy/fedprox.py +10 -9
  194. flwr/server/strategy/fedtrimmedavg.py +12 -11
  195. flwr/server/strategy/fedxgb_bagging.py +13 -11
  196. flwr/server/strategy/fedxgb_cyclic.py +6 -6
  197. flwr/server/strategy/fedxgb_nn_avg.py +4 -4
  198. flwr/server/strategy/fedyogi.py +16 -14
  199. flwr/server/strategy/krum.py +12 -11
  200. flwr/server/strategy/qfedavg.py +16 -15
  201. flwr/server/strategy/strategy.py +6 -9
  202. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +19 -8
  203. flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
  204. flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
  205. flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
  206. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
  207. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +136 -42
  208. flwr/server/superlink/fleet/grpc_rere/{server_interceptor.py → node_auth_server_interceptor.py} +28 -51
  209. flwr/server/superlink/fleet/message_handler/message_handler.py +100 -49
  210. flwr/server/superlink/fleet/rest_rere/rest_api.py +54 -33
  211. flwr/server/superlink/fleet/vce/backend/backend.py +2 -2
  212. flwr/server/superlink/fleet/vce/backend/raybackend.py +6 -6
  213. flwr/server/superlink/fleet/vce/vce_api.py +32 -13
  214. flwr/server/superlink/linkstate/in_memory_linkstate.py +266 -207
  215. flwr/server/superlink/linkstate/linkstate.py +161 -62
  216. flwr/server/superlink/linkstate/linkstate_factory.py +24 -6
  217. flwr/server/superlink/linkstate/sqlite_linkstate.py +698 -638
  218. flwr/server/superlink/linkstate/utils.py +9 -60
  219. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
  220. flwr/server/superlink/serverappio/serverappio_servicer.py +28 -23
  221. flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
  222. flwr/server/superlink/simulation/simulationio_servicer.py +19 -14
  223. flwr/server/superlink/utils.py +4 -6
  224. flwr/server/typing.py +1 -1
  225. flwr/server/utils/tensorboard.py +15 -8
  226. flwr/server/utils/validator.py +2 -3
  227. flwr/server/workflow/default_workflows.py +5 -5
  228. flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
  229. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +12 -10
  230. flwr/serverapp/strategy/bulyan.py +16 -15
  231. flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
  232. flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
  233. flwr/serverapp/strategy/fedadagrad.py +10 -11
  234. flwr/serverapp/strategy/fedadam.py +10 -11
  235. flwr/serverapp/strategy/fedavg.py +9 -10
  236. flwr/serverapp/strategy/fedavgm.py +17 -16
  237. flwr/serverapp/strategy/fedmedian.py +2 -2
  238. flwr/serverapp/strategy/fedopt.py +10 -11
  239. flwr/serverapp/strategy/fedprox.py +7 -8
  240. flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
  241. flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
  242. flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
  243. flwr/serverapp/strategy/fedyogi.py +9 -11
  244. flwr/serverapp/strategy/krum.py +7 -7
  245. flwr/serverapp/strategy/multikrum.py +9 -9
  246. flwr/serverapp/strategy/qfedavg.py +17 -16
  247. flwr/serverapp/strategy/strategy.py +6 -9
  248. flwr/serverapp/strategy/strategy_utils.py +7 -8
  249. flwr/simulation/app.py +46 -42
  250. flwr/simulation/legacy_app.py +12 -12
  251. flwr/simulation/ray_transport/ray_actor.py +11 -12
  252. flwr/simulation/ray_transport/ray_client_proxy.py +12 -13
  253. flwr/simulation/run_simulation.py +44 -43
  254. flwr/simulation/simulationio_connection.py +4 -4
  255. flwr/supercore/cli/flower_superexec.py +3 -4
  256. flwr/supercore/constant.py +52 -0
  257. flwr/supercore/corestate/corestate.py +24 -3
  258. flwr/supercore/corestate/in_memory_corestate.py +138 -0
  259. flwr/supercore/corestate/sqlite_corestate.py +157 -0
  260. flwr/supercore/ffs/disk_ffs.py +1 -2
  261. flwr/supercore/ffs/ffs.py +1 -2
  262. flwr/supercore/ffs/ffs_factory.py +1 -2
  263. flwr/{common → supercore}/heartbeat.py +20 -25
  264. flwr/supercore/object_store/in_memory_object_store.py +1 -6
  265. flwr/supercore/object_store/object_store.py +1 -2
  266. flwr/supercore/object_store/object_store_factory.py +27 -8
  267. flwr/supercore/object_store/sqlite_object_store.py +253 -0
  268. flwr/{client/clientapp → supercore/primitives}/__init__.py +1 -1
  269. flwr/supercore/primitives/asymmetric.py +117 -0
  270. flwr/supercore/primitives/asymmetric_ed25519.py +175 -0
  271. flwr/supercore/sqlite_mixin.py +159 -0
  272. flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
  273. flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
  274. flwr/supercore/superexec/run_superexec.py +9 -13
  275. flwr/supercore/utils.py +20 -0
  276. flwr/superlink/artifact_provider/artifact_provider.py +1 -2
  277. flwr/{common → superlink}/auth_plugin/__init__.py +6 -6
  278. flwr/superlink/auth_plugin/auth_plugin.py +88 -0
  279. flwr/superlink/auth_plugin/noop_auth_plugin.py +84 -0
  280. flwr/superlink/federation/__init__.py +24 -0
  281. flwr/superlink/federation/federation_manager.py +64 -0
  282. flwr/superlink/federation/noop_federation_manager.py +71 -0
  283. flwr/superlink/servicer/control/{control_user_auth_interceptor.py → control_account_auth_interceptor.py} +41 -32
  284. flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
  285. flwr/superlink/servicer/control/control_grpc.py +18 -17
  286. flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
  287. flwr/superlink/servicer/control/control_servicer.py +239 -63
  288. flwr/supernode/cli/flower_supernode.py +74 -26
  289. flwr/supernode/nodestate/in_memory_nodestate.py +60 -49
  290. flwr/supernode/nodestate/nodestate.py +7 -8
  291. flwr/supernode/nodestate/nodestate_factory.py +7 -4
  292. flwr/supernode/runtime/run_clientapp.py +43 -24
  293. flwr/supernode/servicer/clientappio/clientappio_servicer.py +40 -10
  294. flwr/supernode/start_client_internal.py +175 -51
  295. {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/METADATA +8 -8
  296. flwr-1.24.0.dist-info/RECORD +454 -0
  297. flwr/common/auth_plugin/auth_plugin.py +0 -149
  298. flwr/supercore/object_store/utils.py +0 -43
  299. flwr-1.22.0.dist-info/RECORD +0 -428
  300. {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/WHEEL +0 -0
  301. {flwr-1.22.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,37 +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)
72
+ self.RegisterNode = channel.unary_unary(
73
+ '/flwr.proto.Control/RegisterNode',
74
+ request_serializer=flwr_dot_proto_dot_control__pb2.RegisterNodeRequest.SerializeToString,
75
+ response_deserializer=flwr_dot_proto_dot_control__pb2.RegisterNodeResponse.FromString,
76
+ _registered_method=True)
77
+ self.UnregisterNode = channel.unary_unary(
78
+ '/flwr.proto.Control/UnregisterNode',
79
+ request_serializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeRequest.SerializeToString,
80
+ response_deserializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeResponse.FromString,
81
+ _registered_method=True)
82
+ self.ListNodes = channel.unary_unary(
83
+ '/flwr.proto.Control/ListNodes',
84
+ request_serializer=flwr_dot_proto_dot_control__pb2.ListNodesRequest.SerializeToString,
85
+ response_deserializer=flwr_dot_proto_dot_control__pb2.ListNodesResponse.FromString,
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)
52
97
 
53
98
 
54
99
  class ControlServicer(object):
@@ -103,6 +148,41 @@ class ControlServicer(object):
103
148
  context.set_details('Method not implemented!')
104
149
  raise NotImplementedError('Method not implemented!')
105
150
 
151
+ def RegisterNode(self, request, context):
152
+ """Register SuperNode
153
+ """
154
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
155
+ context.set_details('Method not implemented!')
156
+ raise NotImplementedError('Method not implemented!')
157
+
158
+ def UnregisterNode(self, request, context):
159
+ """Unregister SuperNode
160
+ """
161
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
162
+ context.set_details('Method not implemented!')
163
+ raise NotImplementedError('Method not implemented!')
164
+
165
+ def ListNodes(self, request, context):
166
+ """List SuperNodes
167
+ """
168
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
169
+ context.set_details('Method not implemented!')
170
+ raise NotImplementedError('Method not implemented!')
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
+
106
186
 
107
187
  def add_ControlServicer_to_server(servicer, server):
108
188
  rpc_method_handlers = {
@@ -141,10 +221,36 @@ def add_ControlServicer_to_server(servicer, server):
141
221
  request_deserializer=flwr_dot_proto_dot_control__pb2.PullArtifactsRequest.FromString,
142
222
  response_serializer=flwr_dot_proto_dot_control__pb2.PullArtifactsResponse.SerializeToString,
143
223
  ),
224
+ 'RegisterNode': grpc.unary_unary_rpc_method_handler(
225
+ servicer.RegisterNode,
226
+ request_deserializer=flwr_dot_proto_dot_control__pb2.RegisterNodeRequest.FromString,
227
+ response_serializer=flwr_dot_proto_dot_control__pb2.RegisterNodeResponse.SerializeToString,
228
+ ),
229
+ 'UnregisterNode': grpc.unary_unary_rpc_method_handler(
230
+ servicer.UnregisterNode,
231
+ request_deserializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeRequest.FromString,
232
+ response_serializer=flwr_dot_proto_dot_control__pb2.UnregisterNodeResponse.SerializeToString,
233
+ ),
234
+ 'ListNodes': grpc.unary_unary_rpc_method_handler(
235
+ servicer.ListNodes,
236
+ request_deserializer=flwr_dot_proto_dot_control__pb2.ListNodesRequest.FromString,
237
+ response_serializer=flwr_dot_proto_dot_control__pb2.ListNodesResponse.SerializeToString,
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
+ ),
144
249
  }
145
250
  generic_handler = grpc.method_handlers_generic_handler(
146
251
  'flwr.proto.Control', rpc_method_handlers)
147
252
  server.add_generic_rpc_handlers((generic_handler,))
253
+ server.add_registered_method_handlers('flwr.proto.Control', rpc_method_handlers)
148
254
 
149
255
 
150
256
  # This class is part of an EXPERIMENTAL API.
@@ -162,11 +268,21 @@ class Control(object):
162
268
  wait_for_ready=None,
163
269
  timeout=None,
164
270
  metadata=None):
165
- 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',
166
275
  flwr_dot_proto_dot_control__pb2.StartRunRequest.SerializeToString,
167
276
  flwr_dot_proto_dot_control__pb2.StartRunResponse.FromString,
168
- options, channel_credentials,
169
- 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)
170
286
 
171
287
  @staticmethod
172
288
  def StopRun(request,
@@ -179,11 +295,21 @@ class Control(object):
179
295
  wait_for_ready=None,
180
296
  timeout=None,
181
297
  metadata=None):
182
- 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',
183
302
  flwr_dot_proto_dot_control__pb2.StopRunRequest.SerializeToString,
184
303
  flwr_dot_proto_dot_control__pb2.StopRunResponse.FromString,
185
- options, channel_credentials,
186
- 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)
187
313
 
188
314
  @staticmethod
189
315
  def StreamLogs(request,
@@ -196,11 +322,21 @@ class Control(object):
196
322
  wait_for_ready=None,
197
323
  timeout=None,
198
324
  metadata=None):
199
- 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',
200
329
  flwr_dot_proto_dot_control__pb2.StreamLogsRequest.SerializeToString,
201
330
  flwr_dot_proto_dot_control__pb2.StreamLogsResponse.FromString,
202
- options, channel_credentials,
203
- 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)
204
340
 
205
341
  @staticmethod
206
342
  def ListRuns(request,
@@ -213,11 +349,21 @@ class Control(object):
213
349
  wait_for_ready=None,
214
350
  timeout=None,
215
351
  metadata=None):
216
- 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',
217
356
  flwr_dot_proto_dot_control__pb2.ListRunsRequest.SerializeToString,
218
357
  flwr_dot_proto_dot_control__pb2.ListRunsResponse.FromString,
219
- options, channel_credentials,
220
- 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)
221
367
 
222
368
  @staticmethod
223
369
  def GetLoginDetails(request,
@@ -230,11 +376,21 @@ class Control(object):
230
376
  wait_for_ready=None,
231
377
  timeout=None,
232
378
  metadata=None):
233
- 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',
234
383
  flwr_dot_proto_dot_control__pb2.GetLoginDetailsRequest.SerializeToString,
235
384
  flwr_dot_proto_dot_control__pb2.GetLoginDetailsResponse.FromString,
236
- options, channel_credentials,
237
- 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)
238
394
 
239
395
  @staticmethod
240
396
  def GetAuthTokens(request,
@@ -247,11 +403,21 @@ class Control(object):
247
403
  wait_for_ready=None,
248
404
  timeout=None,
249
405
  metadata=None):
250
- 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',
251
410
  flwr_dot_proto_dot_control__pb2.GetAuthTokensRequest.SerializeToString,
252
411
  flwr_dot_proto_dot_control__pb2.GetAuthTokensResponse.FromString,
253
- options, channel_credentials,
254
- 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)
255
421
 
256
422
  @staticmethod
257
423
  def PullArtifacts(request,
@@ -264,8 +430,153 @@ class Control(object):
264
430
  wait_for_ready=None,
265
431
  timeout=None,
266
432
  metadata=None):
267
- 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',
268
437
  flwr_dot_proto_dot_control__pb2.PullArtifactsRequest.SerializeToString,
269
438
  flwr_dot_proto_dot_control__pb2.PullArtifactsResponse.FromString,
270
- options, channel_credentials,
271
- 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)
448
+
449
+ @staticmethod
450
+ def RegisterNode(request,
451
+ target,
452
+ options=(),
453
+ channel_credentials=None,
454
+ call_credentials=None,
455
+ insecure=False,
456
+ compression=None,
457
+ wait_for_ready=None,
458
+ timeout=None,
459
+ metadata=None):
460
+ return grpc.experimental.unary_unary(
461
+ request,
462
+ target,
463
+ '/flwr.proto.Control/RegisterNode',
464
+ flwr_dot_proto_dot_control__pb2.RegisterNodeRequest.SerializeToString,
465
+ flwr_dot_proto_dot_control__pb2.RegisterNodeResponse.FromString,
466
+ options,
467
+ channel_credentials,
468
+ insecure,
469
+ call_credentials,
470
+ compression,
471
+ wait_for_ready,
472
+ timeout,
473
+ metadata,
474
+ _registered_method=True)
475
+
476
+ @staticmethod
477
+ def UnregisterNode(request,
478
+ target,
479
+ options=(),
480
+ channel_credentials=None,
481
+ call_credentials=None,
482
+ insecure=False,
483
+ compression=None,
484
+ wait_for_ready=None,
485
+ timeout=None,
486
+ metadata=None):
487
+ return grpc.experimental.unary_unary(
488
+ request,
489
+ target,
490
+ '/flwr.proto.Control/UnregisterNode',
491
+ flwr_dot_proto_dot_control__pb2.UnregisterNodeRequest.SerializeToString,
492
+ flwr_dot_proto_dot_control__pb2.UnregisterNodeResponse.FromString,
493
+ options,
494
+ channel_credentials,
495
+ insecure,
496
+ call_credentials,
497
+ compression,
498
+ wait_for_ready,
499
+ timeout,
500
+ metadata,
501
+ _registered_method=True)
502
+
503
+ @staticmethod
504
+ def ListNodes(request,
505
+ target,
506
+ options=(),
507
+ channel_credentials=None,
508
+ call_credentials=None,
509
+ insecure=False,
510
+ compression=None,
511
+ wait_for_ready=None,
512
+ timeout=None,
513
+ metadata=None):
514
+ return grpc.experimental.unary_unary(
515
+ request,
516
+ target,
517
+ '/flwr.proto.Control/ListNodes',
518
+ flwr_dot_proto_dot_control__pb2.ListNodesRequest.SerializeToString,
519
+ flwr_dot_proto_dot_control__pb2.ListNodesResponse.FromString,
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)