flwr 1.23.0__py3-none-any.whl → 1.25.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 (339) 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/{new/templates → app_cmd}/__init__.py +9 -1
  6. flwr/cli/app_cmd/publish.py +285 -0
  7. flwr/cli/app_cmd/review.py +262 -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/{new/templates/app/code/flwr_tune → federation}/__init__.py +10 -1
  15. flwr/cli/federation/ls.py +140 -0
  16. flwr/cli/federation/show.py +318 -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 +211 -130
  21. flwr/cli/new/new.py +123 -331
  22. flwr/cli/pull.py +10 -5
  23. flwr/cli/run/run.py +71 -29
  24. flwr/cli/run_utils.py +148 -0
  25. flwr/cli/stop.py +26 -8
  26. flwr/cli/supernode/ls.py +25 -12
  27. flwr/cli/supernode/register.py +9 -4
  28. flwr/cli/supernode/unregister.py +5 -3
  29. flwr/cli/utils.py +239 -16
  30. flwr/client/__init__.py +1 -1
  31. flwr/client/dpfedavg_numpy_client.py +4 -1
  32. flwr/client/grpc_adapter_client/connection.py +8 -9
  33. flwr/client/grpc_rere_client/connection.py +16 -14
  34. flwr/client/grpc_rere_client/grpc_adapter.py +6 -2
  35. flwr/client/grpc_rere_client/node_auth_client_interceptor.py +2 -1
  36. flwr/client/message_handler/message_handler.py +2 -2
  37. flwr/client/mod/secure_aggregation/secaggplus_mod.py +3 -3
  38. flwr/client/numpy_client.py +1 -1
  39. flwr/client/rest_client/connection.py +18 -18
  40. flwr/client/run_info_store.py +4 -5
  41. flwr/client/typing.py +1 -1
  42. flwr/clientapp/client_app.py +9 -10
  43. flwr/clientapp/mod/centraldp_mods.py +16 -17
  44. flwr/clientapp/mod/localdp_mod.py +8 -9
  45. flwr/clientapp/typing.py +1 -1
  46. flwr/clientapp/utils.py +3 -3
  47. flwr/common/address.py +1 -2
  48. flwr/common/args.py +3 -4
  49. flwr/common/config.py +13 -16
  50. flwr/common/constant.py +5 -2
  51. flwr/common/differential_privacy.py +3 -4
  52. flwr/common/event_log_plugin/event_log_plugin.py +3 -4
  53. flwr/common/exit/exit.py +15 -2
  54. flwr/common/exit/exit_code.py +19 -0
  55. flwr/common/exit/exit_handler.py +6 -2
  56. flwr/common/exit/signal_handler.py +5 -5
  57. flwr/common/grpc.py +6 -6
  58. flwr/common/inflatable_protobuf_utils.py +1 -1
  59. flwr/common/inflatable_utils.py +38 -21
  60. flwr/common/logger.py +19 -19
  61. flwr/common/message.py +4 -4
  62. flwr/common/object_ref.py +7 -7
  63. flwr/common/record/array.py +3 -3
  64. flwr/common/record/arrayrecord.py +18 -30
  65. flwr/common/record/configrecord.py +3 -3
  66. flwr/common/record/recorddict.py +5 -5
  67. flwr/common/record/typeddict.py +9 -2
  68. flwr/common/recorddict_compat.py +7 -10
  69. flwr/common/retry_invoker.py +20 -20
  70. flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
  71. flwr/common/serde.py +11 -4
  72. flwr/common/serde_utils.py +2 -2
  73. flwr/common/telemetry.py +9 -5
  74. flwr/common/typing.py +58 -37
  75. flwr/compat/client/app.py +38 -37
  76. flwr/compat/client/grpc_client/connection.py +11 -11
  77. flwr/compat/server/app.py +5 -6
  78. flwr/proto/appio_pb2.py +13 -3
  79. flwr/proto/appio_pb2.pyi +134 -65
  80. flwr/proto/appio_pb2_grpc.py +20 -0
  81. flwr/proto/appio_pb2_grpc.pyi +27 -0
  82. flwr/proto/clientappio_pb2.py +17 -7
  83. flwr/proto/clientappio_pb2.pyi +15 -0
  84. flwr/proto/clientappio_pb2_grpc.py +206 -40
  85. flwr/proto/clientappio_pb2_grpc.pyi +168 -53
  86. flwr/proto/control_pb2.py +71 -52
  87. flwr/proto/control_pb2.pyi +277 -111
  88. flwr/proto/control_pb2_grpc.py +249 -40
  89. flwr/proto/control_pb2_grpc.pyi +185 -52
  90. flwr/proto/error_pb2.py +13 -3
  91. flwr/proto/error_pb2.pyi +24 -6
  92. flwr/proto/error_pb2_grpc.py +20 -0
  93. flwr/proto/error_pb2_grpc.pyi +27 -0
  94. flwr/proto/fab_pb2.py +14 -4
  95. flwr/proto/fab_pb2.pyi +59 -31
  96. flwr/proto/fab_pb2_grpc.py +20 -0
  97. flwr/proto/fab_pb2_grpc.pyi +27 -0
  98. flwr/proto/federation_pb2.py +38 -0
  99. flwr/proto/federation_pb2.pyi +56 -0
  100. flwr/proto/federation_pb2_grpc.py +24 -0
  101. flwr/proto/federation_pb2_grpc.pyi +31 -0
  102. flwr/proto/fleet_pb2.py +24 -14
  103. flwr/proto/fleet_pb2.pyi +141 -61
  104. flwr/proto/fleet_pb2_grpc.py +189 -48
  105. flwr/proto/fleet_pb2_grpc.pyi +175 -61
  106. flwr/proto/grpcadapter_pb2.py +14 -4
  107. flwr/proto/grpcadapter_pb2.pyi +38 -16
  108. flwr/proto/grpcadapter_pb2_grpc.py +35 -4
  109. flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
  110. flwr/proto/heartbeat_pb2.py +17 -7
  111. flwr/proto/heartbeat_pb2.pyi +51 -22
  112. flwr/proto/heartbeat_pb2_grpc.py +20 -0
  113. flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
  114. flwr/proto/log_pb2.py +13 -3
  115. flwr/proto/log_pb2.pyi +34 -11
  116. flwr/proto/log_pb2_grpc.py +20 -0
  117. flwr/proto/log_pb2_grpc.pyi +27 -0
  118. flwr/proto/message_pb2.py +15 -5
  119. flwr/proto/message_pb2.pyi +154 -86
  120. flwr/proto/message_pb2_grpc.py +20 -0
  121. flwr/proto/message_pb2_grpc.pyi +27 -0
  122. flwr/proto/node_pb2.py +15 -5
  123. flwr/proto/node_pb2.pyi +50 -25
  124. flwr/proto/node_pb2_grpc.py +20 -0
  125. flwr/proto/node_pb2_grpc.pyi +27 -0
  126. flwr/proto/recorddict_pb2.py +13 -3
  127. flwr/proto/recorddict_pb2.pyi +184 -107
  128. flwr/proto/recorddict_pb2_grpc.py +20 -0
  129. flwr/proto/recorddict_pb2_grpc.pyi +27 -0
  130. flwr/proto/run_pb2.py +40 -31
  131. flwr/proto/run_pb2.pyi +158 -84
  132. flwr/proto/run_pb2_grpc.py +20 -0
  133. flwr/proto/run_pb2_grpc.pyi +27 -0
  134. flwr/proto/serverappio_pb2.py +13 -3
  135. flwr/proto/serverappio_pb2.pyi +32 -8
  136. flwr/proto/serverappio_pb2_grpc.py +246 -65
  137. flwr/proto/serverappio_pb2_grpc.pyi +221 -85
  138. flwr/proto/simulationio_pb2.py +16 -8
  139. flwr/proto/simulationio_pb2.pyi +15 -0
  140. flwr/proto/simulationio_pb2_grpc.py +162 -41
  141. flwr/proto/simulationio_pb2_grpc.pyi +149 -55
  142. flwr/proto/transport_pb2.py +20 -10
  143. flwr/proto/transport_pb2.pyi +249 -160
  144. flwr/proto/transport_pb2_grpc.py +35 -4
  145. flwr/proto/transport_pb2_grpc.pyi +38 -8
  146. flwr/server/app.py +39 -17
  147. flwr/server/client_manager.py +4 -5
  148. flwr/server/client_proxy.py +10 -11
  149. flwr/server/compat/app.py +4 -5
  150. flwr/server/compat/app_utils.py +2 -1
  151. flwr/server/compat/grid_client_proxy.py +10 -12
  152. flwr/server/compat/legacy_context.py +3 -4
  153. flwr/server/fleet_event_log_interceptor.py +2 -1
  154. flwr/server/grid/grid.py +2 -3
  155. flwr/server/grid/grpc_grid.py +10 -8
  156. flwr/server/grid/inmemory_grid.py +4 -4
  157. flwr/server/run_serverapp.py +2 -3
  158. flwr/server/server.py +34 -39
  159. flwr/server/server_app.py +7 -8
  160. flwr/server/server_config.py +1 -2
  161. flwr/server/serverapp/app.py +34 -28
  162. flwr/server/serverapp_components.py +4 -5
  163. flwr/server/strategy/aggregate.py +9 -8
  164. flwr/server/strategy/bulyan.py +13 -11
  165. flwr/server/strategy/dp_adaptive_clipping.py +16 -20
  166. flwr/server/strategy/dp_fixed_clipping.py +12 -17
  167. flwr/server/strategy/dpfedavg_adaptive.py +3 -4
  168. flwr/server/strategy/dpfedavg_fixed.py +6 -10
  169. flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
  170. flwr/server/strategy/fedadagrad.py +18 -14
  171. flwr/server/strategy/fedadam.py +16 -14
  172. flwr/server/strategy/fedavg.py +16 -17
  173. flwr/server/strategy/fedavg_android.py +15 -15
  174. flwr/server/strategy/fedavgm.py +21 -18
  175. flwr/server/strategy/fedmedian.py +2 -3
  176. flwr/server/strategy/fedopt.py +11 -10
  177. flwr/server/strategy/fedprox.py +10 -9
  178. flwr/server/strategy/fedtrimmedavg.py +12 -11
  179. flwr/server/strategy/fedxgb_bagging.py +13 -11
  180. flwr/server/strategy/fedxgb_cyclic.py +6 -6
  181. flwr/server/strategy/fedxgb_nn_avg.py +4 -4
  182. flwr/server/strategy/fedyogi.py +16 -14
  183. flwr/server/strategy/krum.py +12 -11
  184. flwr/server/strategy/qfedavg.py +16 -15
  185. flwr/server/strategy/strategy.py +6 -9
  186. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +2 -1
  187. flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
  188. flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
  189. flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
  190. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
  191. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +4 -4
  192. flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +3 -2
  193. flwr/server/superlink/fleet/message_handler/message_handler.py +75 -30
  194. flwr/server/superlink/fleet/rest_rere/rest_api.py +2 -2
  195. flwr/server/superlink/fleet/vce/backend/backend.py +1 -1
  196. flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -5
  197. flwr/server/superlink/fleet/vce/vce_api.py +15 -9
  198. flwr/server/superlink/linkstate/in_memory_linkstate.py +148 -149
  199. flwr/server/superlink/linkstate/linkstate.py +91 -43
  200. flwr/server/superlink/linkstate/linkstate_factory.py +22 -5
  201. flwr/server/superlink/linkstate/sqlite_linkstate.py +502 -436
  202. flwr/server/superlink/linkstate/utils.py +6 -6
  203. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
  204. flwr/server/superlink/serverappio/serverappio_servicer.py +26 -21
  205. flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
  206. flwr/server/superlink/simulation/simulationio_servicer.py +18 -13
  207. flwr/server/superlink/utils.py +4 -6
  208. flwr/server/typing.py +1 -1
  209. flwr/server/utils/tensorboard.py +15 -8
  210. flwr/server/workflow/default_workflows.py +5 -5
  211. flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
  212. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +8 -8
  213. flwr/serverapp/strategy/bulyan.py +16 -15
  214. flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
  215. flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
  216. flwr/serverapp/strategy/fedadagrad.py +10 -11
  217. flwr/serverapp/strategy/fedadam.py +10 -11
  218. flwr/serverapp/strategy/fedavg.py +9 -10
  219. flwr/serverapp/strategy/fedavgm.py +17 -16
  220. flwr/serverapp/strategy/fedmedian.py +2 -2
  221. flwr/serverapp/strategy/fedopt.py +10 -11
  222. flwr/serverapp/strategy/fedprox.py +7 -8
  223. flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
  224. flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
  225. flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
  226. flwr/serverapp/strategy/fedyogi.py +9 -11
  227. flwr/serverapp/strategy/krum.py +7 -7
  228. flwr/serverapp/strategy/multikrum.py +9 -9
  229. flwr/serverapp/strategy/qfedavg.py +17 -16
  230. flwr/serverapp/strategy/strategy.py +6 -9
  231. flwr/serverapp/strategy/strategy_utils.py +7 -8
  232. flwr/simulation/app.py +46 -42
  233. flwr/simulation/legacy_app.py +12 -12
  234. flwr/simulation/ray_transport/ray_actor.py +10 -11
  235. flwr/simulation/ray_transport/ray_client_proxy.py +11 -12
  236. flwr/simulation/run_simulation.py +43 -43
  237. flwr/simulation/simulationio_connection.py +4 -4
  238. flwr/supercore/cli/flower_superexec.py +3 -4
  239. flwr/supercore/constant.py +34 -1
  240. flwr/supercore/corestate/corestate.py +24 -3
  241. flwr/supercore/corestate/in_memory_corestate.py +138 -0
  242. flwr/supercore/corestate/sqlite_corestate.py +157 -0
  243. flwr/supercore/ffs/disk_ffs.py +1 -2
  244. flwr/supercore/ffs/ffs.py +1 -2
  245. flwr/supercore/ffs/ffs_factory.py +1 -2
  246. flwr/{common → supercore}/heartbeat.py +20 -25
  247. flwr/supercore/object_store/in_memory_object_store.py +1 -2
  248. flwr/supercore/object_store/object_store.py +1 -2
  249. flwr/supercore/object_store/object_store_factory.py +1 -2
  250. flwr/supercore/object_store/sqlite_object_store.py +8 -7
  251. flwr/supercore/primitives/asymmetric.py +1 -1
  252. flwr/supercore/primitives/asymmetric_ed25519.py +11 -1
  253. flwr/supercore/sqlite_mixin.py +37 -34
  254. flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
  255. flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
  256. flwr/supercore/superexec/run_superexec.py +9 -13
  257. flwr/supercore/utils.py +190 -0
  258. flwr/superlink/artifact_provider/artifact_provider.py +1 -2
  259. flwr/superlink/auth_plugin/auth_plugin.py +6 -9
  260. flwr/superlink/auth_plugin/noop_auth_plugin.py +6 -9
  261. flwr/{cli/new/templates/app → superlink/federation}/__init__.py +10 -1
  262. flwr/superlink/federation/federation_manager.py +64 -0
  263. flwr/superlink/federation/noop_federation_manager.py +71 -0
  264. flwr/superlink/servicer/control/control_account_auth_interceptor.py +22 -13
  265. flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
  266. flwr/superlink/servicer/control/control_grpc.py +7 -6
  267. flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
  268. flwr/superlink/servicer/control/control_servicer.py +190 -23
  269. flwr/supernode/cli/flower_supernode.py +58 -3
  270. flwr/supernode/nodestate/in_memory_nodestate.py +121 -49
  271. flwr/supernode/nodestate/nodestate.py +52 -8
  272. flwr/supernode/nodestate/nodestate_factory.py +7 -4
  273. flwr/supernode/runtime/run_clientapp.py +41 -22
  274. flwr/supernode/servicer/clientappio/clientappio_servicer.py +46 -10
  275. flwr/supernode/start_client_internal.py +165 -46
  276. {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/METADATA +9 -11
  277. flwr-1.25.0.dist-info/RECORD +393 -0
  278. flwr/cli/new/templates/app/.gitignore.tpl +0 -163
  279. flwr/cli/new/templates/app/LICENSE.tpl +0 -202
  280. flwr/cli/new/templates/app/README.baseline.md.tpl +0 -127
  281. flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -68
  282. flwr/cli/new/templates/app/README.md.tpl +0 -37
  283. flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -1
  284. flwr/cli/new/templates/app/code/__init__.py +0 -15
  285. flwr/cli/new/templates/app/code/__init__.py.tpl +0 -1
  286. flwr/cli/new/templates/app/code/__init__.pytorch_legacy_api.py.tpl +0 -1
  287. flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -75
  288. flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -93
  289. flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -71
  290. flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -102
  291. flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -46
  292. flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -80
  293. flwr/cli/new/templates/app/code/client.pytorch_legacy_api.py.tpl +0 -55
  294. flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -108
  295. flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -82
  296. flwr/cli/new/templates/app/code/client.xgboost.py.tpl +0 -110
  297. flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -36
  298. flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -92
  299. flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -87
  300. flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -56
  301. flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -73
  302. flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -78
  303. flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -66
  304. flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -43
  305. flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -42
  306. flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -39
  307. flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -41
  308. flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -38
  309. flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -41
  310. flwr/cli/new/templates/app/code/server.pytorch_legacy_api.py.tpl +0 -31
  311. flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -44
  312. flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -38
  313. flwr/cli/new/templates/app/code/server.xgboost.py.tpl +0 -56
  314. flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -1
  315. flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -98
  316. flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -57
  317. flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -102
  318. flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -7
  319. flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -98
  320. flwr/cli/new/templates/app/code/task.pytorch_legacy_api.py.tpl +0 -111
  321. flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -67
  322. flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -52
  323. flwr/cli/new/templates/app/code/task.xgboost.py.tpl +0 -67
  324. flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -1
  325. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -146
  326. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -80
  327. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -65
  328. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -52
  329. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -56
  330. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -49
  331. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -53
  332. flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +0 -53
  333. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -52
  334. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -53
  335. flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +0 -61
  336. flwr/supercore/object_store/utils.py +0 -43
  337. flwr-1.23.0.dist-info/RECORD +0 -439
  338. {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/WHEEL +0 -0
  339. {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/entry_points.txt +0 -0
@@ -1,11 +1,32 @@
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 appio_pb2 as flwr_dot_proto_dot_appio__pb2
7
+ from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
6
8
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
7
9
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
8
10
 
11
+ GRPC_GENERATED_VERSION = '1.70.0'
12
+ GRPC_VERSION = grpc.__version__
13
+ _version_not_supported = False
14
+
15
+ try:
16
+ from grpc._utilities import first_version_is_lower
17
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
18
+ except ImportError:
19
+ _version_not_supported = True
20
+
21
+ if _version_not_supported:
22
+ raise RuntimeError(
23
+ f'The grpc package installed is at version {GRPC_VERSION},'
24
+ + f' but the generated code in flwr/proto/clientappio_pb2_grpc.py depends on'
25
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
26
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
27
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
28
+ )
29
+
9
30
 
10
31
  class ClientAppIoStub(object):
11
32
  """Missing associated documentation comment in .proto file."""
@@ -20,52 +41,57 @@ class ClientAppIoStub(object):
20
41
  '/flwr.proto.ClientAppIo/ListAppsToLaunch',
21
42
  request_serializer=flwr_dot_proto_dot_appio__pb2.ListAppsToLaunchRequest.SerializeToString,
22
43
  response_deserializer=flwr_dot_proto_dot_appio__pb2.ListAppsToLaunchResponse.FromString,
23
- )
44
+ _registered_method=True)
24
45
  self.RequestToken = channel.unary_unary(
25
46
  '/flwr.proto.ClientAppIo/RequestToken',
26
47
  request_serializer=flwr_dot_proto_dot_appio__pb2.RequestTokenRequest.SerializeToString,
27
48
  response_deserializer=flwr_dot_proto_dot_appio__pb2.RequestTokenResponse.FromString,
28
- )
49
+ _registered_method=True)
29
50
  self.GetRun = channel.unary_unary(
30
51
  '/flwr.proto.ClientAppIo/GetRun',
31
52
  request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
32
53
  response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
33
- )
54
+ _registered_method=True)
34
55
  self.PullClientAppInputs = channel.unary_unary(
35
56
  '/flwr.proto.ClientAppIo/PullClientAppInputs',
36
57
  request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
37
58
  response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
38
- )
59
+ _registered_method=True)
39
60
  self.PushClientAppOutputs = channel.unary_unary(
40
61
  '/flwr.proto.ClientAppIo/PushClientAppOutputs',
41
62
  request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
42
63
  response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
43
- )
64
+ _registered_method=True)
44
65
  self.PushMessage = channel.unary_unary(
45
66
  '/flwr.proto.ClientAppIo/PushMessage',
46
67
  request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
47
68
  response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
48
- )
69
+ _registered_method=True)
49
70
  self.PullMessage = channel.unary_unary(
50
71
  '/flwr.proto.ClientAppIo/PullMessage',
51
72
  request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
52
73
  response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
53
- )
74
+ _registered_method=True)
75
+ self.SendAppHeartbeat = channel.unary_unary(
76
+ '/flwr.proto.ClientAppIo/SendAppHeartbeat',
77
+ request_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.SerializeToString,
78
+ response_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.FromString,
79
+ _registered_method=True)
54
80
  self.PushObject = channel.unary_unary(
55
81
  '/flwr.proto.ClientAppIo/PushObject',
56
82
  request_serializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
57
83
  response_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
58
- )
84
+ _registered_method=True)
59
85
  self.PullObject = channel.unary_unary(
60
86
  '/flwr.proto.ClientAppIo/PullObject',
61
87
  request_serializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
62
88
  response_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
63
- )
89
+ _registered_method=True)
64
90
  self.ConfirmMessageReceived = channel.unary_unary(
65
91
  '/flwr.proto.ClientAppIo/ConfirmMessageReceived',
66
92
  request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
67
93
  response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
68
- )
94
+ _registered_method=True)
69
95
 
70
96
 
71
97
  class ClientAppIoServicer(object):
@@ -120,6 +146,13 @@ class ClientAppIoServicer(object):
120
146
  context.set_details('Method not implemented!')
121
147
  raise NotImplementedError('Method not implemented!')
122
148
 
149
+ def SendAppHeartbeat(self, request, context):
150
+ """App heartbeat
151
+ """
152
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
153
+ context.set_details('Method not implemented!')
154
+ raise NotImplementedError('Method not implemented!')
155
+
123
156
  def PushObject(self, request, context):
124
157
  """Push Object
125
158
  """
@@ -179,6 +212,11 @@ def add_ClientAppIoServicer_to_server(servicer, server):
179
212
  request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
180
213
  response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
181
214
  ),
215
+ 'SendAppHeartbeat': grpc.unary_unary_rpc_method_handler(
216
+ servicer.SendAppHeartbeat,
217
+ request_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.FromString,
218
+ response_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.SerializeToString,
219
+ ),
182
220
  'PushObject': grpc.unary_unary_rpc_method_handler(
183
221
  servicer.PushObject,
184
222
  request_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.FromString,
@@ -198,6 +236,7 @@ def add_ClientAppIoServicer_to_server(servicer, server):
198
236
  generic_handler = grpc.method_handlers_generic_handler(
199
237
  'flwr.proto.ClientAppIo', rpc_method_handlers)
200
238
  server.add_generic_rpc_handlers((generic_handler,))
239
+ server.add_registered_method_handlers('flwr.proto.ClientAppIo', rpc_method_handlers)
201
240
 
202
241
 
203
242
  # This class is part of an EXPERIMENTAL API.
@@ -215,11 +254,21 @@ class ClientAppIo(object):
215
254
  wait_for_ready=None,
216
255
  timeout=None,
217
256
  metadata=None):
218
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/ListAppsToLaunch',
257
+ return grpc.experimental.unary_unary(
258
+ request,
259
+ target,
260
+ '/flwr.proto.ClientAppIo/ListAppsToLaunch',
219
261
  flwr_dot_proto_dot_appio__pb2.ListAppsToLaunchRequest.SerializeToString,
220
262
  flwr_dot_proto_dot_appio__pb2.ListAppsToLaunchResponse.FromString,
221
- options, channel_credentials,
222
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
263
+ options,
264
+ channel_credentials,
265
+ insecure,
266
+ call_credentials,
267
+ compression,
268
+ wait_for_ready,
269
+ timeout,
270
+ metadata,
271
+ _registered_method=True)
223
272
 
224
273
  @staticmethod
225
274
  def RequestToken(request,
@@ -232,11 +281,21 @@ class ClientAppIo(object):
232
281
  wait_for_ready=None,
233
282
  timeout=None,
234
283
  metadata=None):
235
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/RequestToken',
284
+ return grpc.experimental.unary_unary(
285
+ request,
286
+ target,
287
+ '/flwr.proto.ClientAppIo/RequestToken',
236
288
  flwr_dot_proto_dot_appio__pb2.RequestTokenRequest.SerializeToString,
237
289
  flwr_dot_proto_dot_appio__pb2.RequestTokenResponse.FromString,
238
- options, channel_credentials,
239
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
290
+ options,
291
+ channel_credentials,
292
+ insecure,
293
+ call_credentials,
294
+ compression,
295
+ wait_for_ready,
296
+ timeout,
297
+ metadata,
298
+ _registered_method=True)
240
299
 
241
300
  @staticmethod
242
301
  def GetRun(request,
@@ -249,11 +308,21 @@ class ClientAppIo(object):
249
308
  wait_for_ready=None,
250
309
  timeout=None,
251
310
  metadata=None):
252
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/GetRun',
311
+ return grpc.experimental.unary_unary(
312
+ request,
313
+ target,
314
+ '/flwr.proto.ClientAppIo/GetRun',
253
315
  flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
254
316
  flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
255
- options, channel_credentials,
256
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
317
+ options,
318
+ channel_credentials,
319
+ insecure,
320
+ call_credentials,
321
+ compression,
322
+ wait_for_ready,
323
+ timeout,
324
+ metadata,
325
+ _registered_method=True)
257
326
 
258
327
  @staticmethod
259
328
  def PullClientAppInputs(request,
@@ -266,11 +335,21 @@ class ClientAppIo(object):
266
335
  wait_for_ready=None,
267
336
  timeout=None,
268
337
  metadata=None):
269
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullClientAppInputs',
338
+ return grpc.experimental.unary_unary(
339
+ request,
340
+ target,
341
+ '/flwr.proto.ClientAppIo/PullClientAppInputs',
270
342
  flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
271
343
  flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
272
- options, channel_credentials,
273
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
344
+ options,
345
+ channel_credentials,
346
+ insecure,
347
+ call_credentials,
348
+ compression,
349
+ wait_for_ready,
350
+ timeout,
351
+ metadata,
352
+ _registered_method=True)
274
353
 
275
354
  @staticmethod
276
355
  def PushClientAppOutputs(request,
@@ -283,11 +362,21 @@ class ClientAppIo(object):
283
362
  wait_for_ready=None,
284
363
  timeout=None,
285
364
  metadata=None):
286
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushClientAppOutputs',
365
+ return grpc.experimental.unary_unary(
366
+ request,
367
+ target,
368
+ '/flwr.proto.ClientAppIo/PushClientAppOutputs',
287
369
  flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
288
370
  flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
289
- options, channel_credentials,
290
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
371
+ options,
372
+ channel_credentials,
373
+ insecure,
374
+ call_credentials,
375
+ compression,
376
+ wait_for_ready,
377
+ timeout,
378
+ metadata,
379
+ _registered_method=True)
291
380
 
292
381
  @staticmethod
293
382
  def PushMessage(request,
@@ -300,11 +389,21 @@ class ClientAppIo(object):
300
389
  wait_for_ready=None,
301
390
  timeout=None,
302
391
  metadata=None):
303
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushMessage',
392
+ return grpc.experimental.unary_unary(
393
+ request,
394
+ target,
395
+ '/flwr.proto.ClientAppIo/PushMessage',
304
396
  flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
305
397
  flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
306
- options, channel_credentials,
307
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
398
+ options,
399
+ channel_credentials,
400
+ insecure,
401
+ call_credentials,
402
+ compression,
403
+ wait_for_ready,
404
+ timeout,
405
+ metadata,
406
+ _registered_method=True)
308
407
 
309
408
  @staticmethod
310
409
  def PullMessage(request,
@@ -317,11 +416,48 @@ class ClientAppIo(object):
317
416
  wait_for_ready=None,
318
417
  timeout=None,
319
418
  metadata=None):
320
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullMessage',
419
+ return grpc.experimental.unary_unary(
420
+ request,
421
+ target,
422
+ '/flwr.proto.ClientAppIo/PullMessage',
321
423
  flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
322
424
  flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
323
- options, channel_credentials,
324
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
425
+ options,
426
+ channel_credentials,
427
+ insecure,
428
+ call_credentials,
429
+ compression,
430
+ wait_for_ready,
431
+ timeout,
432
+ metadata,
433
+ _registered_method=True)
434
+
435
+ @staticmethod
436
+ def SendAppHeartbeat(request,
437
+ target,
438
+ options=(),
439
+ channel_credentials=None,
440
+ call_credentials=None,
441
+ insecure=False,
442
+ compression=None,
443
+ wait_for_ready=None,
444
+ timeout=None,
445
+ metadata=None):
446
+ return grpc.experimental.unary_unary(
447
+ request,
448
+ target,
449
+ '/flwr.proto.ClientAppIo/SendAppHeartbeat',
450
+ flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.SerializeToString,
451
+ flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.FromString,
452
+ options,
453
+ channel_credentials,
454
+ insecure,
455
+ call_credentials,
456
+ compression,
457
+ wait_for_ready,
458
+ timeout,
459
+ metadata,
460
+ _registered_method=True)
325
461
 
326
462
  @staticmethod
327
463
  def PushObject(request,
@@ -334,11 +470,21 @@ class ClientAppIo(object):
334
470
  wait_for_ready=None,
335
471
  timeout=None,
336
472
  metadata=None):
337
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushObject',
473
+ return grpc.experimental.unary_unary(
474
+ request,
475
+ target,
476
+ '/flwr.proto.ClientAppIo/PushObject',
338
477
  flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
339
478
  flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
340
- options, channel_credentials,
341
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
479
+ options,
480
+ channel_credentials,
481
+ insecure,
482
+ call_credentials,
483
+ compression,
484
+ wait_for_ready,
485
+ timeout,
486
+ metadata,
487
+ _registered_method=True)
342
488
 
343
489
  @staticmethod
344
490
  def PullObject(request,
@@ -351,11 +497,21 @@ class ClientAppIo(object):
351
497
  wait_for_ready=None,
352
498
  timeout=None,
353
499
  metadata=None):
354
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullObject',
500
+ return grpc.experimental.unary_unary(
501
+ request,
502
+ target,
503
+ '/flwr.proto.ClientAppIo/PullObject',
355
504
  flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
356
505
  flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
357
- options, channel_credentials,
358
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
506
+ options,
507
+ channel_credentials,
508
+ insecure,
509
+ call_credentials,
510
+ compression,
511
+ wait_for_ready,
512
+ timeout,
513
+ metadata,
514
+ _registered_method=True)
359
515
 
360
516
  @staticmethod
361
517
  def ConfirmMessageReceived(request,
@@ -368,8 +524,18 @@ class ClientAppIo(object):
368
524
  wait_for_ready=None,
369
525
  timeout=None,
370
526
  metadata=None):
371
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/ConfirmMessageReceived',
527
+ return grpc.experimental.unary_unary(
528
+ request,
529
+ target,
530
+ '/flwr.proto.ClientAppIo/ConfirmMessageReceived',
372
531
  flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
373
532
  flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
374
- options, channel_credentials,
375
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
533
+ options,
534
+ channel_credentials,
535
+ insecure,
536
+ call_credentials,
537
+ compression,
538
+ wait_for_ready,
539
+ timeout,
540
+ metadata,
541
+ _registered_method=True)