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,9 +1,26 @@
1
1
  """
2
2
  @generated by mypy-protobuf. Do not edit manually!
3
3
  isort:skip_file
4
+ Copyright 2024 Flower Labs GmbH. All Rights Reserved.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ ==============================================================================
4
18
  """
19
+
5
20
  import builtins
21
+ import collections.abc
6
22
  import flwr.proto.fab_pb2
23
+ import flwr.proto.federation_pb2
7
24
  import flwr.proto.node_pb2
8
25
  import flwr.proto.recorddict_pb2
9
26
  import flwr.proto.run_pb2
@@ -12,291 +29,440 @@ import google.protobuf.descriptor
12
29
  import google.protobuf.internal.containers
13
30
  import google.protobuf.message
14
31
  import typing
15
- import typing_extensions
16
32
 
17
33
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
18
34
 
35
+ @typing.final
19
36
  class StartRunRequest(google.protobuf.message.Message):
20
37
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
38
+
39
+ @typing.final
21
40
  class OverrideConfigEntry(google.protobuf.message.Message):
22
41
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
42
+
23
43
  KEY_FIELD_NUMBER: builtins.int
24
44
  VALUE_FIELD_NUMBER: builtins.int
25
- key: typing.Text
45
+ key: builtins.str
26
46
  @property
27
47
  def value(self) -> flwr.proto.transport_pb2.Scalar: ...
28
- def __init__(self,
48
+ def __init__(
49
+ self,
29
50
  *,
30
- key: typing.Text = ...,
31
- value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
32
- ) -> None: ...
33
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
34
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
51
+ key: builtins.str = ...,
52
+ value: flwr.proto.transport_pb2.Scalar | None = ...,
53
+ ) -> None: ...
54
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
55
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
35
56
 
36
57
  FAB_FIELD_NUMBER: builtins.int
37
58
  OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
38
59
  FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
39
- APP_ID_FIELD_NUMBER: builtins.int
60
+ APP_SPEC_FIELD_NUMBER: builtins.int
61
+ FEDERATION_FIELD_NUMBER: builtins.int
62
+ app_spec: builtins.str
63
+ federation: builtins.str
40
64
  @property
41
65
  def fab(self) -> flwr.proto.fab_pb2.Fab: ...
42
66
  @property
43
- def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
67
+ def override_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
44
68
  @property
45
69
  def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigRecord: ...
46
- app_id: typing.Text
47
- def __init__(self,
70
+ def __init__(
71
+ self,
48
72
  *,
49
- fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
50
- override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
51
- federation_options: typing.Optional[flwr.proto.recorddict_pb2.ConfigRecord] = ...,
52
- app_id: typing.Text = ...,
53
- ) -> None: ...
54
- def HasField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options"]) -> builtins.bool: ...
55
- def ClearField(self, field_name: typing_extensions.Literal["app_id",b"app_id","fab",b"fab","federation_options",b"federation_options","override_config",b"override_config"]) -> None: ...
73
+ fab: flwr.proto.fab_pb2.Fab | None = ...,
74
+ override_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
75
+ federation_options: flwr.proto.recorddict_pb2.ConfigRecord | None = ...,
76
+ app_spec: builtins.str = ...,
77
+ federation: builtins.str = ...,
78
+ ) -> None: ...
79
+ def HasField(self, field_name: typing.Literal["fab", b"fab", "federation_options", b"federation_options"]) -> builtins.bool: ...
80
+ def ClearField(self, field_name: typing.Literal["app_spec", b"app_spec", "fab", b"fab", "federation", b"federation", "federation_options", b"federation_options", "override_config", b"override_config"]) -> None: ...
81
+
56
82
  global___StartRunRequest = StartRunRequest
57
83
 
84
+ @typing.final
58
85
  class StartRunResponse(google.protobuf.message.Message):
59
86
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
87
+
60
88
  RUN_ID_FIELD_NUMBER: builtins.int
61
89
  run_id: builtins.int
62
- def __init__(self,
90
+ def __init__(
91
+ self,
63
92
  *,
64
- run_id: typing.Optional[builtins.int] = ...,
65
- ) -> None: ...
66
- def HasField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> builtins.bool: ...
67
- def ClearField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> None: ...
68
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_run_id",b"_run_id"]) -> typing.Optional[typing_extensions.Literal["run_id"]]: ...
93
+ run_id: builtins.int | None = ...,
94
+ ) -> None: ...
95
+ def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
96
+ def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
97
+ def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...
98
+
69
99
  global___StartRunResponse = StartRunResponse
70
100
 
101
+ @typing.final
71
102
  class StreamLogsRequest(google.protobuf.message.Message):
72
103
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
104
+
73
105
  RUN_ID_FIELD_NUMBER: builtins.int
74
106
  AFTER_TIMESTAMP_FIELD_NUMBER: builtins.int
75
107
  run_id: builtins.int
76
108
  after_timestamp: builtins.float
77
- def __init__(self,
109
+ def __init__(
110
+ self,
78
111
  *,
79
112
  run_id: builtins.int = ...,
80
113
  after_timestamp: builtins.float = ...,
81
- ) -> None: ...
82
- def ClearField(self, field_name: typing_extensions.Literal["after_timestamp",b"after_timestamp","run_id",b"run_id"]) -> None: ...
114
+ ) -> None: ...
115
+ def ClearField(self, field_name: typing.Literal["after_timestamp", b"after_timestamp", "run_id", b"run_id"]) -> None: ...
116
+
83
117
  global___StreamLogsRequest = StreamLogsRequest
84
118
 
119
+ @typing.final
85
120
  class StreamLogsResponse(google.protobuf.message.Message):
86
121
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
122
+
87
123
  LOG_OUTPUT_FIELD_NUMBER: builtins.int
88
124
  LATEST_TIMESTAMP_FIELD_NUMBER: builtins.int
89
- log_output: typing.Text
125
+ log_output: builtins.str
90
126
  latest_timestamp: builtins.float
91
- def __init__(self,
127
+ def __init__(
128
+ self,
92
129
  *,
93
- log_output: typing.Text = ...,
130
+ log_output: builtins.str = ...,
94
131
  latest_timestamp: builtins.float = ...,
95
- ) -> None: ...
96
- def ClearField(self, field_name: typing_extensions.Literal["latest_timestamp",b"latest_timestamp","log_output",b"log_output"]) -> None: ...
132
+ ) -> None: ...
133
+ def ClearField(self, field_name: typing.Literal["latest_timestamp", b"latest_timestamp", "log_output", b"log_output"]) -> None: ...
134
+
97
135
  global___StreamLogsResponse = StreamLogsResponse
98
136
 
137
+ @typing.final
99
138
  class ListRunsRequest(google.protobuf.message.Message):
100
139
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
140
+
101
141
  RUN_ID_FIELD_NUMBER: builtins.int
102
142
  run_id: builtins.int
103
- def __init__(self,
143
+ def __init__(
144
+ self,
104
145
  *,
105
- run_id: typing.Optional[builtins.int] = ...,
106
- ) -> None: ...
107
- def HasField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> builtins.bool: ...
108
- def ClearField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> None: ...
109
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_run_id",b"_run_id"]) -> typing.Optional[typing_extensions.Literal["run_id"]]: ...
146
+ run_id: builtins.int | None = ...,
147
+ ) -> None: ...
148
+ def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
149
+ def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
150
+ def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...
151
+
110
152
  global___ListRunsRequest = ListRunsRequest
111
153
 
154
+ @typing.final
112
155
  class ListRunsResponse(google.protobuf.message.Message):
113
156
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
157
+
158
+ @typing.final
114
159
  class RunDictEntry(google.protobuf.message.Message):
115
160
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
161
+
116
162
  KEY_FIELD_NUMBER: builtins.int
117
163
  VALUE_FIELD_NUMBER: builtins.int
118
164
  key: builtins.int
119
165
  @property
120
166
  def value(self) -> flwr.proto.run_pb2.Run: ...
121
- def __init__(self,
167
+ def __init__(
168
+ self,
122
169
  *,
123
170
  key: builtins.int = ...,
124
- value: typing.Optional[flwr.proto.run_pb2.Run] = ...,
125
- ) -> None: ...
126
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
127
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
171
+ value: flwr.proto.run_pb2.Run | None = ...,
172
+ ) -> None: ...
173
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
174
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
128
175
 
129
176
  RUN_DICT_FIELD_NUMBER: builtins.int
130
177
  NOW_FIELD_NUMBER: builtins.int
178
+ now: builtins.str
131
179
  @property
132
180
  def run_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, flwr.proto.run_pb2.Run]: ...
133
- now: typing.Text
134
- def __init__(self,
181
+ def __init__(
182
+ self,
135
183
  *,
136
- run_dict: typing.Optional[typing.Mapping[builtins.int, flwr.proto.run_pb2.Run]] = ...,
137
- now: typing.Text = ...,
138
- ) -> None: ...
139
- def ClearField(self, field_name: typing_extensions.Literal["now",b"now","run_dict",b"run_dict"]) -> None: ...
184
+ run_dict: collections.abc.Mapping[builtins.int, flwr.proto.run_pb2.Run] | None = ...,
185
+ now: builtins.str = ...,
186
+ ) -> None: ...
187
+ def ClearField(self, field_name: typing.Literal["now", b"now", "run_dict", b"run_dict"]) -> None: ...
188
+
140
189
  global___ListRunsResponse = ListRunsResponse
141
190
 
191
+ @typing.final
142
192
  class GetLoginDetailsRequest(google.protobuf.message.Message):
143
193
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
144
- def __init__(self,
145
- ) -> None: ...
194
+
195
+ def __init__(
196
+ self,
197
+ ) -> None: ...
198
+
146
199
  global___GetLoginDetailsRequest = GetLoginDetailsRequest
147
200
 
201
+ @typing.final
148
202
  class GetLoginDetailsResponse(google.protobuf.message.Message):
149
203
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
204
+
150
205
  AUTHN_TYPE_FIELD_NUMBER: builtins.int
151
206
  DEVICE_CODE_FIELD_NUMBER: builtins.int
152
207
  VERIFICATION_URI_COMPLETE_FIELD_NUMBER: builtins.int
153
208
  EXPIRES_IN_FIELD_NUMBER: builtins.int
154
209
  INTERVAL_FIELD_NUMBER: builtins.int
155
- authn_type: typing.Text
156
- device_code: typing.Text
157
- verification_uri_complete: typing.Text
210
+ authn_type: builtins.str
211
+ device_code: builtins.str
212
+ verification_uri_complete: builtins.str
158
213
  expires_in: builtins.int
159
214
  interval: builtins.int
160
- def __init__(self,
215
+ def __init__(
216
+ self,
161
217
  *,
162
- authn_type: typing.Text = ...,
163
- device_code: typing.Text = ...,
164
- verification_uri_complete: typing.Text = ...,
218
+ authn_type: builtins.str = ...,
219
+ device_code: builtins.str = ...,
220
+ verification_uri_complete: builtins.str = ...,
165
221
  expires_in: builtins.int = ...,
166
222
  interval: builtins.int = ...,
167
- ) -> None: ...
168
- def ClearField(self, field_name: typing_extensions.Literal["authn_type",b"authn_type","device_code",b"device_code","expires_in",b"expires_in","interval",b"interval","verification_uri_complete",b"verification_uri_complete"]) -> None: ...
223
+ ) -> None: ...
224
+ def ClearField(self, field_name: typing.Literal["authn_type", b"authn_type", "device_code", b"device_code", "expires_in", b"expires_in", "interval", b"interval", "verification_uri_complete", b"verification_uri_complete"]) -> None: ...
225
+
169
226
  global___GetLoginDetailsResponse = GetLoginDetailsResponse
170
227
 
228
+ @typing.final
171
229
  class GetAuthTokensRequest(google.protobuf.message.Message):
172
230
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
231
+
173
232
  DEVICE_CODE_FIELD_NUMBER: builtins.int
174
- device_code: typing.Text
175
- def __init__(self,
233
+ device_code: builtins.str
234
+ def __init__(
235
+ self,
176
236
  *,
177
- device_code: typing.Text = ...,
178
- ) -> None: ...
179
- def ClearField(self, field_name: typing_extensions.Literal["device_code",b"device_code"]) -> None: ...
237
+ device_code: builtins.str = ...,
238
+ ) -> None: ...
239
+ def ClearField(self, field_name: typing.Literal["device_code", b"device_code"]) -> None: ...
240
+
180
241
  global___GetAuthTokensRequest = GetAuthTokensRequest
181
242
 
243
+ @typing.final
182
244
  class GetAuthTokensResponse(google.protobuf.message.Message):
183
245
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
246
+
184
247
  ACCESS_TOKEN_FIELD_NUMBER: builtins.int
185
248
  REFRESH_TOKEN_FIELD_NUMBER: builtins.int
186
- access_token: typing.Text
187
- refresh_token: typing.Text
188
- def __init__(self,
249
+ access_token: builtins.str
250
+ refresh_token: builtins.str
251
+ def __init__(
252
+ self,
189
253
  *,
190
- access_token: typing.Text = ...,
191
- refresh_token: typing.Text = ...,
192
- ) -> None: ...
193
- def ClearField(self, field_name: typing_extensions.Literal["access_token",b"access_token","refresh_token",b"refresh_token"]) -> None: ...
254
+ access_token: builtins.str = ...,
255
+ refresh_token: builtins.str = ...,
256
+ ) -> None: ...
257
+ def ClearField(self, field_name: typing.Literal["access_token", b"access_token", "refresh_token", b"refresh_token"]) -> None: ...
258
+
194
259
  global___GetAuthTokensResponse = GetAuthTokensResponse
195
260
 
261
+ @typing.final
196
262
  class StopRunRequest(google.protobuf.message.Message):
197
263
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
264
+
198
265
  RUN_ID_FIELD_NUMBER: builtins.int
199
266
  run_id: builtins.int
200
- def __init__(self,
267
+ def __init__(
268
+ self,
201
269
  *,
202
270
  run_id: builtins.int = ...,
203
- ) -> None: ...
204
- def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
271
+ ) -> None: ...
272
+ def ClearField(self, field_name: typing.Literal["run_id", b"run_id"]) -> None: ...
273
+
205
274
  global___StopRunRequest = StopRunRequest
206
275
 
276
+ @typing.final
207
277
  class StopRunResponse(google.protobuf.message.Message):
208
278
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
279
+
209
280
  SUCCESS_FIELD_NUMBER: builtins.int
210
281
  success: builtins.bool
211
- def __init__(self,
282
+ def __init__(
283
+ self,
212
284
  *,
213
285
  success: builtins.bool = ...,
214
- ) -> None: ...
215
- def ClearField(self, field_name: typing_extensions.Literal["success",b"success"]) -> None: ...
286
+ ) -> None: ...
287
+ def ClearField(self, field_name: typing.Literal["success", b"success"]) -> None: ...
288
+
216
289
  global___StopRunResponse = StopRunResponse
217
290
 
291
+ @typing.final
218
292
  class PullArtifactsRequest(google.protobuf.message.Message):
219
293
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
294
+
220
295
  RUN_ID_FIELD_NUMBER: builtins.int
221
296
  run_id: builtins.int
222
- def __init__(self,
297
+ def __init__(
298
+ self,
223
299
  *,
224
300
  run_id: builtins.int = ...,
225
- ) -> None: ...
226
- def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
301
+ ) -> None: ...
302
+ def ClearField(self, field_name: typing.Literal["run_id", b"run_id"]) -> None: ...
303
+
227
304
  global___PullArtifactsRequest = PullArtifactsRequest
228
305
 
306
+ @typing.final
229
307
  class PullArtifactsResponse(google.protobuf.message.Message):
230
308
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
309
+
231
310
  URL_FIELD_NUMBER: builtins.int
232
- url: typing.Text
233
- def __init__(self,
311
+ url: builtins.str
312
+ def __init__(
313
+ self,
234
314
  *,
235
- url: typing.Optional[typing.Text] = ...,
236
- ) -> None: ...
237
- def HasField(self, field_name: typing_extensions.Literal["_url",b"_url","url",b"url"]) -> builtins.bool: ...
238
- def ClearField(self, field_name: typing_extensions.Literal["_url",b"_url","url",b"url"]) -> None: ...
239
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_url",b"_url"]) -> typing.Optional[typing_extensions.Literal["url"]]: ...
315
+ url: builtins.str | None = ...,
316
+ ) -> None: ...
317
+ def HasField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> builtins.bool: ...
318
+ def ClearField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> None: ...
319
+ def WhichOneof(self, oneof_group: typing.Literal["_url", b"_url"]) -> typing.Literal["url"] | None: ...
320
+
240
321
  global___PullArtifactsResponse = PullArtifactsResponse
241
322
 
323
+ @typing.final
242
324
  class RegisterNodeRequest(google.protobuf.message.Message):
243
325
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
326
+
244
327
  PUBLIC_KEY_FIELD_NUMBER: builtins.int
245
328
  public_key: builtins.bytes
246
- def __init__(self,
329
+ def __init__(
330
+ self,
247
331
  *,
248
332
  public_key: builtins.bytes = ...,
249
- ) -> None: ...
250
- def ClearField(self, field_name: typing_extensions.Literal["public_key",b"public_key"]) -> None: ...
333
+ ) -> None: ...
334
+ def ClearField(self, field_name: typing.Literal["public_key", b"public_key"]) -> None: ...
335
+
251
336
  global___RegisterNodeRequest = RegisterNodeRequest
252
337
 
338
+ @typing.final
253
339
  class RegisterNodeResponse(google.protobuf.message.Message):
254
340
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
341
+
255
342
  NODE_ID_FIELD_NUMBER: builtins.int
256
343
  node_id: builtins.int
257
- def __init__(self,
344
+ def __init__(
345
+ self,
258
346
  *,
259
- node_id: typing.Optional[builtins.int] = ...,
260
- ) -> None: ...
261
- def HasField(self, field_name: typing_extensions.Literal["_node_id",b"_node_id","node_id",b"node_id"]) -> builtins.bool: ...
262
- def ClearField(self, field_name: typing_extensions.Literal["_node_id",b"_node_id","node_id",b"node_id"]) -> None: ...
263
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_node_id",b"_node_id"]) -> typing.Optional[typing_extensions.Literal["node_id"]]: ...
347
+ node_id: builtins.int | None = ...,
348
+ ) -> None: ...
349
+ def HasField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> builtins.bool: ...
350
+ def ClearField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> None: ...
351
+ def WhichOneof(self, oneof_group: typing.Literal["_node_id", b"_node_id"]) -> typing.Literal["node_id"] | None: ...
352
+
264
353
  global___RegisterNodeResponse = RegisterNodeResponse
265
354
 
355
+ @typing.final
266
356
  class UnregisterNodeRequest(google.protobuf.message.Message):
267
357
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
358
+
268
359
  NODE_ID_FIELD_NUMBER: builtins.int
269
360
  node_id: builtins.int
270
- def __init__(self,
361
+ def __init__(
362
+ self,
271
363
  *,
272
364
  node_id: builtins.int = ...,
273
- ) -> None: ...
274
- def ClearField(self, field_name: typing_extensions.Literal["node_id",b"node_id"]) -> None: ...
365
+ ) -> None: ...
366
+ def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
367
+
275
368
  global___UnregisterNodeRequest = UnregisterNodeRequest
276
369
 
370
+ @typing.final
277
371
  class UnregisterNodeResponse(google.protobuf.message.Message):
278
372
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
279
- def __init__(self,
280
- ) -> None: ...
373
+
374
+ def __init__(
375
+ self,
376
+ ) -> None: ...
377
+
281
378
  global___UnregisterNodeResponse = UnregisterNodeResponse
282
379
 
380
+ @typing.final
283
381
  class ListNodesRequest(google.protobuf.message.Message):
284
382
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
285
- def __init__(self,
286
- ) -> None: ...
383
+
384
+ def __init__(
385
+ self,
386
+ ) -> None: ...
387
+
287
388
  global___ListNodesRequest = ListNodesRequest
288
389
 
390
+ @typing.final
289
391
  class ListNodesResponse(google.protobuf.message.Message):
290
392
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
393
+
291
394
  NODES_INFO_FIELD_NUMBER: builtins.int
292
395
  NOW_FIELD_NUMBER: builtins.int
396
+ now: builtins.str
293
397
  @property
294
398
  def nodes_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
295
- now: typing.Text
296
- def __init__(self,
399
+ def __init__(
400
+ self,
297
401
  *,
298
- nodes_info: typing.Optional[typing.Iterable[flwr.proto.node_pb2.NodeInfo]] = ...,
299
- now: typing.Text = ...,
300
- ) -> None: ...
301
- def ClearField(self, field_name: typing_extensions.Literal["nodes_info",b"nodes_info","now",b"now"]) -> None: ...
402
+ nodes_info: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
403
+ now: builtins.str = ...,
404
+ ) -> None: ...
405
+ def ClearField(self, field_name: typing.Literal["nodes_info", b"nodes_info", "now", b"now"]) -> None: ...
406
+
302
407
  global___ListNodesResponse = ListNodesResponse
408
+
409
+ @typing.final
410
+ class ListFederationsRequest(google.protobuf.message.Message):
411
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
412
+
413
+ def __init__(
414
+ self,
415
+ ) -> None: ...
416
+
417
+ global___ListFederationsRequest = ListFederationsRequest
418
+
419
+ @typing.final
420
+ class ListFederationsResponse(google.protobuf.message.Message):
421
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
422
+
423
+ FEDERATIONS_FIELD_NUMBER: builtins.int
424
+ @property
425
+ def federations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.federation_pb2.Federation]: ...
426
+ def __init__(
427
+ self,
428
+ *,
429
+ federations: collections.abc.Iterable[flwr.proto.federation_pb2.Federation] | None = ...,
430
+ ) -> None: ...
431
+ def ClearField(self, field_name: typing.Literal["federations", b"federations"]) -> None: ...
432
+
433
+ global___ListFederationsResponse = ListFederationsResponse
434
+
435
+ @typing.final
436
+ class ShowFederationRequest(google.protobuf.message.Message):
437
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
438
+
439
+ FEDERATION_NAME_FIELD_NUMBER: builtins.int
440
+ federation_name: builtins.str
441
+ def __init__(
442
+ self,
443
+ *,
444
+ federation_name: builtins.str = ...,
445
+ ) -> None: ...
446
+ def ClearField(self, field_name: typing.Literal["federation_name", b"federation_name"]) -> None: ...
447
+
448
+ global___ShowFederationRequest = ShowFederationRequest
449
+
450
+ @typing.final
451
+ class ShowFederationResponse(google.protobuf.message.Message):
452
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
453
+
454
+ FEDERATION_FIELD_NUMBER: builtins.int
455
+ NOW_FIELD_NUMBER: builtins.int
456
+ now: builtins.str
457
+ @property
458
+ def federation(self) -> flwr.proto.federation_pb2.Federation: ...
459
+ def __init__(
460
+ self,
461
+ *,
462
+ federation: flwr.proto.federation_pb2.Federation | None = ...,
463
+ now: builtins.str = ...,
464
+ ) -> None: ...
465
+ def HasField(self, field_name: typing.Literal["federation", b"federation"]) -> builtins.bool: ...
466
+ def ClearField(self, field_name: typing.Literal["federation", b"federation", "now", b"now"]) -> None: ...
467
+
468
+ global___ShowFederationResponse = ShowFederationResponse