flwr-nightly 1.20.0.dev20250712__tar.gz → 1.20.0.dev20250714__tar.gz

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 (375) hide show
  1. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/PKG-INFO +1 -1
  2. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/inflatable_utils.py +14 -7
  3. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/appio_pb2.py +51 -0
  4. flwr_nightly-1.20.0.dev20250712/py/flwr/proto/serverappio_pb2.pyi → flwr_nightly-1.20.0.dev20250714/py/flwr/proto/appio_pb2.pyi +22 -44
  5. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/clientappio_pb2.py +57 -0
  6. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/clientappio_pb2.pyi +50 -12
  7. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/clientappio_pb2_grpc.py +68 -0
  8. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/clientappio_pb2_grpc.pyi +26 -0
  9. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/run_pb2_grpc.py +4 -0
  10. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/run_pb2_grpc.pyi +4 -0
  11. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/serverappio_pb2.py +37 -0
  12. flwr_nightly-1.20.0.dev20250714/py/flwr/proto/serverappio_pb2.pyi +37 -0
  13. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/serverappio_pb2_grpc.py +39 -38
  14. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/serverappio_pb2_grpc.pyi +21 -20
  15. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/grid/grpc_grid.py +10 -8
  16. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/serverapp/app.py +9 -11
  17. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +27 -25
  18. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/utils.py +2 -2
  19. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/runtime/run_clientapp.py +14 -4
  20. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +48 -5
  21. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/start_client_internal.py +14 -0
  22. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/pyproject.toml +1 -1
  23. flwr_nightly-1.20.0.dev20250712/py/flwr/proto/clientappio_pb2.py +0 -49
  24. flwr_nightly-1.20.0.dev20250712/py/flwr/proto/serverappio_pb2.py +0 -60
  25. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/README.md +0 -0
  26. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/__init__.py +0 -0
  27. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/app/__init__.py +0 -0
  28. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/app/error.py +0 -0
  29. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/app/metadata.py +0 -0
  30. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/__init__.py +0 -0
  31. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/app.py +0 -0
  32. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  33. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  34. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/build.py +0 -0
  35. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
  36. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/config_utils.py +0 -0
  37. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/constant.py +0 -0
  38. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/example.py +0 -0
  39. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/install.py +0 -0
  40. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/log.py +0 -0
  41. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/login/__init__.py +0 -0
  42. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/login/login.py +0 -0
  43. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/ls.py +0 -0
  44. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/__init__.py +0 -0
  45. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/new.py +0 -0
  46. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/__init__.py +0 -0
  47. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  48. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  49. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  50. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  51. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  52. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  53. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  54. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  55. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  56. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  57. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  58. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  59. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  60. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  61. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  62. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  63. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  64. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  65. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  66. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  67. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  68. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  69. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  70. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  71. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  72. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  73. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  74. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  75. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  76. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  77. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  78. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  79. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  80. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  81. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  82. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  83. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  84. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  85. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  86. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  87. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  88. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  89. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  90. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  91. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  92. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  93. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  94. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  95. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  96. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  97. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  98. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/run/__init__.py +0 -0
  99. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/run/run.py +0 -0
  100. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/stop.py +0 -0
  101. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/cli/utils.py +0 -0
  102. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/__init__.py +0 -0
  103. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/client.py +0 -0
  104. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/client_app.py +0 -0
  105. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/clientapp/__init__.py +0 -0
  106. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/clientapp/utils.py +0 -0
  107. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  108. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  109. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  110. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  111. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  112. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_rere_client/connection.py +0 -0
  113. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  114. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/message_handler/__init__.py +0 -0
  115. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/message_handler/message_handler.py +0 -0
  116. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/__init__.py +0 -0
  117. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/centraldp_mods.py +0 -0
  118. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/comms_mods.py +0 -0
  119. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/localdp_mod.py +0 -0
  120. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  121. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  122. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  123. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/mod/utils.py +0 -0
  124. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/numpy_client.py +0 -0
  125. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/rest_client/__init__.py +0 -0
  126. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/rest_client/connection.py +0 -0
  127. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/run_info_store.py +0 -0
  128. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/client/typing.py +0 -0
  129. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/clientapp/__init__.py +0 -0
  130. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/__init__.py +0 -0
  131. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/address.py +0 -0
  132. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/args.py +0 -0
  133. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/auth_plugin/__init__.py +0 -0
  134. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
  135. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/config.py +0 -0
  136. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/constant.py +0 -0
  137. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/context.py +0 -0
  138. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/date.py +0 -0
  139. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/differential_privacy.py +0 -0
  140. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/differential_privacy_constants.py +0 -0
  141. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/dp.py +0 -0
  142. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  143. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  144. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/exit/__init__.py +0 -0
  145. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/exit/exit.py +0 -0
  146. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/exit/exit_code.py +0 -0
  147. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/exit_handlers.py +0 -0
  148. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/grpc.py +0 -0
  149. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/heartbeat.py +0 -0
  150. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/inflatable.py +0 -0
  151. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/inflatable_grpc_utils.py +0 -0
  152. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/inflatable_rest_utils.py +0 -0
  153. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/logger.py +0 -0
  154. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/message.py +0 -0
  155. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/object_ref.py +0 -0
  156. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/parameter.py +0 -0
  157. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/pyproject.py +0 -0
  158. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/__init__.py +0 -0
  159. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/array.py +0 -0
  160. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/arraychunk.py +0 -0
  161. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/arrayrecord.py +0 -0
  162. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/configrecord.py +0 -0
  163. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/conversion_utils.py +0 -0
  164. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/metricrecord.py +0 -0
  165. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/recorddict.py +0 -0
  166. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/record/typeddict.py +0 -0
  167. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/recorddict_compat.py +0 -0
  168. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/retry_invoker.py +0 -0
  169. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  170. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  171. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  172. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  173. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  174. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  175. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  176. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  177. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/serde.py +0 -0
  178. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/serde_utils.py +0 -0
  179. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/telemetry.py +0 -0
  180. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/typing.py +0 -0
  181. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/common/version.py +0 -0
  182. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/__init__.py +0 -0
  183. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/client/__init__.py +0 -0
  184. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/client/app.py +0 -0
  185. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  186. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  187. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/common/__init__.py +0 -0
  188. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/server/__init__.py +0 -0
  189. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/server/app.py +0 -0
  190. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/compat/simulation/__init__.py +0 -0
  191. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/__init__.py +0 -0
  192. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/error_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/appio_pb2_grpc.py +0 -0
  193. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/error_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  194. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/error_pb2.py +0 -0
  195. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/error_pb2.pyi +0 -0
  196. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/fab_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/error_pb2_grpc.py +0 -0
  197. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/fab_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  198. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/exec_pb2.py +0 -0
  199. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/exec_pb2.pyi +0 -0
  200. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/exec_pb2_grpc.py +0 -0
  201. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  202. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fab_pb2.py +0 -0
  203. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fab_pb2.pyi +0 -0
  204. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/heartbeat_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/fab_pb2_grpc.py +0 -0
  205. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/heartbeat_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  206. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fleet_pb2.py +0 -0
  207. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fleet_pb2.pyi +0 -0
  208. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  209. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  210. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  211. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  212. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  213. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  214. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/heartbeat_pb2.py +0 -0
  215. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  216. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/log_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  217. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/log_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  218. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/log_pb2.py +0 -0
  219. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/log_pb2.pyi +0 -0
  220. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/message_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/log_pb2_grpc.py +0 -0
  221. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/message_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  222. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/message_pb2.py +0 -0
  223. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/message_pb2.pyi +0 -0
  224. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/node_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/message_pb2_grpc.py +0 -0
  225. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/node_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  226. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/node_pb2.py +0 -0
  227. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/node_pb2.pyi +0 -0
  228. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/recorddict_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/node_pb2_grpc.py +0 -0
  229. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/recorddict_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  230. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/recorddict_pb2.py +0 -0
  231. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  232. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/run_pb2_grpc.py → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  233. /flwr_nightly-1.20.0.dev20250712/py/flwr/proto/run_pb2_grpc.pyi → /flwr_nightly-1.20.0.dev20250714/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  234. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/run_pb2.py +0 -0
  235. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/run_pb2.pyi +0 -0
  236. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/simulationio_pb2.py +0 -0
  237. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  238. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  239. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  240. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/transport_pb2.py +0 -0
  241. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/transport_pb2.pyi +0 -0
  242. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  243. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  244. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/py.typed +0 -0
  245. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/__init__.py +0 -0
  246. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/app.py +0 -0
  247. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/client_manager.py +0 -0
  248. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/client_proxy.py +0 -0
  249. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/compat/__init__.py +0 -0
  250. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/compat/app.py +0 -0
  251. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/compat/app_utils.py +0 -0
  252. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  253. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/compat/legacy_context.py +0 -0
  254. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/criterion.py +0 -0
  255. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  256. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/grid/__init__.py +0 -0
  257. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/grid/grid.py +0 -0
  258. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/grid/inmemory_grid.py +0 -0
  259. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/history.py +0 -0
  260. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/run_serverapp.py +0 -0
  261. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/server.py +0 -0
  262. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/server_app.py +0 -0
  263. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/server_config.py +0 -0
  264. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/serverapp/__init__.py +0 -0
  265. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/serverapp_components.py +0 -0
  266. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/__init__.py +0 -0
  267. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/aggregate.py +0 -0
  268. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/bulyan.py +0 -0
  269. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  270. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  271. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  272. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  273. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  274. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedadagrad.py +0 -0
  275. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedadam.py +0 -0
  276. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedavg.py +0 -0
  277. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedavg_android.py +0 -0
  278. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedavgm.py +0 -0
  279. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedmedian.py +0 -0
  280. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedopt.py +0 -0
  281. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedprox.py +0 -0
  282. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  283. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  284. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  285. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  286. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/fedyogi.py +0 -0
  287. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/krum.py +0 -0
  288. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/qfedavg.py +0 -0
  289. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/strategy/strategy.py +0 -0
  290. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/__init__.py +0 -0
  291. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  292. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  293. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  294. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  295. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  296. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  297. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  298. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  299. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  300. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  301. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  302. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  303. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  304. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  305. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  306. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  307. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  308. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  309. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  310. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  311. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  312. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  313. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  314. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  315. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  316. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  317. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  318. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  319. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  320. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  321. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  322. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/typing.py +0 -0
  323. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/utils/__init__.py +0 -0
  324. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/utils/tensorboard.py +0 -0
  325. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/utils/validator.py +0 -0
  326. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/__init__.py +0 -0
  327. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/constant.py +0 -0
  328. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/default_workflows.py +0 -0
  329. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  330. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  331. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  332. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/serverapp/__init__.py +0 -0
  333. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/__init__.py +0 -0
  334. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/app.py +0 -0
  335. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/legacy_app.py +0 -0
  336. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  337. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  338. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  339. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/ray_transport/utils.py +0 -0
  340. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/run_simulation.py +0 -0
  341. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/simulation/simulationio_connection.py +0 -0
  342. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/__init__.py +0 -0
  343. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/ffs/__init__.py +0 -0
  344. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  345. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/ffs/ffs.py +0 -0
  346. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  347. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  348. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  349. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/object_store/__init__.py +0 -0
  350. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  351. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/object_store/object_store.py +0 -0
  352. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  353. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supercore/utils.py +0 -0
  354. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/__init__.py +0 -0
  355. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/app.py +0 -0
  356. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/deployment.py +0 -0
  357. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/exec_event_log_interceptor.py +0 -0
  358. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/exec_grpc.py +0 -0
  359. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/exec_license_interceptor.py +0 -0
  360. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/exec_servicer.py +0 -0
  361. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/exec_user_auth_interceptor.py +0 -0
  362. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/executor.py +0 -0
  363. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superexec/simulation.py +0 -0
  364. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/superlink/__init__.py +0 -0
  365. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/__init__.py +0 -0
  366. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/cli/__init__.py +0 -0
  367. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  368. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  369. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/nodestate/__init__.py +0 -0
  370. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  371. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  372. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  373. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/runtime/__init__.py +0 -0
  374. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/servicer/__init__.py +0 -0
  375. {flwr_nightly-1.20.0.dev20250712 → flwr_nightly-1.20.0.dev20250714}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.20.0.dev20250712
3
+ Version: 1.20.0.dev20250714
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  License: Apache-2.0
6
6
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -15,6 +15,7 @@
15
15
  """InflatableObject utilities."""
16
16
 
17
17
  import concurrent.futures
18
+ import os
18
19
  import random
19
20
  import threading
20
21
  import time
@@ -69,6 +70,13 @@ class ObjectIdNotPreregisteredError(Exception):
69
70
  super().__init__(f"Object with ID '{object_id}' could not be found.")
70
71
 
71
72
 
73
+ def get_num_workers(max_concurrent: int) -> int:
74
+ """Get number of workers based on the number of CPU cores and the maximum
75
+ allowed."""
76
+ num_cores = os.cpu_count() or 1
77
+ return min(max_concurrent, num_cores)
78
+
79
+
72
80
  def push_objects(
73
81
  objects: dict[str, InflatableObject],
74
82
  push_object_fn: Callable[[str, bytes], None],
@@ -111,13 +119,13 @@ def push_objects(
111
119
  del objects[obj_id]
112
120
  push_object_fn(obj_id, object_content)
113
121
 
114
- with concurrent.futures.ThreadPoolExecutor(
115
- max_workers=max_concurrent_pushes
116
- ) as executor:
122
+ # Push all objects concurrently
123
+ num_workers = get_num_workers(max_concurrent_pushes)
124
+ with concurrent.futures.ThreadPoolExecutor(max_workers=num_workers) as executor:
117
125
  list(executor.map(push, list(objects.keys())))
118
126
 
119
127
 
120
- def pull_objects( # pylint: disable=too-many-arguments
128
+ def pull_objects( # pylint: disable=too-many-arguments,too-many-locals
121
129
  object_ids: list[str],
122
130
  pull_object_fn: Callable[[str], bytes],
123
131
  *,
@@ -209,9 +217,8 @@ def pull_objects( # pylint: disable=too-many-arguments
209
217
  return
210
218
 
211
219
  # Submit all pull tasks concurrently
212
- with concurrent.futures.ThreadPoolExecutor(
213
- max_workers=max_concurrent_pulls
214
- ) as executor:
220
+ num_workers = get_num_workers(max_concurrent_pulls)
221
+ with concurrent.futures.ThreadPoolExecutor(max_workers=num_workers) as executor:
215
222
  futures = {
216
223
  executor.submit(pull_with_retries, obj_id): obj_id for obj_id in object_ids
217
224
  }
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/appio.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
16
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
17
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/appio.proto\x12\nflwr.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\"\x8a\x01\n\x16PushAppMessagesRequest\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcc\x01\n\x17PushAppMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12O\n\x0fobjects_to_push\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PushAppMessagesResponse.ObjectsToPushEntry\x1aK\n\x12ObjectsToPushEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"=\n\x16PullAppMessagesRequest\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\"\xe3\x01\n\x17PullAppMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12O\n\x0fobjects_to_pull\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PullAppMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x16\n\x14PullAppInputsRequest\"y\n\x15PullAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"M\n\x15PushAppOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x18\n\x16PushAppOutputsResponseb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.appio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
28
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
29
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
30
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
31
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_start=109
32
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_end=247
33
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_start=250
34
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_end=454
35
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=379
36
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=454
37
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_start=456
38
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_end=517
39
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_start=520
40
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_end=747
41
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=672
42
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=747
43
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_start=749
44
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_end=771
45
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_start=773
46
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_end=894
47
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_start=896
48
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_end=973
49
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_start=975
50
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_end=999
51
+ # @@protoc_insertion_point(module_scope)
@@ -5,7 +5,6 @@ isort:skip_file
5
5
  import builtins
6
6
  import flwr.proto.fab_pb2
7
7
  import flwr.proto.message_pb2
8
- import flwr.proto.node_pb2
9
8
  import flwr.proto.run_pb2
10
9
  import google.protobuf.descriptor
11
10
  import google.protobuf.internal.containers
@@ -15,32 +14,11 @@ import typing_extensions
15
14
 
16
15
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
17
16
 
18
- class GetNodesRequest(google.protobuf.message.Message):
19
- """GetNodes messages"""
20
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
21
- RUN_ID_FIELD_NUMBER: builtins.int
22
- run_id: builtins.int
23
- def __init__(self,
24
- *,
25
- run_id: builtins.int = ...,
26
- ) -> None: ...
27
- def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
28
- global___GetNodesRequest = GetNodesRequest
29
-
30
- class GetNodesResponse(google.protobuf.message.Message):
31
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
32
- NODES_FIELD_NUMBER: builtins.int
33
- @property
34
- def nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.Node]: ...
35
- def __init__(self,
36
- *,
37
- nodes: typing.Optional[typing.Iterable[flwr.proto.node_pb2.Node]] = ...,
38
- ) -> None: ...
39
- def ClearField(self, field_name: typing_extensions.Literal["nodes",b"nodes"]) -> None: ...
40
- global___GetNodesResponse = GetNodesResponse
17
+ class PushAppMessagesRequest(google.protobuf.message.Message):
18
+ """These messages are used by both ServerAppIo and ClientAppIo services
41
19
 
42
- class PushInsMessagesRequest(google.protobuf.message.Message):
43
- """PushMessages messages"""
20
+ PushAppMessages messages
21
+ """
44
22
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
45
23
  MESSAGES_LIST_FIELD_NUMBER: builtins.int
46
24
  RUN_ID_FIELD_NUMBER: builtins.int
@@ -57,9 +35,9 @@ class PushInsMessagesRequest(google.protobuf.message.Message):
57
35
  message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
58
36
  ) -> None: ...
59
37
  def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
60
- global___PushInsMessagesRequest = PushInsMessagesRequest
38
+ global___PushAppMessagesRequest = PushAppMessagesRequest
61
39
 
62
- class PushInsMessagesResponse(google.protobuf.message.Message):
40
+ class PushAppMessagesResponse(google.protobuf.message.Message):
63
41
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
64
42
  class ObjectsToPushEntry(google.protobuf.message.Message):
65
43
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -88,10 +66,10 @@ class PushInsMessagesResponse(google.protobuf.message.Message):
88
66
  objects_to_push: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
89
67
  ) -> None: ...
90
68
  def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","objects_to_push",b"objects_to_push"]) -> None: ...
91
- global___PushInsMessagesResponse = PushInsMessagesResponse
69
+ global___PushAppMessagesResponse = PushAppMessagesResponse
92
70
 
93
- class PullResMessagesRequest(google.protobuf.message.Message):
94
- """PullMessages messages"""
71
+ class PullAppMessagesRequest(google.protobuf.message.Message):
72
+ """PullAppMessages messages"""
95
73
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
96
74
  MESSAGE_IDS_FIELD_NUMBER: builtins.int
97
75
  RUN_ID_FIELD_NUMBER: builtins.int
@@ -104,9 +82,9 @@ class PullResMessagesRequest(google.protobuf.message.Message):
104
82
  run_id: builtins.int = ...,
105
83
  ) -> None: ...
106
84
  def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
107
- global___PullResMessagesRequest = PullResMessagesRequest
85
+ global___PullAppMessagesRequest = PullAppMessagesRequest
108
86
 
109
- class PullResMessagesResponse(google.protobuf.message.Message):
87
+ class PullAppMessagesResponse(google.protobuf.message.Message):
110
88
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
111
89
  class ObjectsToPullEntry(google.protobuf.message.Message):
112
90
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -135,16 +113,16 @@ class PullResMessagesResponse(google.protobuf.message.Message):
135
113
  objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
136
114
  ) -> None: ...
137
115
  def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull"]) -> None: ...
138
- global___PullResMessagesResponse = PullResMessagesResponse
116
+ global___PullAppMessagesResponse = PullAppMessagesResponse
139
117
 
140
- class PullServerAppInputsRequest(google.protobuf.message.Message):
141
- """PullServerAppInputs messages"""
118
+ class PullAppInputsRequest(google.protobuf.message.Message):
119
+ """PullAppInputs messages"""
142
120
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
143
121
  def __init__(self,
144
122
  ) -> None: ...
145
- global___PullServerAppInputsRequest = PullServerAppInputsRequest
123
+ global___PullAppInputsRequest = PullAppInputsRequest
146
124
 
147
- class PullServerAppInputsResponse(google.protobuf.message.Message):
125
+ class PullAppInputsResponse(google.protobuf.message.Message):
148
126
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
127
  CONTEXT_FIELD_NUMBER: builtins.int
150
128
  RUN_FIELD_NUMBER: builtins.int
@@ -163,10 +141,10 @@ class PullServerAppInputsResponse(google.protobuf.message.Message):
163
141
  ) -> None: ...
164
142
  def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
165
143
  def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
166
- global___PullServerAppInputsResponse = PullServerAppInputsResponse
144
+ global___PullAppInputsResponse = PullAppInputsResponse
167
145
 
168
- class PushServerAppOutputsRequest(google.protobuf.message.Message):
169
- """PushServerAppOutputs messages"""
146
+ class PushAppOutputsRequest(google.protobuf.message.Message):
147
+ """PushAppInputs messages"""
170
148
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
171
149
  RUN_ID_FIELD_NUMBER: builtins.int
172
150
  CONTEXT_FIELD_NUMBER: builtins.int
@@ -180,10 +158,10 @@ class PushServerAppOutputsRequest(google.protobuf.message.Message):
180
158
  ) -> None: ...
181
159
  def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
182
160
  def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
183
- global___PushServerAppOutputsRequest = PushServerAppOutputsRequest
161
+ global___PushAppOutputsRequest = PushAppOutputsRequest
184
162
 
185
- class PushServerAppOutputsResponse(google.protobuf.message.Message):
163
+ class PushAppOutputsResponse(google.protobuf.message.Message):
186
164
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
187
165
  def __init__(self,
188
166
  ) -> None: ...
189
- global___PushServerAppOutputsResponse = PushServerAppOutputsResponse
167
+ global___PushAppOutputsResponse = PushAppOutputsResponse
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/clientappio.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
16
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
17
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"W\n\x15\x43lientAppOutputStatus\x12-\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1f.flwr.proto.ClientAppOutputCode\x12\x0f\n\x07message\x18\x02 \x01(\t\"+\n\x1aPullClientAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x7f\n\x1bPullClientAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"R\n\x1bPushClientAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"Q\n\x1cPushClientAppOutputsResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32!.flwr.proto.ClientAppOutputStatus\"#\n\x12PullMessageRequest\x12\r\n\x05token\x18\x01 \x01(\t\";\n\x13PullMessageResponse\x12$\n\x07message\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Message\"I\n\x12PushMessageRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12$\n\x07message\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Message\"\x15\n\x13PushMessageResponse*L\n\x13\x43lientAppOutputCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x01\x12\x11\n\rUNKNOWN_ERROR\x10\x02\x32\xe3\x04\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12h\n\x13PullClientAppInputs\x12&.flwr.proto.PullClientAppInputsRequest\x1a\'.flwr.proto.PullClientAppInputsResponse\"\x00\x12k\n\x14PushClientAppOutputs\x12\'.flwr.proto.PushClientAppOutputsRequest\x1a(.flwr.proto.PushClientAppOutputsResponse\"\x00\x12P\n\x0bPushMessage\x12\x1e.flwr.proto.PushMessageRequest\x1a\x1f.flwr.proto.PushMessageResponse\"\x00\x12P\n\x0bPullMessage\x12\x1e.flwr.proto.PullMessageRequest\x1a\x1f.flwr.proto.PullMessageResponse\"\x00\x62\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_start=914
28
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_end=990
29
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_start=114
30
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_end=151
31
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_start=153
32
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_end=208
33
+ _globals['_REQUESTTOKENREQUEST']._serialized_start=210
34
+ _globals['_REQUESTTOKENREQUEST']._serialized_end=247
35
+ _globals['_REQUESTTOKENRESPONSE']._serialized_start=249
36
+ _globals['_REQUESTTOKENRESPONSE']._serialized_end=286
37
+ _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_start=288
38
+ _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_end=375
39
+ _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_start=377
40
+ _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_end=420
41
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_start=422
42
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_end=549
43
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_start=551
44
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_end=633
45
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_start=635
46
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_end=716
47
+ _globals['_PULLMESSAGEREQUEST']._serialized_start=718
48
+ _globals['_PULLMESSAGEREQUEST']._serialized_end=753
49
+ _globals['_PULLMESSAGERESPONSE']._serialized_start=755
50
+ _globals['_PULLMESSAGERESPONSE']._serialized_end=814
51
+ _globals['_PUSHMESSAGEREQUEST']._serialized_start=816
52
+ _globals['_PUSHMESSAGEREQUEST']._serialized_end=889
53
+ _globals['_PUSHMESSAGERESPONSE']._serialized_start=891
54
+ _globals['_PUSHMESSAGERESPONSE']._serialized_end=912
55
+ _globals['_CLIENTAPPIO']._serialized_start=993
56
+ _globals['_CLIENTAPPIO']._serialized_end=1604
57
+ # @@protoc_insertion_point(module_scope)
@@ -101,13 +101,10 @@ global___PullClientAppInputsRequest = PullClientAppInputsRequest
101
101
 
102
102
  class PullClientAppInputsResponse(google.protobuf.message.Message):
103
103
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
104
- MESSAGE_FIELD_NUMBER: builtins.int
105
104
  CONTEXT_FIELD_NUMBER: builtins.int
106
105
  RUN_FIELD_NUMBER: builtins.int
107
106
  FAB_FIELD_NUMBER: builtins.int
108
107
  @property
109
- def message(self) -> flwr.proto.message_pb2.Message: ...
110
- @property
111
108
  def context(self) -> flwr.proto.message_pb2.Context: ...
112
109
  @property
113
110
  def run(self) -> flwr.proto.run_pb2.Run: ...
@@ -115,33 +112,28 @@ class PullClientAppInputsResponse(google.protobuf.message.Message):
115
112
  def fab(self) -> flwr.proto.fab_pb2.Fab: ...
116
113
  def __init__(self,
117
114
  *,
118
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
119
115
  context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
120
116
  run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
121
117
  fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
122
118
  ) -> None: ...
123
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> builtins.bool: ...
124
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> None: ...
119
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
120
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
125
121
  global___PullClientAppInputsResponse = PullClientAppInputsResponse
126
122
 
127
123
  class PushClientAppOutputsRequest(google.protobuf.message.Message):
128
124
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
129
125
  TOKEN_FIELD_NUMBER: builtins.int
130
- MESSAGE_FIELD_NUMBER: builtins.int
131
126
  CONTEXT_FIELD_NUMBER: builtins.int
132
127
  token: typing.Text
133
128
  @property
134
- def message(self) -> flwr.proto.message_pb2.Message: ...
135
- @property
136
129
  def context(self) -> flwr.proto.message_pb2.Context: ...
137
130
  def __init__(self,
138
131
  *,
139
132
  token: typing.Text = ...,
140
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
141
133
  context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
142
134
  ) -> None: ...
143
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message"]) -> builtins.bool: ...
144
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","token",b"token"]) -> None: ...
135
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
136
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","token",b"token"]) -> None: ...
145
137
  global___PushClientAppOutputsRequest = PushClientAppOutputsRequest
146
138
 
147
139
  class PushClientAppOutputsResponse(google.protobuf.message.Message):
@@ -156,3 +148,49 @@ class PushClientAppOutputsResponse(google.protobuf.message.Message):
156
148
  def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
157
149
  def ClearField(self, field_name: typing_extensions.Literal["status",b"status"]) -> None: ...
158
150
  global___PushClientAppOutputsResponse = PushClientAppOutputsResponse
151
+
152
+ class PullMessageRequest(google.protobuf.message.Message):
153
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
+ TOKEN_FIELD_NUMBER: builtins.int
155
+ token: typing.Text
156
+ def __init__(self,
157
+ *,
158
+ token: typing.Text = ...,
159
+ ) -> None: ...
160
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
161
+ global___PullMessageRequest = PullMessageRequest
162
+
163
+ class PullMessageResponse(google.protobuf.message.Message):
164
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
165
+ MESSAGE_FIELD_NUMBER: builtins.int
166
+ @property
167
+ def message(self) -> flwr.proto.message_pb2.Message: ...
168
+ def __init__(self,
169
+ *,
170
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
171
+ ) -> None: ...
172
+ def HasField(self, field_name: typing_extensions.Literal["message",b"message"]) -> builtins.bool: ...
173
+ def ClearField(self, field_name: typing_extensions.Literal["message",b"message"]) -> None: ...
174
+ global___PullMessageResponse = PullMessageResponse
175
+
176
+ class PushMessageRequest(google.protobuf.message.Message):
177
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
178
+ TOKEN_FIELD_NUMBER: builtins.int
179
+ MESSAGE_FIELD_NUMBER: builtins.int
180
+ token: typing.Text
181
+ @property
182
+ def message(self) -> flwr.proto.message_pb2.Message: ...
183
+ def __init__(self,
184
+ *,
185
+ token: typing.Text = ...,
186
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
187
+ ) -> None: ...
188
+ def HasField(self, field_name: typing_extensions.Literal["message",b"message"]) -> builtins.bool: ...
189
+ def ClearField(self, field_name: typing_extensions.Literal["message",b"message","token",b"token"]) -> None: ...
190
+ global___PushMessageRequest = PushMessageRequest
191
+
192
+ class PushMessageResponse(google.protobuf.message.Message):
193
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
194
+ def __init__(self,
195
+ ) -> None: ...
196
+ global___PushMessageResponse = PushMessageResponse
@@ -34,6 +34,16 @@ class ClientAppIoStub(object):
34
34
  request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
35
35
  response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
36
36
  )
37
+ self.PushMessage = channel.unary_unary(
38
+ '/flwr.proto.ClientAppIo/PushMessage',
39
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.SerializeToString,
40
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.FromString,
41
+ )
42
+ self.PullMessage = channel.unary_unary(
43
+ '/flwr.proto.ClientAppIo/PullMessage',
44
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.SerializeToString,
45
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.FromString,
46
+ )
37
47
 
38
48
 
39
49
  class ClientAppIoServicer(object):
@@ -67,6 +77,20 @@ class ClientAppIoServicer(object):
67
77
  context.set_details('Method not implemented!')
68
78
  raise NotImplementedError('Method not implemented!')
69
79
 
80
+ def PushMessage(self, request, context):
81
+ """Push Message
82
+ """
83
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
84
+ context.set_details('Method not implemented!')
85
+ raise NotImplementedError('Method not implemented!')
86
+
87
+ def PullMessage(self, request, context):
88
+ """Pull Message
89
+ """
90
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
91
+ context.set_details('Method not implemented!')
92
+ raise NotImplementedError('Method not implemented!')
93
+
70
94
 
71
95
  def add_ClientAppIoServicer_to_server(servicer, server):
72
96
  rpc_method_handlers = {
@@ -90,6 +114,16 @@ def add_ClientAppIoServicer_to_server(servicer, server):
90
114
  request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.FromString,
91
115
  response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.SerializeToString,
92
116
  ),
117
+ 'PushMessage': grpc.unary_unary_rpc_method_handler(
118
+ servicer.PushMessage,
119
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.FromString,
120
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.SerializeToString,
121
+ ),
122
+ 'PullMessage': grpc.unary_unary_rpc_method_handler(
123
+ servicer.PullMessage,
124
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.FromString,
125
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.SerializeToString,
126
+ ),
93
127
  }
94
128
  generic_handler = grpc.method_handlers_generic_handler(
95
129
  'flwr.proto.ClientAppIo', rpc_method_handlers)
@@ -167,3 +201,37 @@ class ClientAppIo(object):
167
201
  flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
168
202
  options, channel_credentials,
169
203
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
204
+
205
+ @staticmethod
206
+ def PushMessage(request,
207
+ target,
208
+ options=(),
209
+ channel_credentials=None,
210
+ call_credentials=None,
211
+ insecure=False,
212
+ compression=None,
213
+ wait_for_ready=None,
214
+ timeout=None,
215
+ metadata=None):
216
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushMessage',
217
+ flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.SerializeToString,
218
+ flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.FromString,
219
+ options, channel_credentials,
220
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
221
+
222
+ @staticmethod
223
+ def PullMessage(request,
224
+ target,
225
+ options=(),
226
+ channel_credentials=None,
227
+ call_credentials=None,
228
+ insecure=False,
229
+ compression=None,
230
+ wait_for_ready=None,
231
+ timeout=None,
232
+ metadata=None):
233
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullMessage',
234
+ flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.SerializeToString,
235
+ flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.FromString,
236
+ options, channel_credentials,
237
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -28,6 +28,16 @@ class ClientAppIoStub:
28
28
  flwr.proto.clientappio_pb2.PushClientAppOutputsResponse]
29
29
  """Push client app outputs"""
30
30
 
31
+ PushMessage: grpc.UnaryUnaryMultiCallable[
32
+ flwr.proto.clientappio_pb2.PushMessageRequest,
33
+ flwr.proto.clientappio_pb2.PushMessageResponse]
34
+ """Push Message"""
35
+
36
+ PullMessage: grpc.UnaryUnaryMultiCallable[
37
+ flwr.proto.clientappio_pb2.PullMessageRequest,
38
+ flwr.proto.clientappio_pb2.PullMessageResponse]
39
+ """Pull Message"""
40
+
31
41
 
32
42
  class ClientAppIoServicer(metaclass=abc.ABCMeta):
33
43
  @abc.abstractmethod
@@ -62,5 +72,21 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
62
72
  """Push client app outputs"""
63
73
  pass
64
74
 
75
+ @abc.abstractmethod
76
+ def PushMessage(self,
77
+ request: flwr.proto.clientappio_pb2.PushMessageRequest,
78
+ context: grpc.ServicerContext,
79
+ ) -> flwr.proto.clientappio_pb2.PushMessageResponse:
80
+ """Push Message"""
81
+ pass
82
+
83
+ @abc.abstractmethod
84
+ def PullMessage(self,
85
+ request: flwr.proto.clientappio_pb2.PullMessageRequest,
86
+ context: grpc.ServicerContext,
87
+ ) -> flwr.proto.clientappio_pb2.PullMessageResponse:
88
+ """Pull Message"""
89
+ pass
90
+
65
91
 
66
92
  def add_ClientAppIoServicer_to_server(servicer: ClientAppIoServicer, server: grpc.Server) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -0,0 +1,4 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/serverappio.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
16
+ from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
17
+ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
18
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
19
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
20
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
21
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
22
+
23
+
24
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xb3\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
25
+
26
+ _globals = globals()
27
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
28
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
29
+ if _descriptor._USE_C_DESCRIPTORS == False:
30
+ DESCRIPTOR._options = None
31
+ _globals['_GETNODESREQUEST']._serialized_start=211
32
+ _globals['_GETNODESREQUEST']._serialized_end=244
33
+ _globals['_GETNODESRESPONSE']._serialized_start=246
34
+ _globals['_GETNODESRESPONSE']._serialized_end=297
35
+ _globals['_SERVERAPPIO']._serialized_start=300
36
+ _globals['_SERVERAPPIO']._serialized_end=1503
37
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,37 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.node_pb2
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.containers
9
+ import google.protobuf.message
10
+ import typing
11
+ import typing_extensions
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ class GetNodesRequest(google.protobuf.message.Message):
16
+ """GetNodes messages"""
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+ RUN_ID_FIELD_NUMBER: builtins.int
19
+ run_id: builtins.int
20
+ def __init__(self,
21
+ *,
22
+ run_id: builtins.int = ...,
23
+ ) -> None: ...
24
+ def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
25
+ global___GetNodesRequest = GetNodesRequest
26
+
27
+ class GetNodesResponse(google.protobuf.message.Message):
28
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
29
+ NODES_FIELD_NUMBER: builtins.int
30
+ @property
31
+ def nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.Node]: ...
32
+ def __init__(self,
33
+ *,
34
+ nodes: typing.Optional[typing.Iterable[flwr.proto.node_pb2.Node]] = ...,
35
+ ) -> None: ...
36
+ def ClearField(self, field_name: typing_extensions.Literal["nodes",b"nodes"]) -> None: ...
37
+ global___GetNodesResponse = GetNodesResponse