flwr-nightly 1.21.0.dev20250801__tar.gz → 1.21.0.dev20250804__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 (386) hide show
  1. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/PKG-INFO +1 -1
  2. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +4 -4
  3. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/cli_user_auth_interceptor.py +1 -1
  4. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/config_utils.py +2 -2
  5. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/log.py +9 -9
  6. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/login/login.py +3 -3
  7. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/ls.py +5 -5
  8. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/run/run.py +7 -7
  9. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/stop.py +7 -4
  10. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/utils.py +1 -1
  11. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/auth_plugin/__init__.py +4 -4
  12. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/auth_plugin/auth_plugin.py +7 -7
  13. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/constant.py +4 -4
  14. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/event_log_plugin/event_log_plugin.py +1 -1
  15. flwr_nightly-1.21.0.dev20250804/py/flwr/proto/control_pb2.py +62 -0
  16. flwr_nightly-1.21.0.dev20250801/py/flwr/proto/exec_pb2_grpc.py → flwr_nightly-1.21.0.dev20250804/py/flwr/proto/control_pb2_grpc.py +54 -54
  17. flwr_nightly-1.21.0.dev20250801/py/flwr/proto/exec_pb2_grpc.pyi → flwr_nightly-1.21.0.dev20250804/py/flwr/proto/control_pb2_grpc.pyi +28 -28
  18. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/app.py +36 -36
  19. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/executor/__init__.py +1 -1
  20. flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/__init__.py +22 -0
  21. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/exec_event_log_interceptor.py → flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
  22. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/exec_grpc.py → flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/control_grpc.py +22 -22
  23. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/exec_license_interceptor.py → flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/control_license_interceptor.py +6 -6
  24. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/exec_servicer.py → flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/control_servicer.py +16 -16
  25. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/exec_user_auth_interceptor.py → flwr_nightly-1.21.0.dev20250804/py/flwr/superlink/servicer/control/control_user_auth_interceptor.py +10 -10
  26. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/pyproject.toml +1 -1
  27. flwr_nightly-1.21.0.dev20250801/py/flwr/proto/exec_pb2.py +0 -62
  28. flwr_nightly-1.21.0.dev20250801/py/flwr/superlink/servicer/exec/__init__.py +0 -22
  29. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/README.md +0 -0
  30. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/__init__.py +0 -0
  31. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/app/__init__.py +0 -0
  32. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/app/error.py +0 -0
  33. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/app/metadata.py +0 -0
  34. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/__init__.py +0 -0
  35. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/app.py +0 -0
  36. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  37. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/build.py +0 -0
  38. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/constant.py +0 -0
  39. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/example.py +0 -0
  40. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/install.py +0 -0
  41. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/login/__init__.py +0 -0
  42. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/__init__.py +0 -0
  43. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/new.py +0 -0
  44. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/__init__.py +0 -0
  45. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  46. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  47. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  48. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  49. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  50. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  51. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  52. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  53. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  54. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  55. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  56. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  57. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  58. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  59. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  60. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  61. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  62. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  63. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  64. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  65. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  66. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  67. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  68. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  69. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  70. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  71. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  72. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  73. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  74. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  75. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  76. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  77. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  78. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  79. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  80. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  81. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  82. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  83. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  84. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  85. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  86. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  87. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  88. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  89. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  90. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  91. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  92. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  93. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  94. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  95. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  96. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/cli/run/__init__.py +0 -0
  97. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/__init__.py +0 -0
  98. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/client.py +0 -0
  99. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/client_app.py +0 -0
  100. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/clientapp/__init__.py +0 -0
  101. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/clientapp/utils.py +0 -0
  102. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  103. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  104. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  105. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  106. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  107. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_rere_client/connection.py +0 -0
  108. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  109. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/message_handler/__init__.py +0 -0
  110. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/message_handler/message_handler.py +0 -0
  111. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/__init__.py +0 -0
  112. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/centraldp_mods.py +0 -0
  113. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/comms_mods.py +0 -0
  114. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/localdp_mod.py +0 -0
  115. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  116. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  117. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  118. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/mod/utils.py +0 -0
  119. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/numpy_client.py +0 -0
  120. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/rest_client/__init__.py +0 -0
  121. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/rest_client/connection.py +0 -0
  122. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/run_info_store.py +0 -0
  123. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/client/typing.py +0 -0
  124. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/clientapp/__init__.py +0 -0
  125. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/__init__.py +0 -0
  126. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/address.py +0 -0
  127. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/args.py +0 -0
  128. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/config.py +0 -0
  129. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/context.py +0 -0
  130. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/date.py +0 -0
  131. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/differential_privacy.py +0 -0
  132. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/differential_privacy_constants.py +0 -0
  133. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/dp.py +0 -0
  134. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  135. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/exit/__init__.py +0 -0
  136. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/exit/exit.py +0 -0
  137. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/exit/exit_code.py +0 -0
  138. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/exit_handlers.py +0 -0
  139. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/grpc.py +0 -0
  140. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/heartbeat.py +0 -0
  141. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/inflatable.py +0 -0
  142. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
  143. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/inflatable_utils.py +0 -0
  144. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/logger.py +0 -0
  145. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/message.py +0 -0
  146. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/object_ref.py +0 -0
  147. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/parameter.py +0 -0
  148. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/pyproject.py +0 -0
  149. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/__init__.py +0 -0
  150. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/array.py +0 -0
  151. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/arraychunk.py +0 -0
  152. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/arrayrecord.py +0 -0
  153. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/configrecord.py +0 -0
  154. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/conversion_utils.py +0 -0
  155. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/metricrecord.py +0 -0
  156. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/recorddict.py +0 -0
  157. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/record/typeddict.py +0 -0
  158. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/recorddict_compat.py +0 -0
  159. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/retry_invoker.py +0 -0
  160. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  161. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  162. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  163. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  164. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  165. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  166. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  167. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  168. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/serde.py +0 -0
  169. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/serde_utils.py +0 -0
  170. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/telemetry.py +0 -0
  171. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/typing.py +0 -0
  172. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/common/version.py +0 -0
  173. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/__init__.py +0 -0
  174. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/client/__init__.py +0 -0
  175. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/client/app.py +0 -0
  176. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  177. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  178. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/common/__init__.py +0 -0
  179. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/server/__init__.py +0 -0
  180. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/server/app.py +0 -0
  181. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/compat/simulation/__init__.py +0 -0
  182. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/__init__.py +0 -0
  183. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/appio_pb2.py +0 -0
  184. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/appio_pb2.pyi +0 -0
  185. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/appio_pb2_grpc.py +0 -0
  186. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  187. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/clientappio_pb2.py +0 -0
  188. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/clientappio_pb2.pyi +0 -0
  189. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  191. /flwr_nightly-1.21.0.dev20250801/py/flwr/proto/exec_pb2.pyi → /flwr_nightly-1.21.0.dev20250804/py/flwr/proto/control_pb2.pyi +0 -0
  192. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/error_pb2.py +0 -0
  193. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/error_pb2.pyi +0 -0
  194. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/error_pb2_grpc.py +0 -0
  195. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  196. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fab_pb2.py +0 -0
  197. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fab_pb2.pyi +0 -0
  198. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  199. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  200. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fleet_pb2.py +0 -0
  201. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fleet_pb2.pyi +0 -0
  202. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  203. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  204. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  205. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  206. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  207. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  208. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/heartbeat_pb2.py +0 -0
  209. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  210. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  211. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  212. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/log_pb2.py +0 -0
  213. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/log_pb2.pyi +0 -0
  214. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/log_pb2_grpc.py +0 -0
  215. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  216. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/message_pb2.py +0 -0
  217. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/message_pb2.pyi +0 -0
  218. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/message_pb2_grpc.py +0 -0
  219. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  220. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/node_pb2.py +0 -0
  221. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/node_pb2.pyi +0 -0
  222. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/node_pb2_grpc.py +0 -0
  223. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  224. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/recorddict_pb2.py +0 -0
  225. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  226. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  227. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  228. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/run_pb2.py +0 -0
  229. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/run_pb2.pyi +0 -0
  230. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/run_pb2_grpc.py +0 -0
  231. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  232. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/serverappio_pb2.py +0 -0
  233. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  234. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  235. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  236. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/simulationio_pb2.py +0 -0
  237. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  238. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  239. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  240. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/transport_pb2.py +0 -0
  241. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/transport_pb2.pyi +0 -0
  242. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  243. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  244. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/py.typed +0 -0
  245. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/__init__.py +0 -0
  246. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/client_manager.py +0 -0
  247. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/client_proxy.py +0 -0
  248. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/compat/__init__.py +0 -0
  249. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/compat/app.py +0 -0
  250. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/compat/app_utils.py +0 -0
  251. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  252. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/compat/legacy_context.py +0 -0
  253. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/criterion.py +0 -0
  254. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  255. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/grid/__init__.py +0 -0
  256. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/grid/grid.py +0 -0
  257. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/grid/grpc_grid.py +0 -0
  258. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/grid/inmemory_grid.py +0 -0
  259. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/history.py +0 -0
  260. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/run_serverapp.py +0 -0
  261. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/server.py +0 -0
  262. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/server_app.py +0 -0
  263. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/server_config.py +0 -0
  264. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/serverapp/__init__.py +0 -0
  265. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/serverapp/app.py +0 -0
  266. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/serverapp_components.py +0 -0
  267. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/__init__.py +0 -0
  268. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/aggregate.py +0 -0
  269. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/bulyan.py +0 -0
  270. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  271. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  272. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  273. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  274. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  275. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedadagrad.py +0 -0
  276. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedadam.py +0 -0
  277. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedavg.py +0 -0
  278. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedavg_android.py +0 -0
  279. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedavgm.py +0 -0
  280. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedmedian.py +0 -0
  281. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedopt.py +0 -0
  282. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedprox.py +0 -0
  283. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  284. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  285. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  286. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  287. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/fedyogi.py +0 -0
  288. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/krum.py +0 -0
  289. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/qfedavg.py +0 -0
  290. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/strategy/strategy.py +0 -0
  291. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/__init__.py +0 -0
  292. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  293. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  294. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  295. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  296. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  297. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  298. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  299. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  300. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  301. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  302. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  303. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  304. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  305. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  306. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  307. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  308. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  309. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  310. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  311. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  312. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  313. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  314. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  315. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  316. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  317. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  318. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  319. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  320. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
  321. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  322. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  323. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  324. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/superlink/utils.py +0 -0
  325. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/typing.py +0 -0
  326. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/utils/__init__.py +0 -0
  327. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/utils/tensorboard.py +0 -0
  328. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/utils/validator.py +0 -0
  329. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/__init__.py +0 -0
  330. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/constant.py +0 -0
  331. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/default_workflows.py +0 -0
  332. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  333. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  334. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  335. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/serverapp/__init__.py +0 -0
  336. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/__init__.py +0 -0
  337. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/app.py +0 -0
  338. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/legacy_app.py +0 -0
  339. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  340. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  341. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  342. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/ray_transport/utils.py +0 -0
  343. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/run_simulation.py +0 -0
  344. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/simulation/simulationio_connection.py +0 -0
  345. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/__init__.py +0 -0
  346. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/ffs/__init__.py +0 -0
  347. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  348. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/ffs/ffs.py +0 -0
  349. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  350. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/grpc_health/__init__.py +0 -0
  351. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
  352. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  353. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  354. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/object_store/__init__.py +0 -0
  355. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  356. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/object_store/object_store.py +0 -0
  357. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  358. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/object_store/utils.py +0 -0
  359. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/scheduler/__init__.py +0 -0
  360. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/scheduler/plugin.py +0 -0
  361. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supercore/utils.py +0 -0
  362. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superexec/__init__.py +0 -0
  363. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superexec/deployment.py +0 -0
  364. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superexec/simulation.py +0 -0
  365. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/__init__.py +0 -0
  366. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/executor/app.py +0 -0
  367. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/executor/deployment.py +0 -0
  368. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/executor/executor.py +0 -0
  369. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/executor/simulation.py +0 -0
  370. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/superlink/servicer/__init__.py +0 -0
  371. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/__init__.py +0 -0
  372. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/cli/__init__.py +0 -0
  373. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  374. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  375. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/nodestate/__init__.py +0 -0
  376. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  377. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  378. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  379. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/runtime/__init__.py +0 -0
  380. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
  381. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/scheduler/__init__.py +0 -0
  382. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +0 -0
  383. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/servicer/__init__.py +0 -0
  384. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  385. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
  386. {flwr_nightly-1.21.0.dev20250801 → flwr_nightly-1.21.0.dev20250804}/py/flwr/supernode/start_client_internal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.21.0.dev20250801
3
+ Version: 1.21.0.dev20250804
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
@@ -31,11 +31,11 @@ from flwr.common.constant import (
31
31
  AuthType,
32
32
  )
33
33
  from flwr.common.typing import UserAuthCredentials, UserAuthLoginDetails
34
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
34
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
35
35
  GetAuthTokensRequest,
36
36
  GetAuthTokensResponse,
37
37
  )
38
- from flwr.proto.exec_pb2_grpc import ExecStub
38
+ from flwr.proto.control_pb2_grpc import ControlStub
39
39
 
40
40
 
41
41
  class OidcCliPlugin(CliAuthPlugin):
@@ -49,7 +49,7 @@ class OidcCliPlugin(CliAuthPlugin):
49
49
  @staticmethod
50
50
  def login(
51
51
  login_details: UserAuthLoginDetails,
52
- exec_stub: ExecStub,
52
+ control_stub: ControlStub,
53
53
  ) -> UserAuthCredentials:
54
54
  """Authenticate the user and retrieve authentication credentials."""
55
55
  typer.secho(
@@ -61,7 +61,7 @@ class OidcCliPlugin(CliAuthPlugin):
61
61
  time.sleep(login_details.interval)
62
62
 
63
63
  while (time.time() - start_time) < login_details.expires_in:
64
- res: GetAuthTokensResponse = exec_stub.GetAuthTokens(
64
+ res: GetAuthTokensResponse = control_stub.GetAuthTokens(
65
65
  GetAuthTokensRequest(device_code=login_details.device_code)
66
66
  )
67
67
 
@@ -20,7 +20,7 @@ from typing import Any, Callable, Union
20
20
  import grpc
21
21
 
22
22
  from flwr.common.auth_plugin import CliAuthPlugin
23
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
23
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
24
24
  StartRunRequest,
25
25
  StreamLogsRequest,
26
26
  )
@@ -143,7 +143,7 @@ def validate_federation_in_project_config(
143
143
  if federation is None:
144
144
  typer.secho(
145
145
  "❌ No federation name was provided and the project's `pyproject.toml` "
146
- "doesn't declare a default federation (with an Exec API address or an "
146
+ "doesn't declare a default federation (with an Control API address or an "
147
147
  "`options.num-supernodes` value).",
148
148
  fg=typer.colors.RED,
149
149
  bold=True,
@@ -231,7 +231,7 @@ def exit_if_no_address(federation_config: dict[str, Any], cmd: str) -> None:
231
231
  if "address" not in federation_config:
232
232
  typer.secho(
233
233
  f"❌ `flwr {cmd}` currently works with a SuperLink. Ensure that the correct"
234
- "SuperLink (Exec API) address is provided in `pyproject.toml`.",
234
+ "SuperLink (Control API) address is provided in `pyproject.toml`.",
235
235
  fg=typer.colors.RED,
236
236
  bold=True,
237
237
  )
@@ -32,8 +32,8 @@ from flwr.cli.config_utils import (
32
32
  from flwr.cli.constant import FEDERATION_CONFIG_HELP_MESSAGE
33
33
  from flwr.common.constant import CONN_RECONNECT_INTERVAL, CONN_REFRESH_PERIOD
34
34
  from flwr.common.logger import log as logger
35
- from flwr.proto.exec_pb2 import StreamLogsRequest # pylint: disable=E0611
36
- from flwr.proto.exec_pb2_grpc import ExecStub
35
+ from flwr.proto.control_pb2 import StreamLogsRequest # pylint: disable=E0611
36
+ from flwr.proto.control_pb2_grpc import ControlStub
37
37
 
38
38
  from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
39
39
 
@@ -46,7 +46,7 @@ def start_stream(
46
46
  run_id: int, channel: grpc.Channel, refresh_period: int = CONN_REFRESH_PERIOD
47
47
  ) -> None:
48
48
  """Start log streaming for a given run ID."""
49
- stub = ExecStub(channel)
49
+ stub = ControlStub(channel)
50
50
  after_timestamp = 0.0
51
51
  try:
52
52
  logger(INFO, "Starting logstream for run_id `%s`", run_id)
@@ -69,7 +69,7 @@ def start_stream(
69
69
 
70
70
 
71
71
  def stream_logs(
72
- run_id: int, stub: ExecStub, duration: int, after_timestamp: float
72
+ run_id: int, stub: ControlStub, duration: int, after_timestamp: float
73
73
  ) -> float:
74
74
  """Stream logs from the beginning of a run with connection refresh.
75
75
 
@@ -77,8 +77,8 @@ def stream_logs(
77
77
  ----------
78
78
  run_id : int
79
79
  The identifier of the run.
80
- stub : ExecStub
81
- The gRPC stub to interact with the Exec service.
80
+ stub : ControlStub
81
+ The gRPC stub to interact with the Control service.
82
82
  duration : int
83
83
  The timeout duration for each stream connection in seconds.
84
84
  after_timestamp : float
@@ -112,7 +112,7 @@ def stream_logs(
112
112
 
113
113
  def print_logs(run_id: int, channel: grpc.Channel, timeout: int) -> None:
114
114
  """Print logs from the beginning of a run."""
115
- stub = ExecStub(channel)
115
+ stub = ControlStub(channel)
116
116
  req = StreamLogsRequest(run_id=run_id, after_timestamp=0.0)
117
117
 
118
118
  try:
@@ -173,13 +173,13 @@ def log(
173
173
  exit_if_no_address(federation_config, "log")
174
174
 
175
175
  try:
176
- _log_with_exec_api(app, federation, federation_config, run_id, stream)
176
+ _log_with_control_api(app, federation, federation_config, run_id, stream)
177
177
  except Exception as err: # pylint: disable=broad-except
178
178
  typer.secho(str(err), fg=typer.colors.RED, bold=True)
179
179
  raise typer.Exit(code=1) from None
180
180
 
181
181
 
182
- def _log_with_exec_api(
182
+ def _log_with_control_api(
183
183
  app: Path,
184
184
  federation: str,
185
185
  federation_config: dict[str, Any],
@@ -29,11 +29,11 @@ from flwr.cli.config_utils import (
29
29
  )
30
30
  from flwr.cli.constant import FEDERATION_CONFIG_HELP_MESSAGE
31
31
  from flwr.common.typing import UserAuthLoginDetails
32
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
32
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
33
33
  GetLoginDetailsRequest,
34
34
  GetLoginDetailsResponse,
35
35
  )
36
- from flwr.proto.exec_pb2_grpc import ExecStub
36
+ from flwr.proto.control_pb2_grpc import ControlStub
37
37
 
38
38
  from ..utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
39
39
 
@@ -89,7 +89,7 @@ def login( # pylint: disable=R0914
89
89
  raise typer.Exit(code=1)
90
90
 
91
91
  channel = init_channel(app, federation_config, None)
92
- stub = ExecStub(channel)
92
+ stub = ControlStub(channel)
93
93
 
94
94
  login_request = GetLoginDetailsRequest()
95
95
  with flwr_cli_grpc_exc_handler():
@@ -38,11 +38,11 @@ from flwr.common.date import format_timedelta, isoformat8601_utc
38
38
  from flwr.common.logger import print_json_error, redirect_output, restore_output
39
39
  from flwr.common.serde import run_from_proto
40
40
  from flwr.common.typing import Run
41
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
41
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
42
42
  ListRunsRequest,
43
43
  ListRunsResponse,
44
44
  )
45
- from flwr.proto.exec_pb2_grpc import ExecStub
45
+ from flwr.proto.control_pb2_grpc import ControlStub
46
46
 
47
47
  from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
48
48
 
@@ -125,7 +125,7 @@ def ls( # pylint: disable=too-many-locals, too-many-branches, R0913, R0917
125
125
  )
126
126
  auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
127
127
  channel = init_channel(app, federation_config, auth_plugin)
128
- stub = ExecStub(channel)
128
+ stub = ControlStub(channel)
129
129
 
130
130
  # Display information about a specific run ID
131
131
  if run_id is not None:
@@ -293,7 +293,7 @@ def _to_json(run_list: list[_RunListType]) -> str:
293
293
  return json.dumps({"success": True, "runs": runs_list})
294
294
 
295
295
 
296
- def _list_runs(stub: ExecStub) -> list[_RunListType]:
296
+ def _list_runs(stub: ControlStub) -> list[_RunListType]:
297
297
  """List all runs."""
298
298
  with flwr_cli_grpc_exc_handler():
299
299
  res: ListRunsResponse = stub.ListRuns(ListRunsRequest())
@@ -302,7 +302,7 @@ def _list_runs(stub: ExecStub) -> list[_RunListType]:
302
302
  return _format_runs(run_dict, res.now)
303
303
 
304
304
 
305
- def _display_one_run(stub: ExecStub, run_id: int) -> list[_RunListType]:
305
+ def _display_one_run(stub: ControlStub, run_id: int) -> list[_RunListType]:
306
306
  """Display information about a specific run."""
307
307
  with flwr_cli_grpc_exc_handler():
308
308
  res: ListRunsResponse = stub.ListRuns(ListRunsRequest(run_id=run_id))
@@ -41,8 +41,8 @@ from flwr.common.constant import CliOutputFormat
41
41
  from flwr.common.logger import print_json_error, redirect_output, restore_output
42
42
  from flwr.common.serde import config_record_to_proto, fab_to_proto, user_config_to_proto
43
43
  from flwr.common.typing import Fab
44
- from flwr.proto.exec_pb2 import StartRunRequest # pylint: disable=E0611
45
- from flwr.proto.exec_pb2_grpc import ExecStub
44
+ from flwr.proto.control_pb2 import StartRunRequest # pylint: disable=E0611
45
+ from flwr.proto.control_pb2_grpc import ControlStub
46
46
 
47
47
  from ..log import start_stream
48
48
  from ..utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
@@ -112,7 +112,7 @@ def run(
112
112
  )
113
113
 
114
114
  if "address" in federation_config:
115
- _run_with_exec_api(
115
+ _run_with_control_api(
116
116
  app,
117
117
  federation,
118
118
  federation_config,
@@ -121,7 +121,7 @@ def run(
121
121
  output_format,
122
122
  )
123
123
  else:
124
- _run_without_exec_api(
124
+ _run_without_control_api(
125
125
  app, federation_config, run_config_overrides, federation
126
126
  )
127
127
  except (typer.Exit, Exception) as err: # pylint: disable=broad-except
@@ -142,7 +142,7 @@ def run(
142
142
 
143
143
 
144
144
  # pylint: disable-next=R0913, R0914, R0917
145
- def _run_with_exec_api(
145
+ def _run_with_control_api(
146
146
  app: Path,
147
147
  federation: str,
148
148
  federation_config: dict[str, Any],
@@ -154,7 +154,7 @@ def _run_with_exec_api(
154
154
  try:
155
155
  auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
156
156
  channel = init_channel(app, federation_config, auth_plugin)
157
- stub = ExecStub(channel)
157
+ stub = ControlStub(channel)
158
158
 
159
159
  fab_bytes, fab_hash, config = build_fab(app)
160
160
  fab_id, fab_version = get_metadata_from_config(config)
@@ -203,7 +203,7 @@ def _run_with_exec_api(
203
203
  channel.close()
204
204
 
205
205
 
206
- def _run_without_exec_api(
206
+ def _run_without_control_api(
207
207
  app: Optional[Path],
208
208
  federation_config: dict[str, Any],
209
209
  config_overrides: Optional[list[str]],
@@ -32,8 +32,11 @@ from flwr.cli.config_utils import (
32
32
  from flwr.cli.constant import FEDERATION_CONFIG_HELP_MESSAGE
33
33
  from flwr.common.constant import FAB_CONFIG_FILE, CliOutputFormat
34
34
  from flwr.common.logger import print_json_error, redirect_output, restore_output
35
- from flwr.proto.exec_pb2 import StopRunRequest, StopRunResponse # pylint: disable=E0611
36
- from flwr.proto.exec_pb2_grpc import ExecStub
35
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
36
+ StopRunRequest,
37
+ StopRunResponse,
38
+ )
39
+ from flwr.proto.control_pb2_grpc import ControlStub
37
40
 
38
41
  from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
39
42
 
@@ -88,7 +91,7 @@ def stop( # pylint: disable=R0914
88
91
  try:
89
92
  auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
90
93
  channel = init_channel(app, federation_config, auth_plugin)
91
- stub = ExecStub(channel) # pylint: disable=unused-variable # noqa: F841
94
+ stub = ControlStub(channel) # pylint: disable=unused-variable # noqa: F841
92
95
 
93
96
  typer.secho(f"✋ Stopping run ID {run_id}...", fg=typer.colors.GREEN)
94
97
  _stop_run(stub=stub, run_id=run_id, output_format=output_format)
@@ -120,7 +123,7 @@ def stop( # pylint: disable=R0914
120
123
  captured_output.close()
121
124
 
122
125
 
123
- def _stop_run(stub: ExecStub, run_id: int, output_format: str) -> None:
126
+ def _stop_run(stub: ControlStub, run_id: int, output_format: str) -> None:
124
127
  """Stop a run."""
125
128
  with flwr_cli_grpc_exc_handler():
126
129
  response: StopRunResponse = stub.StopRun(request=StopRunRequest(run_id=run_id))
@@ -259,7 +259,7 @@ def try_obtain_cli_auth_plugin(
259
259
  def init_channel(
260
260
  app: Path, federation_config: dict[str, Any], auth_plugin: Optional[CliAuthPlugin]
261
261
  ) -> grpc.Channel:
262
- """Initialize gRPC channel to the Exec API."""
262
+ """Initialize gRPC channel to the Control API."""
263
263
  insecure, root_certificates_bytes = validate_certificate_in_federation_config(
264
264
  app, federation_config
265
265
  )
@@ -16,11 +16,11 @@
16
16
 
17
17
 
18
18
  from .auth_plugin import CliAuthPlugin as CliAuthPlugin
19
- from .auth_plugin import ExecAuthPlugin as ExecAuthPlugin
20
- from .auth_plugin import ExecAuthzPlugin as ExecAuthzPlugin
19
+ from .auth_plugin import ControlAuthPlugin as ControlAuthPlugin
20
+ from .auth_plugin import ControlAuthzPlugin as ControlAuthzPlugin
21
21
 
22
22
  __all__ = [
23
23
  "CliAuthPlugin",
24
- "ExecAuthPlugin",
25
- "ExecAuthzPlugin",
24
+ "ControlAuthPlugin",
25
+ "ControlAuthzPlugin",
26
26
  ]
@@ -21,13 +21,13 @@ from pathlib import Path
21
21
  from typing import Optional, Union
22
22
 
23
23
  from flwr.common.typing import AccountInfo
24
- from flwr.proto.exec_pb2_grpc import ExecStub
24
+ from flwr.proto.control_pb2_grpc import ControlStub
25
25
 
26
26
  from ..typing import UserAuthCredentials, UserAuthLoginDetails
27
27
 
28
28
 
29
- class ExecAuthPlugin(ABC):
30
- """Abstract Flower Auth Plugin class for ExecServicer.
29
+ class ControlAuthPlugin(ABC):
30
+ """Abstract Flower Auth Plugin class for ControlServicer.
31
31
 
32
32
  Parameters
33
33
  ----------
@@ -69,8 +69,8 @@ class ExecAuthPlugin(ABC):
69
69
  """Refresh authentication tokens in the provided metadata."""
70
70
 
71
71
 
72
- class ExecAuthzPlugin(ABC): # pylint: disable=too-few-public-methods
73
- """Abstract Flower Authorization Plugin class for ExecServicer.
72
+ class ControlAuthzPlugin(ABC): # pylint: disable=too-few-public-methods
73
+ """Abstract Flower Authorization Plugin class for ControlServicer.
74
74
 
75
75
  Parameters
76
76
  ----------
@@ -103,7 +103,7 @@ class CliAuthPlugin(ABC):
103
103
  @abstractmethod
104
104
  def login(
105
105
  login_details: UserAuthLoginDetails,
106
- exec_stub: ExecStub,
106
+ control_stub: ControlStub,
107
107
  ) -> UserAuthCredentials:
108
108
  """Authenticate the user and retrieve authentication credentials.
109
109
 
@@ -111,7 +111,7 @@ class CliAuthPlugin(ABC):
111
111
  ----------
112
112
  login_details : UserAuthLoginDetails
113
113
  An object containing the user's login details.
114
- exec_stub : ExecStub
114
+ control_stub : ControlStub
115
115
  A stub for executing RPC calls to the server.
116
116
 
117
117
  Returns
@@ -35,7 +35,7 @@ CLIENTAPPIO_PORT = "9094"
35
35
  SERVERAPPIO_PORT = "9091"
36
36
  FLEETAPI_GRPC_RERE_PORT = "9092"
37
37
  FLEETAPI_PORT = "9095"
38
- EXEC_API_PORT = "9093"
38
+ CONTROL_API_PORT = "9093"
39
39
  SIMULATIONIO_PORT = "9096"
40
40
  # Octets
41
41
  SERVER_OCTET = "0.0.0.0"
@@ -51,7 +51,7 @@ FLEET_API_GRPC_BIDI_DEFAULT_ADDRESS = (
51
51
  "[::]:8080" # IPv6 to keep start_server compatible
52
52
  )
53
53
  FLEET_API_REST_DEFAULT_ADDRESS = f"{SERVER_OCTET}:{FLEETAPI_PORT}"
54
- EXEC_API_DEFAULT_SERVER_ADDRESS = f"{SERVER_OCTET}:{EXEC_API_PORT}"
54
+ CONTROL_API_DEFAULT_SERVER_ADDRESS = f"{SERVER_OCTET}:{CONTROL_API_PORT}"
55
55
  SIMULATIONIO_API_DEFAULT_SERVER_ADDRESS = f"{SERVER_OCTET}:{SIMULATIONIO_PORT}"
56
56
  SIMULATIONIO_API_DEFAULT_CLIENT_ADDRESS = f"{CLIENT_OCTET}:{SIMULATIONIO_PORT}"
57
57
 
@@ -103,7 +103,7 @@ ISOLATION_MODE_PROCESS = "process"
103
103
  # Log streaming configurations
104
104
  CONN_REFRESH_PERIOD = 60 # Stream connection refresh period
105
105
  CONN_RECONNECT_INTERVAL = 0.5 # Reconnect interval between two stream connections
106
- LOG_STREAM_INTERVAL = 0.5 # Log stream interval for `ExecServicer.StreamLogs`
106
+ LOG_STREAM_INTERVAL = 0.5 # Log stream interval for `ControlServicer.StreamLogs`
107
107
  LOG_UPLOAD_INTERVAL = 0.2 # Minimum interval between two log uploads
108
108
 
109
109
  # Retry configurations
@@ -152,7 +152,7 @@ PULL_INITIAL_BACKOFF = 1 # Initial backoff time for pulling objects
152
152
  PULL_BACKOFF_CAP = 10 # Maximum backoff time for pulling objects
153
153
 
154
154
 
155
- # ExecServicer constants
155
+ # ControlServicer constants
156
156
  RUN_ID_NOT_FOUND_MESSAGE = "Run ID not found"
157
157
 
158
158
 
@@ -25,7 +25,7 @@ from flwr.common.typing import AccountInfo, LogEntry
25
25
 
26
26
 
27
27
  class EventLogWriterPlugin(ABC):
28
- """Abstract Flower Event Log Writer Plugin class for ExecServicer."""
28
+ """Abstract Flower Event Log Writer Plugin class for ControlServicer."""
29
29
 
30
30
  @abstractmethod
31
31
  def __init__(self) -> None:
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/control.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 transport_pb2 as flwr_dot_proto_dot_transport__pb2
17
+ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
18
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/control.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x14\x66lwr/proto/run.proto\"\xfa\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x18.flwr.proto.ConfigRecord\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"2\n\x10StartRunResponse\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\"\x18\n\x16GetLoginDetailsRequest\"\x8a\x01\n\x17GetLoginDetailsResponse\x12\x11\n\tauth_type\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65vice_code\x18\x02 \x01(\t\x12!\n\x19verification_uri_complete\x18\x03 \x01(\t\x12\x12\n\nexpires_in\x18\x04 \x01(\x03\x12\x10\n\x08interval\x18\x05 \x01(\x03\"+\n\x14GetAuthTokensRequest\x12\x13\n\x0b\x64\x65vice_code\x18\x01 \x01(\t\"D\n\x15GetAuthTokensResponse\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x01 \x01(\t\x12\x15\n\rrefresh_token\x18\x02 \x01(\t\" \n\x0eStopRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"\"\n\x0fStopRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32\xe8\x03\n\x07\x43ontrol\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12\x44\n\x07StopRun\x12\x1a.flwr.proto.StopRunRequest\x1a\x1b.flwr.proto.StopRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x12\\\n\x0fGetLoginDetails\x12\".flwr.proto.GetLoginDetailsRequest\x1a#.flwr.proto.GetLoginDetailsResponse\"\x00\x12V\n\rGetAuthTokens\x12 .flwr.proto.GetAuthTokensRequest\x1a!.flwr.proto.GetAuthTokensResponse\"\x00\x62\x06proto3')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.control_pb2', _globals)
26
+ if _descriptor._USE_C_DESCRIPTORS == False:
27
+ DESCRIPTOR._options = None
28
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._options = None
29
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
30
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._options = None
31
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_options = b'8\001'
32
+ _globals['_STARTRUNREQUEST']._serialized_start=142
33
+ _globals['_STARTRUNREQUEST']._serialized_end=392
34
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=319
35
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=392
36
+ _globals['_STARTRUNRESPONSE']._serialized_start=394
37
+ _globals['_STARTRUNRESPONSE']._serialized_end=444
38
+ _globals['_STREAMLOGSREQUEST']._serialized_start=446
39
+ _globals['_STREAMLOGSREQUEST']._serialized_end=506
40
+ _globals['_STREAMLOGSRESPONSE']._serialized_start=508
41
+ _globals['_STREAMLOGSRESPONSE']._serialized_end=574
42
+ _globals['_LISTRUNSREQUEST']._serialized_start=576
43
+ _globals['_LISTRUNSREQUEST']._serialized_end=625
44
+ _globals['_LISTRUNSRESPONSE']._serialized_start=628
45
+ _globals['_LISTRUNSRESPONSE']._serialized_end=785
46
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_start=722
47
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_end=785
48
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_start=787
49
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_end=811
50
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_start=814
51
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_end=952
52
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_start=954
53
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_end=997
54
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_start=999
55
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_end=1067
56
+ _globals['_STOPRUNREQUEST']._serialized_start=1069
57
+ _globals['_STOPRUNREQUEST']._serialized_end=1101
58
+ _globals['_STOPRUNRESPONSE']._serialized_start=1103
59
+ _globals['_STOPRUNRESPONSE']._serialized_end=1137
60
+ _globals['_CONTROL']._serialized_start=1140
61
+ _globals['_CONTROL']._serialized_end=1628
62
+ # @@protoc_insertion_point(module_scope)