flwr-nightly 1.20.0.dev20250724__tar.gz → 1.20.0.dev20250728__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.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/PKG-INFO +1 -1
  2. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/new.py +12 -4
  3. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +2 -0
  4. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/README.md.tpl +5 -0
  5. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +13 -2
  6. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +12 -0
  7. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +20 -1
  8. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +52 -0
  9. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +56 -0
  10. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +49 -0
  11. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +53 -0
  12. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +52 -0
  13. flwr_nightly-1.20.0.dev20250728/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +53 -0
  14. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/utils.py +11 -3
  15. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_rere_client/connection.py +1 -2
  16. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/rest_client/connection.py +1 -2
  17. flwr_nightly-1.20.0.dev20250728/py/flwr/proto/appio_pb2.py +43 -0
  18. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/appio_pb2.pyi +2 -17
  19. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fleet_pb2.py +8 -12
  20. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fleet_pb2.pyi +2 -17
  21. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/grid/grpc_grid.py +26 -24
  22. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/run_simulation.py +17 -0
  23. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/object_store/utils.py +5 -10
  24. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/runtime/run_clientapp.py +1 -3
  25. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/pyproject.toml +1 -1
  26. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -35
  27. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -39
  28. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -32
  29. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -36
  30. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -35
  31. flwr_nightly-1.20.0.dev20250724/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -36
  32. flwr_nightly-1.20.0.dev20250724/py/flwr/proto/appio_pb2.py +0 -47
  33. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/README.md +0 -0
  34. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/__init__.py +0 -0
  35. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/app/__init__.py +0 -0
  36. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/app/error.py +0 -0
  37. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/app/metadata.py +0 -0
  38. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/__init__.py +0 -0
  39. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/app.py +0 -0
  40. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  41. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  42. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/build.py +0 -0
  43. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
  44. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/config_utils.py +0 -0
  45. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/constant.py +0 -0
  46. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/example.py +0 -0
  47. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/install.py +0 -0
  48. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/log.py +0 -0
  49. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/login/__init__.py +0 -0
  50. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/login/login.py +0 -0
  51. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/ls.py +0 -0
  52. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/__init__.py +0 -0
  53. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/__init__.py +0 -0
  54. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  55. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  56. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  57. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  58. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  59. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  60. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  61. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  62. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  63. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  64. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  65. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  66. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  67. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  68. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  69. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  70. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  71. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  72. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  73. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  74. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  75. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  76. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  77. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  78. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  79. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  80. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  81. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  82. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  83. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  84. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  85. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  86. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  87. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  88. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  89. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  90. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  91. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  92. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  93. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  94. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/run/__init__.py +0 -0
  95. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/run/run.py +0 -0
  96. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/cli/stop.py +0 -0
  97. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/__init__.py +0 -0
  98. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/client.py +0 -0
  99. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/client_app.py +0 -0
  100. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/clientapp/__init__.py +0 -0
  101. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/clientapp/utils.py +0 -0
  102. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  103. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  104. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  105. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  106. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  107. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  108. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/message_handler/__init__.py +0 -0
  109. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/message_handler/message_handler.py +0 -0
  110. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/__init__.py +0 -0
  111. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/centraldp_mods.py +0 -0
  112. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/comms_mods.py +0 -0
  113. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/localdp_mod.py +0 -0
  114. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  115. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  116. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  117. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/mod/utils.py +0 -0
  118. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/numpy_client.py +0 -0
  119. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/rest_client/__init__.py +0 -0
  120. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/run_info_store.py +0 -0
  121. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/client/typing.py +0 -0
  122. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/clientapp/__init__.py +0 -0
  123. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/__init__.py +0 -0
  124. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/address.py +0 -0
  125. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/args.py +0 -0
  126. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/auth_plugin/__init__.py +0 -0
  127. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
  128. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/config.py +0 -0
  129. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/constant.py +0 -0
  130. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/context.py +0 -0
  131. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/date.py +0 -0
  132. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/differential_privacy.py +0 -0
  133. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/differential_privacy_constants.py +0 -0
  134. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/dp.py +0 -0
  135. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  136. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  137. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/exit/__init__.py +0 -0
  138. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/exit/exit.py +0 -0
  139. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/exit/exit_code.py +0 -0
  140. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/exit_handlers.py +0 -0
  141. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/grpc.py +0 -0
  142. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/heartbeat.py +0 -0
  143. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/inflatable.py +0 -0
  144. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
  145. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/inflatable_utils.py +0 -0
  146. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/logger.py +0 -0
  147. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/message.py +0 -0
  148. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/object_ref.py +0 -0
  149. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/parameter.py +0 -0
  150. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/pyproject.py +0 -0
  151. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/__init__.py +0 -0
  152. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/array.py +0 -0
  153. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/arraychunk.py +0 -0
  154. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/arrayrecord.py +0 -0
  155. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/configrecord.py +0 -0
  156. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/conversion_utils.py +0 -0
  157. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/metricrecord.py +0 -0
  158. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/recorddict.py +0 -0
  159. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/record/typeddict.py +0 -0
  160. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/recorddict_compat.py +0 -0
  161. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/retry_invoker.py +0 -0
  162. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  163. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  164. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  165. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  166. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  167. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  168. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  169. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  170. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/serde.py +0 -0
  171. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/serde_utils.py +0 -0
  172. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/telemetry.py +0 -0
  173. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/typing.py +0 -0
  174. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/common/version.py +0 -0
  175. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/__init__.py +0 -0
  176. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/client/__init__.py +0 -0
  177. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/client/app.py +0 -0
  178. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  179. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  180. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/common/__init__.py +0 -0
  181. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/server/__init__.py +0 -0
  182. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/server/app.py +0 -0
  183. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/compat/simulation/__init__.py +0 -0
  184. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/__init__.py +0 -0
  185. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/appio_pb2_grpc.py +0 -0
  186. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  187. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/clientappio_pb2.py +0 -0
  188. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/clientappio_pb2.pyi +0 -0
  189. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  191. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/error_pb2.py +0 -0
  192. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/error_pb2.pyi +0 -0
  193. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/error_pb2_grpc.py +0 -0
  194. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  195. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/exec_pb2.py +0 -0
  196. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/exec_pb2.pyi +0 -0
  197. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/exec_pb2_grpc.py +0 -0
  198. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  199. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fab_pb2.py +0 -0
  200. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fab_pb2.pyi +0 -0
  201. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  202. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  203. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  204. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  205. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  206. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  207. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  208. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  209. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/heartbeat_pb2.py +0 -0
  210. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  211. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  212. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  213. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/log_pb2.py +0 -0
  214. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/log_pb2.pyi +0 -0
  215. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/log_pb2_grpc.py +0 -0
  216. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  217. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/message_pb2.py +0 -0
  218. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/message_pb2.pyi +0 -0
  219. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/message_pb2_grpc.py +0 -0
  220. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  221. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/node_pb2.py +0 -0
  222. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/node_pb2.pyi +0 -0
  223. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/node_pb2_grpc.py +0 -0
  224. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  225. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/recorddict_pb2.py +0 -0
  226. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  227. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  228. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  229. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/run_pb2.py +0 -0
  230. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/run_pb2.pyi +0 -0
  231. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/run_pb2_grpc.py +0 -0
  232. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  233. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/serverappio_pb2.py +0 -0
  234. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  235. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  236. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  237. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/simulationio_pb2.py +0 -0
  238. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  239. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  240. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  241. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/transport_pb2.py +0 -0
  242. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/transport_pb2.pyi +0 -0
  243. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  244. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  245. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/py.typed +0 -0
  246. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/__init__.py +0 -0
  247. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/app.py +0 -0
  248. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/client_manager.py +0 -0
  249. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/client_proxy.py +0 -0
  250. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/compat/__init__.py +0 -0
  251. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/compat/app.py +0 -0
  252. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/compat/app_utils.py +0 -0
  253. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  254. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/compat/legacy_context.py +0 -0
  255. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/criterion.py +0 -0
  256. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  257. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/grid/__init__.py +0 -0
  258. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/grid/grid.py +0 -0
  259. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/grid/inmemory_grid.py +0 -0
  260. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/history.py +0 -0
  261. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/run_serverapp.py +0 -0
  262. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/server.py +0 -0
  263. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/server_app.py +0 -0
  264. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/server_config.py +0 -0
  265. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/serverapp/__init__.py +0 -0
  266. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/serverapp/app.py +0 -0
  267. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/serverapp_components.py +0 -0
  268. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/__init__.py +0 -0
  269. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/aggregate.py +0 -0
  270. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/bulyan.py +0 -0
  271. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  272. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  273. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  274. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  275. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  276. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedadagrad.py +0 -0
  277. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedadam.py +0 -0
  278. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedavg.py +0 -0
  279. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedavg_android.py +0 -0
  280. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedavgm.py +0 -0
  281. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedmedian.py +0 -0
  282. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedopt.py +0 -0
  283. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedprox.py +0 -0
  284. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  285. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  286. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  287. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  288. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/fedyogi.py +0 -0
  289. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/krum.py +0 -0
  290. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/qfedavg.py +0 -0
  291. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/strategy/strategy.py +0 -0
  292. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/__init__.py +0 -0
  293. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  294. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  295. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  296. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  297. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  298. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  299. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  300. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  301. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  302. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  303. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  304. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  305. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  306. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  307. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  308. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  309. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  310. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  311. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  312. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  313. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  314. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  315. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  316. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  317. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  318. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  319. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  320. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  321. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
  322. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  323. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  324. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  325. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/superlink/utils.py +0 -0
  326. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/typing.py +0 -0
  327. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/utils/__init__.py +0 -0
  328. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/utils/tensorboard.py +0 -0
  329. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/utils/validator.py +0 -0
  330. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/__init__.py +0 -0
  331. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/constant.py +0 -0
  332. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/default_workflows.py +0 -0
  333. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  334. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  335. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  336. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/serverapp/__init__.py +0 -0
  337. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/__init__.py +0 -0
  338. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/app.py +0 -0
  339. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/legacy_app.py +0 -0
  340. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  341. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  342. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  343. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/ray_transport/utils.py +0 -0
  344. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/simulation/simulationio_connection.py +0 -0
  345. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/__init__.py +0 -0
  346. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/ffs/__init__.py +0 -0
  347. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  348. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/ffs/ffs.py +0 -0
  349. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  350. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/grpc_health/__init__.py +0 -0
  351. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
  352. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  353. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  354. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/object_store/__init__.py +0 -0
  355. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  356. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/object_store/object_store.py +0 -0
  357. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  358. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/scheduler/__init__.py +0 -0
  359. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/scheduler/plugin.py +0 -0
  360. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supercore/utils.py +0 -0
  361. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/__init__.py +0 -0
  362. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/app.py +0 -0
  363. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/deployment.py +0 -0
  364. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/exec_event_log_interceptor.py +0 -0
  365. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/exec_grpc.py +0 -0
  366. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/exec_license_interceptor.py +0 -0
  367. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/exec_servicer.py +0 -0
  368. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/exec_user_auth_interceptor.py +0 -0
  369. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/executor.py +0 -0
  370. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superexec/simulation.py +0 -0
  371. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/superlink/__init__.py +0 -0
  372. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/__init__.py +0 -0
  373. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/cli/__init__.py +0 -0
  374. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  375. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  376. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/nodestate/__init__.py +0 -0
  377. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  378. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  379. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  380. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/runtime/__init__.py +0 -0
  381. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/scheduler/__init__.py +0 -0
  382. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +0 -0
  383. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/servicer/__init__.py +0 -0
  384. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  385. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
  386. {flwr_nightly-1.20.0.dev20250724 → flwr_nightly-1.20.0.dev20250728}/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.20.0.dev20250724
3
+ Version: 1.20.0.dev20250728
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
@@ -271,28 +271,36 @@ def new(
271
271
 
272
272
  prompt = typer.style(
273
273
  "🎊 Flower App creation successful.\n\n"
274
- "To run your Flower App, use the following command:\n\n",
274
+ "To run your Flower App, first install its dependencies:\n\n",
275
275
  fg=typer.colors.GREEN,
276
276
  bold=True,
277
277
  )
278
278
 
279
279
  _add = " huggingface-cli login\n" if llm_challenge_str else ""
280
+
280
281
  prompt += typer.style(
281
- _add + f" flwr run {package_name}\n\n",
282
+ f" cd {package_name} && pip install -e .\n" + _add + "\n",
282
283
  fg=typer.colors.BRIGHT_CYAN,
283
284
  bold=True,
284
285
  )
285
286
 
286
287
  prompt += typer.style(
287
- "If you haven't installed all dependencies yet, follow these steps:\n\n",
288
+ "then, run the app:\n\n ",
288
289
  fg=typer.colors.GREEN,
289
290
  bold=True,
290
291
  )
291
292
 
292
293
  prompt += typer.style(
293
- f" cd {package_name}\n" + " pip install -e .\n" + _add + " flwr run .\n",
294
+ "\tflwr run .\n\n",
294
295
  fg=typer.colors.BRIGHT_CYAN,
295
296
  bold=True,
296
297
  )
297
298
 
299
+ prompt += typer.style(
300
+ "💡 Check the README in your app directory to learn how to\n"
301
+ "customize it and how to run it using the Deployment Runtime.\n",
302
+ fg=typer.colors.GREEN,
303
+ bold=True,
304
+ )
305
+
298
306
  print(prompt)
@@ -21,6 +21,8 @@ Project dependencies are defined in `pyproject.toml`. Install them in an activat
21
21
  pip install -e .
22
22
  ```
23
23
 
24
+ > **Tip:** Learn how to configure your `pyproject.toml` file for Flower apps in [this guide](https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html).
25
+
24
26
  ## Experimental setup
25
27
 
26
28
  The dataset is divided into $num_clients partitions in an IID fashion, a partition is assigned to each ClientApp.
@@ -2,10 +2,15 @@
2
2
 
3
3
  ## Install dependencies and project
4
4
 
5
+ The dependencies are listed in the `pyproject.toml` and you can install them as follows:
6
+
5
7
  ```bash
6
8
  pip install -e .
7
9
  ```
8
10
 
11
+ > **Tip:** Your `pyproject.toml` file can define more than just the dependencies of your Flower app. You can also use it to specify hyperparameters for your runs and control which Flower Runtime is used. By default, it uses the Simulation Runtime, but you can switch to the Deployment Runtime when needed.
12
+ > Learn more in the [TOML configuration guide](https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html).
13
+
9
14
  ## Run with the Simulation Engine
10
15
 
11
16
  In the `$project_name` directory, use `flwr run` to run a local simulation:
@@ -1,3 +1,8 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
1
6
  [build-system]
2
7
  requires = ["hatchling"]
3
8
  build-backend = "hatchling.build"
@@ -7,11 +12,12 @@ name = "$package_name"
7
12
  version = "1.0.0"
8
13
  description = ""
9
14
  license = "Apache-2.0"
15
+ # Dependencies for your Flower App
10
16
  dependencies = [
11
17
  "flwr[simulation]>=1.20.0",
12
18
  "flwr-datasets[vision]>=0.5.0",
13
- "torch==2.6.0",
14
- "torchvision==0.21.0",
19
+ "torch==2.7.1",
20
+ "torchvision==0.22.1",
15
21
  ]
16
22
 
17
23
  [tool.hatch.metadata]
@@ -117,18 +123,23 @@ packages = ["."]
117
123
  [tool.flwr.app]
118
124
  publisher = "$username"
119
125
 
126
+ # Point to your ServerApp and ClientApp objects
127
+ # Format: "<module>:<object>"
120
128
  [tool.flwr.app.components]
121
129
  serverapp = "$import_name.server_app:app"
122
130
  clientapp = "$import_name.client_app:app"
123
131
 
132
+ # Custom config values accessible via `context.run_config`
124
133
  [tool.flwr.app.config]
125
134
  num-server-rounds = 3
126
135
  fraction-fit = 0.5
127
136
  local-epochs = 1
128
137
 
138
+ # Default federation to use when running the app
129
139
  [tool.flwr.federations]
130
140
  default = "local-simulation"
131
141
 
142
+ # Local simulation federation with 10 virtual SuperNodes
132
143
  [tool.flwr.federations.local-simulation]
133
144
  options.num-supernodes = 10
134
145
  options.backend.client-resources.num-cpus = 2
@@ -1,3 +1,8 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
1
6
  [build-system]
2
7
  requires = ["hatchling"]
3
8
  build-backend = "hatchling.build"
@@ -7,6 +12,7 @@ name = "$package_name"
7
12
  version = "1.0.0"
8
13
  description = ""
9
14
  license = "Apache-2.0"
15
+ # Dependencies for your Flower App
10
16
  dependencies = [
11
17
  "flwr[simulation]>=1.20.0",
12
18
  "flwr-datasets>=0.5.0",
@@ -27,10 +33,13 @@ packages = ["."]
27
33
  [tool.flwr.app]
28
34
  publisher = "$username"
29
35
 
36
+ # Point to your ServerApp and ClientApp objects
37
+ # Format: "<module>:<object>"
30
38
  [tool.flwr.app.components]
31
39
  serverapp = "$import_name.server_app:app"
32
40
  clientapp = "$import_name.client_app:app"
33
41
 
42
+ # Custom config values accessible via `context.run_config`
34
43
  [tool.flwr.app.config]
35
44
  model.name = "mistralai/Mistral-7B-v0.3"
36
45
  model.quantization = 4
@@ -56,12 +65,15 @@ strategy.fraction-fit = $fraction_fit
56
65
  strategy.fraction-evaluate = 0.0
57
66
  num-server-rounds = 200
58
67
 
68
+ # Dataset config (static for FlowerTune LLM Leaderboard)
59
69
  [tool.flwr.app.config.static]
60
70
  dataset.name = "$dataset_name"
61
71
 
72
+ # Default federation to use when running the app
62
73
  [tool.flwr.federations]
63
74
  default = "local-simulation"
64
75
 
76
+ # Local simulation federation with $num_clients virtual SuperNodes
65
77
  [tool.flwr.federations.local-simulation]
66
78
  options.num-supernodes = $num_clients
67
79
  options.backend.client-resources.num-cpus = 6
@@ -1,3 +1,8 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
1
6
  [build-system]
2
7
  requires = ["hatchling"]
3
8
  build-backend = "hatchling.build"
@@ -7,10 +12,11 @@ name = "$package_name"
7
12
  version = "1.0.0"
8
13
  description = ""
9
14
  license = "Apache-2.0"
15
+ # Dependencies for your Flower App
10
16
  dependencies = [
11
17
  "flwr[simulation]>=1.20.0",
12
18
  "flwr-datasets>=0.5.0",
13
- "torch==2.5.1",
19
+ "torch==2.7.1",
14
20
  "transformers>=4.30.0,<5.0",
15
21
  "evaluate>=0.4.0,<1.0",
16
22
  "datasets>=2.0.0, <3.0",
@@ -23,10 +29,13 @@ packages = ["."]
23
29
  [tool.flwr.app]
24
30
  publisher = "$username"
25
31
 
32
+ # Point to your ServerApp and ClientApp objects
33
+ # Format: "<module>:<object>"
26
34
  [tool.flwr.app.components]
27
35
  serverapp = "$import_name.server_app:app"
28
36
  clientapp = "$import_name.client_app:app"
29
37
 
38
+ # Custom config values accessible via `context.run_config`
30
39
  [tool.flwr.app.config]
31
40
  num-server-rounds = 3
32
41
  fraction-fit = 0.5
@@ -34,13 +43,23 @@ local-epochs = 1
34
43
  model-name = "prajjwal1/bert-tiny" # Set a larger model if you have access to more GPU resources
35
44
  num-labels = 2
36
45
 
46
+ # Default federation to use when running the app
37
47
  [tool.flwr.federations]
38
48
  default = "localhost"
39
49
 
50
+ # Local simulation federation with 10 virtual SuperNodes
40
51
  [tool.flwr.federations.localhost]
41
52
  options.num-supernodes = 10
42
53
 
54
+ # Local simulation federation with 10 virtual SuperNodes
55
+ # making use of GPUs
43
56
  [tool.flwr.federations.localhost-gpu]
44
57
  options.num-supernodes = 10
45
58
  options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs
46
59
  options.backend.client-resources.num-gpus = 0.25 # at most 4 ClientApps will run in a given GPU
60
+
61
+ # Remote federation example for use with SuperLink
62
+ [tool.flwr.federations.remote-federation]
63
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
64
+ insecure = true # Remove this line to enable TLS
65
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,52 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "jax==0.4.30",
19
+ "jaxlib==0.4.30",
20
+ "scikit-learn==1.6.1",
21
+ ]
22
+
23
+ [tool.hatch.build.targets.wheel]
24
+ packages = ["."]
25
+
26
+ [tool.flwr.app]
27
+ publisher = "$username"
28
+
29
+ # Point to your ServerApp and ClientApp objects
30
+ # Format: "<module>:<object>"
31
+ [tool.flwr.app.components]
32
+ serverapp = "$import_name.server_app:app"
33
+ clientapp = "$import_name.client_app:app"
34
+
35
+ # Custom config values accessible via `context.run_config`
36
+ [tool.flwr.app.config]
37
+ num-server-rounds = 3
38
+ input-dim = 3
39
+
40
+ # Default federation to use when running the app
41
+ [tool.flwr.federations]
42
+ default = "local-simulation"
43
+
44
+ # Local simulation federation with 10 virtual SuperNodes
45
+ [tool.flwr.federations.local-simulation]
46
+ options.num-supernodes = 10
47
+
48
+ # Remote federation example for use with SuperLink
49
+ [tool.flwr.federations.remote-federation]
50
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
51
+ insecure = true # Remove this line to enable TLS
52
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,56 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "flwr-datasets[vision]>=0.5.0",
19
+ "mlx==0.26.5",
20
+ ]
21
+
22
+ [tool.hatch.build.targets.wheel]
23
+ packages = ["."]
24
+
25
+ [tool.flwr.app]
26
+ publisher = "$username"
27
+
28
+ # Point to your ServerApp and ClientApp objects
29
+ # Format: "<module>:<object>"
30
+ [tool.flwr.app.components]
31
+ serverapp = "$import_name.server_app:app"
32
+ clientapp = "$import_name.client_app:app"
33
+
34
+ # Custom config values accessible via `context.run_config`
35
+ [tool.flwr.app.config]
36
+ num-server-rounds = 3
37
+ local-epochs = 1
38
+ num-layers = 2
39
+ input-dim = 784 # 28*28
40
+ hidden-dim = 32
41
+ batch-size = 256
42
+ lr = 0.1
43
+
44
+ # Default federation to use when running the app
45
+ [tool.flwr.federations]
46
+ default = "local-simulation"
47
+
48
+ # Local simulation federation with 10 virtual SuperNodes
49
+ [tool.flwr.federations.local-simulation]
50
+ options.num-supernodes = 10
51
+
52
+ # Remote federation example for use with SuperLink
53
+ [tool.flwr.federations.remote-federation]
54
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
55
+ insecure = true # Remove this line to enable TLS
56
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,49 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "numpy>=2.0.2",
19
+ ]
20
+
21
+ [tool.hatch.build.targets.wheel]
22
+ packages = ["."]
23
+
24
+ [tool.flwr.app]
25
+ publisher = "$username"
26
+
27
+ # Point to your ServerApp and ClientApp objects
28
+ # Format: "<module>:<object>"
29
+ [tool.flwr.app.components]
30
+ serverapp = "$import_name.server_app:app"
31
+ clientapp = "$import_name.client_app:app"
32
+
33
+ # Custom config values accessible via `context.run_config`
34
+ [tool.flwr.app.config]
35
+ num-server-rounds = 3
36
+
37
+ # Default federation to use when running the app
38
+ [tool.flwr.federations]
39
+ default = "local-simulation"
40
+
41
+ # Local simulation federation with 10 virtual SuperNodes
42
+ [tool.flwr.federations.local-simulation]
43
+ options.num-supernodes = 10
44
+
45
+ # Remote federation example for use with SuperLink
46
+ [tool.flwr.federations.remote-federation]
47
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
48
+ insecure = true # Remove this line to enable TLS
49
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,53 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "flwr-datasets[vision]>=0.5.0",
19
+ "torch==2.7.1",
20
+ "torchvision==0.22.1",
21
+ ]
22
+
23
+ [tool.hatch.build.targets.wheel]
24
+ packages = ["."]
25
+
26
+ [tool.flwr.app]
27
+ publisher = "$username"
28
+
29
+ # Point to your ServerApp and ClientApp objects
30
+ # Format: "<module>:<object>"
31
+ [tool.flwr.app.components]
32
+ serverapp = "$import_name.server_app:app"
33
+ clientapp = "$import_name.client_app:app"
34
+
35
+ # Custom config values accessible via `context.run_config`
36
+ [tool.flwr.app.config]
37
+ num-server-rounds = 3
38
+ fraction-fit = 0.5
39
+ local-epochs = 1
40
+
41
+ # Default federation to use when running the app
42
+ [tool.flwr.federations]
43
+ default = "local-simulation"
44
+
45
+ # Local simulation federation with 10 virtual SuperNodes
46
+ [tool.flwr.federations.local-simulation]
47
+ options.num-supernodes = 10
48
+
49
+ # Remote federation example for use with SuperLink
50
+ [tool.flwr.federations.remote-federation]
51
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
52
+ insecure = true # Remove this line to enable TLS
53
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,52 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "flwr-datasets[vision]>=0.5.0",
19
+ "scikit-learn>=1.6.1",
20
+ ]
21
+
22
+ [tool.hatch.build.targets.wheel]
23
+ packages = ["."]
24
+
25
+ [tool.flwr.app]
26
+ publisher = "$username"
27
+
28
+ # Point to your ServerApp and ClientApp objects
29
+ # Format: "<module>:<object>"
30
+ [tool.flwr.app.components]
31
+ serverapp = "$import_name.server_app:app"
32
+ clientapp = "$import_name.client_app:app"
33
+
34
+ # Custom config values accessible via `context.run_config`
35
+ [tool.flwr.app.config]
36
+ num-server-rounds = 3
37
+ penalty = "l2"
38
+ local-epochs = 1
39
+
40
+ # Default federation to use when running the app
41
+ [tool.flwr.federations]
42
+ default = "local-simulation"
43
+
44
+ # Local simulation federation with 10 virtual SuperNodes
45
+ [tool.flwr.federations.local-simulation]
46
+ options.num-supernodes = 10
47
+
48
+ # Remote federation example for use with SuperLink
49
+ [tool.flwr.federations.remote-federation]
50
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
51
+ insecure = true # Remove this line to enable TLS
52
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -0,0 +1,53 @@
1
+ # =====================================================================
2
+ # For a full TOML configuration guide, check the Flower docs:
3
+ # https://flower.ai/docs/framework/how-to-configure-pyproject-toml.html
4
+ # =====================================================================
5
+
6
+ [build-system]
7
+ requires = ["hatchling"]
8
+ build-backend = "hatchling.build"
9
+
10
+ [project]
11
+ name = "$package_name"
12
+ version = "1.0.0"
13
+ description = ""
14
+ license = "Apache-2.0"
15
+ # Dependencies for your Flower App
16
+ dependencies = [
17
+ "flwr[simulation]>=1.20.0",
18
+ "flwr-datasets[vision]>=0.5.0",
19
+ "tensorflow>=2.11.1,<2.18.0",
20
+ ]
21
+
22
+ [tool.hatch.build.targets.wheel]
23
+ packages = ["."]
24
+
25
+ [tool.flwr.app]
26
+ publisher = "$username"
27
+
28
+ # Point to your ServerApp and ClientApp objects
29
+ # Format: "<module>:<object>"
30
+ [tool.flwr.app.components]
31
+ serverapp = "$import_name.server_app:app"
32
+ clientapp = "$import_name.client_app:app"
33
+
34
+ # Custom config values accessible via `context.run_config`
35
+ [tool.flwr.app.config]
36
+ num-server-rounds = 3
37
+ local-epochs = 1
38
+ batch-size = 32
39
+ verbose = false
40
+
41
+ # Default federation to use when running the app
42
+ [tool.flwr.federations]
43
+ default = "local-simulation"
44
+
45
+ # Local simulation federation with 10 virtual SuperNodes
46
+ [tool.flwr.federations.local-simulation]
47
+ options.num-supernodes = 10
48
+
49
+ # Remote federation example for use with SuperLink
50
+ [tool.flwr.federations.remote-federation]
51
+ address = "<SUPERLINK-ADDRESS>:<PORT>"
52
+ insecure = true # Remove this line to enable TLS
53
+ # root-certificates = "<PATH/TO/ca.crt>" # For TLS setup
@@ -296,9 +296,9 @@ def init_channel(
296
296
  def flwr_cli_grpc_exc_handler() -> Iterator[None]:
297
297
  """Context manager to handle specific gRPC errors.
298
298
 
299
- It catches grpc.RpcError exceptions with UNAUTHENTICATED, UNIMPLEMENTED, and
300
- PERMISSION_DENIED statuses, informs the user, and exits the application. All other
301
- exceptions will be allowed to escape.
299
+ It catches grpc.RpcError exceptions with UNAUTHENTICATED, UNIMPLEMENTED,
300
+ UNAVAILABLE, and PERMISSION_DENIED statuses, informs the user, and exits the
301
+ application. All other exceptions will be allowed to escape.
302
302
  """
303
303
  try:
304
304
  yield
@@ -327,6 +327,14 @@ def flwr_cli_grpc_exc_handler() -> Iterator[None]:
327
327
  # pylint: disable=E1101
328
328
  typer.secho(e.details(), fg=typer.colors.RED, bold=True)
329
329
  raise typer.Exit(code=1) from None
330
+ if e.code() == grpc.StatusCode.UNAVAILABLE:
331
+ typer.secho(
332
+ "Connection to the SuperLink is unavailable. Please check your network "
333
+ "connection and 'address' in the federation configuration.",
334
+ fg=typer.colors.RED,
335
+ bold=True,
336
+ )
337
+ raise typer.Exit(code=1) from None
330
338
  if (
331
339
  e.code() == grpc.StatusCode.NOT_FOUND
332
340
  and e.details() == RUN_ID_NOT_FOUND_MESSAGE
@@ -285,8 +285,7 @@ def grpc_request_response( # pylint: disable=R0913,R0914,R0915,R0917
285
285
  response: PushMessagesResponse = stub.PushMessages(request=request)
286
286
 
287
287
  # Get and return the object IDs to push
288
- object_ids_to_push = response.objects_to_push[object_tree.object_id]
289
- return set(object_ids_to_push.object_ids)
288
+ return set(response.objects_to_push)
290
289
 
291
290
  def get_run(run_id: int) -> Run:
292
291
  # Call FleetAPI
@@ -369,8 +369,7 @@ def http_request_response( # pylint: disable=R0913,R0914,R0915,R0917
369
369
  raise ValueError("PushMessagesResponse is None.")
370
370
 
371
371
  # Get and return the object IDs to push
372
- object_ids_to_push = res.objects_to_push[object_tree.object_id]
373
- return set(object_ids_to_push.object_ids)
372
+ return set(res.objects_to_push)
374
373
 
375
374
  def get_run(run_id: int) -> Run:
376
375
  # Construct the request
@@ -0,0 +1,43 @@
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\"\x99\x01\n\x16PushAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x04 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"G\n\x17PushAppMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x17\n\x0fobjects_to_push\x18\x02 \x03(\t\"L\n\x16PullAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\"{\n\x17PullAppMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x02 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"%\n\x14PullAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"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\"\\\n\x15PushAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12$\n\x07\x63ontext\x18\x03 \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['_PUSHAPPMESSAGESREQUEST']._serialized_start=109
28
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_end=262
29
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_start=264
30
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_end=335
31
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_start=337
32
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_end=413
33
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_start=415
34
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_end=538
35
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_start=540
36
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_end=577
37
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_start=579
38
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_end=700
39
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_start=702
40
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_end=794
41
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_start=796
42
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_end=820
43
+ # @@protoc_insertion_point(module_scope)