flwr-nightly 1.23.0.dev20251020__tar.gz → 1.23.0.dev20251022__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.

Potentially problematic release.


This version of flwr-nightly might be problematic. Click here for more details.

Files changed (437) hide show
  1. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/PKG-INFO +1 -1
  2. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/ls.py +5 -5
  3. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/supernode/ls.py +8 -15
  4. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/constant.py +12 -4
  5. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/inflatable_utils.py +10 -10
  6. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/array.py +3 -3
  7. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/control_pb2.py +6 -6
  8. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/control_pb2.pyi +0 -5
  9. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/app.py +4 -6
  10. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/vce/vce_api.py +2 -1
  11. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +5 -1
  12. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/linkstate_factory.py +2 -1
  13. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +64 -146
  14. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/utils.py +3 -54
  15. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/run_simulation.py +2 -1
  16. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/constant.py +3 -0
  17. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/object_store/object_store_factory.py +26 -6
  18. flwr_nightly-1.23.0.dev20251022/py/flwr/supercore/object_store/sqlite_object_store.py +252 -0
  19. flwr_nightly-1.23.0.dev20251022/py/flwr/supercore/sqlite_mixin.py +156 -0
  20. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/utils.py +20 -0
  21. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/control_servicer.py +6 -70
  22. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/pyproject.toml +1 -1
  23. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/README.md +0 -0
  24. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/__init__.py +0 -0
  25. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/app/__init__.py +0 -0
  26. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/app/error.py +0 -0
  27. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/app/exception.py +0 -0
  28. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/app/metadata.py +0 -0
  29. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/__init__.py +0 -0
  30. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/app.py +0 -0
  31. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  32. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/auth_plugin/auth_plugin.py +0 -0
  33. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/auth_plugin/noop_auth_plugin.py +0 -0
  34. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  35. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/build.py +0 -0
  36. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/cli_account_auth_interceptor.py +0 -0
  37. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/config_utils.py +0 -0
  38. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/constant.py +0 -0
  39. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/example.py +0 -0
  40. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/install.py +0 -0
  41. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/log.py +0 -0
  42. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/login/__init__.py +0 -0
  43. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/login/login.py +0 -0
  44. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/__init__.py +0 -0
  45. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/new.py +0 -0
  46. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/__init__.py +0 -0
  47. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  48. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  49. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  50. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  51. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  52. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  53. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  54. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  55. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  56. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/__init__.pytorch_legacy_api.py.tpl +0 -0
  57. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  58. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  59. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  60. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  61. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  62. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  63. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.pytorch_legacy_api.py.tpl +0 -0
  64. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  65. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  66. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/client.xgboost.py.tpl +0 -0
  67. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  68. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  69. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  70. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  71. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  72. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  73. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  74. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  75. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  76. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  77. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  78. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  79. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  80. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  81. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.pytorch_legacy_api.py.tpl +0 -0
  82. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  83. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  84. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/server.xgboost.py.tpl +0 -0
  85. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  86. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  87. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  88. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  89. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  90. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  91. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.pytorch_legacy_api.py.tpl +0 -0
  92. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  93. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  94. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/task.xgboost.py.tpl +0 -0
  95. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  96. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  97. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  98. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  99. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  100. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  101. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  102. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  103. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +0 -0
  104. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  105. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  106. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +0 -0
  107. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/pull.py +0 -0
  108. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/run/__init__.py +0 -0
  109. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/run/run.py +0 -0
  110. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/stop.py +0 -0
  111. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/supernode/__init__.py +0 -0
  112. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/supernode/register.py +0 -0
  113. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/supernode/unregister.py +0 -0
  114. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/cli/utils.py +0 -0
  115. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/__init__.py +0 -0
  116. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/client.py +0 -0
  117. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  118. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  119. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  120. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  121. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_rere_client/connection.py +0 -0
  122. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  123. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/grpc_rere_client/node_auth_client_interceptor.py +0 -0
  124. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/message_handler/__init__.py +0 -0
  125. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/message_handler/message_handler.py +0 -0
  126. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/__init__.py +0 -0
  127. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/centraldp_mods.py +0 -0
  128. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/comms_mods.py +0 -0
  129. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/localdp_mod.py +0 -0
  130. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  131. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  132. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  133. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/mod/utils.py +0 -0
  134. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/numpy_client.py +0 -0
  135. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/rest_client/__init__.py +0 -0
  136. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/rest_client/connection.py +0 -0
  137. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/run_info_store.py +0 -0
  138. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/client/typing.py +0 -0
  139. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/__init__.py +0 -0
  140. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/client_app.py +0 -0
  141. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/mod/__init__.py +0 -0
  142. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/mod/centraldp_mods.py +0 -0
  143. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/mod/localdp_mod.py +0 -0
  144. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/typing.py +0 -0
  145. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/clientapp/utils.py +0 -0
  146. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/__init__.py +0 -0
  147. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/address.py +0 -0
  148. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/args.py +0 -0
  149. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/config.py +0 -0
  150. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/context.py +0 -0
  151. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/date.py +0 -0
  152. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/differential_privacy.py +0 -0
  153. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/differential_privacy_constants.py +0 -0
  154. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/dp.py +0 -0
  155. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  156. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  157. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/exit/__init__.py +0 -0
  158. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/exit/exit.py +0 -0
  159. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/exit/exit_code.py +0 -0
  160. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/exit/exit_handler.py +0 -0
  161. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/exit/signal_handler.py +0 -0
  162. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/grpc.py +0 -0
  163. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/heartbeat.py +0 -0
  164. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/inflatable.py +0 -0
  165. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
  166. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/logger.py +0 -0
  167. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/message.py +0 -0
  168. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/object_ref.py +0 -0
  169. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/parameter.py +0 -0
  170. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/pyproject.py +0 -0
  171. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/__init__.py +0 -0
  172. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/arraychunk.py +0 -0
  173. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/arrayrecord.py +0 -0
  174. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/configrecord.py +0 -0
  175. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/conversion_utils.py +0 -0
  176. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/metricrecord.py +0 -0
  177. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/recorddict.py +0 -0
  178. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/record/typeddict.py +0 -0
  179. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/recorddict_compat.py +0 -0
  180. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/retry_invoker.py +0 -0
  181. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  182. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  183. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  184. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  185. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  186. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  187. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  188. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  189. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/serde.py +0 -0
  190. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/serde_utils.py +0 -0
  191. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/telemetry.py +0 -0
  192. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/typing.py +0 -0
  193. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/common/version.py +0 -0
  194. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/__init__.py +0 -0
  195. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/client/__init__.py +0 -0
  196. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/client/app.py +0 -0
  197. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  198. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  199. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/common/__init__.py +0 -0
  200. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/server/__init__.py +0 -0
  201. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/server/app.py +0 -0
  202. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/compat/simulation/__init__.py +0 -0
  203. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/__init__.py +0 -0
  204. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/appio_pb2.py +0 -0
  205. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/appio_pb2.pyi +0 -0
  206. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/appio_pb2_grpc.py +0 -0
  207. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  208. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/clientappio_pb2.py +0 -0
  209. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/clientappio_pb2.pyi +0 -0
  210. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  211. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  212. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/control_pb2_grpc.py +0 -0
  213. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/control_pb2_grpc.pyi +0 -0
  214. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/error_pb2.py +0 -0
  215. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/error_pb2.pyi +0 -0
  216. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/error_pb2_grpc.py +0 -0
  217. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  218. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fab_pb2.py +0 -0
  219. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fab_pb2.pyi +0 -0
  220. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  221. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  222. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fleet_pb2.py +0 -0
  223. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fleet_pb2.pyi +0 -0
  224. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  225. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  226. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  227. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  228. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  229. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  230. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/heartbeat_pb2.py +0 -0
  231. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  232. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  233. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  234. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/log_pb2.py +0 -0
  235. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/log_pb2.pyi +0 -0
  236. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/log_pb2_grpc.py +0 -0
  237. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  238. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/message_pb2.py +0 -0
  239. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/message_pb2.pyi +0 -0
  240. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/message_pb2_grpc.py +0 -0
  241. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  242. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/node_pb2.py +0 -0
  243. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/node_pb2.pyi +0 -0
  244. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/node_pb2_grpc.py +0 -0
  245. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  246. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/recorddict_pb2.py +0 -0
  247. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  248. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  249. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  250. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/run_pb2.py +0 -0
  251. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/run_pb2.pyi +0 -0
  252. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/run_pb2_grpc.py +0 -0
  253. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  254. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/serverappio_pb2.py +0 -0
  255. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  256. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  257. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  258. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/simulationio_pb2.py +0 -0
  259. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  260. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  261. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  262. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/transport_pb2.py +0 -0
  263. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/transport_pb2.pyi +0 -0
  264. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  265. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  266. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/py.typed +0 -0
  267. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/__init__.py +0 -0
  268. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/client_manager.py +0 -0
  269. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/client_proxy.py +0 -0
  270. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/compat/__init__.py +0 -0
  271. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/compat/app.py +0 -0
  272. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/compat/app_utils.py +0 -0
  273. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  274. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/compat/legacy_context.py +0 -0
  275. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/criterion.py +0 -0
  276. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  277. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/grid/__init__.py +0 -0
  278. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/grid/grid.py +0 -0
  279. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/grid/grpc_grid.py +0 -0
  280. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/grid/inmemory_grid.py +0 -0
  281. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/history.py +0 -0
  282. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/run_serverapp.py +0 -0
  283. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/server.py +0 -0
  284. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/server_app.py +0 -0
  285. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/server_config.py +0 -0
  286. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/serverapp/__init__.py +0 -0
  287. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/serverapp/app.py +0 -0
  288. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/serverapp_components.py +0 -0
  289. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/__init__.py +0 -0
  290. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/aggregate.py +0 -0
  291. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/bulyan.py +0 -0
  292. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  293. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  294. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  295. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  296. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  297. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedadagrad.py +0 -0
  298. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedadam.py +0 -0
  299. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedavg.py +0 -0
  300. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedavg_android.py +0 -0
  301. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedavgm.py +0 -0
  302. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedmedian.py +0 -0
  303. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedopt.py +0 -0
  304. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedprox.py +0 -0
  305. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  306. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  307. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  308. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  309. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/fedyogi.py +0 -0
  310. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/krum.py +0 -0
  311. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/qfedavg.py +0 -0
  312. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/strategy/strategy.py +0 -0
  313. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/__init__.py +0 -0
  314. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  315. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  316. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  317. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  318. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  319. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  320. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  321. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  322. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  323. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  324. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +0 -0
  325. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  326. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  327. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  328. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  329. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  330. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  331. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  332. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  333. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  334. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  335. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  336. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  337. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
  338. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  339. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  340. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  341. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/superlink/utils.py +0 -0
  342. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/typing.py +0 -0
  343. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/utils/__init__.py +0 -0
  344. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/utils/tensorboard.py +0 -0
  345. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/utils/validator.py +0 -0
  346. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/__init__.py +0 -0
  347. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/constant.py +0 -0
  348. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/default_workflows.py +0 -0
  349. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  350. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  351. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  352. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/__init__.py +0 -0
  353. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/exception.py +0 -0
  354. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/__init__.py +0 -0
  355. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/bulyan.py +0 -0
  356. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/dp_adaptive_clipping.py +0 -0
  357. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/dp_fixed_clipping.py +0 -0
  358. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedadagrad.py +0 -0
  359. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedadam.py +0 -0
  360. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedavg.py +0 -0
  361. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedavgm.py +0 -0
  362. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedmedian.py +0 -0
  363. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedopt.py +0 -0
  364. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedprox.py +0 -0
  365. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedtrimmedavg.py +0 -0
  366. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedxgb_bagging.py +0 -0
  367. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedxgb_cyclic.py +0 -0
  368. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/fedyogi.py +0 -0
  369. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/krum.py +0 -0
  370. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/multikrum.py +0 -0
  371. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/qfedavg.py +0 -0
  372. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/result.py +0 -0
  373. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/strategy.py +0 -0
  374. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/serverapp/strategy/strategy_utils.py +0 -0
  375. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/__init__.py +0 -0
  376. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/app.py +0 -0
  377. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/legacy_app.py +0 -0
  378. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  379. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  380. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  381. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/ray_transport/utils.py +0 -0
  382. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/simulation/simulationio_connection.py +0 -0
  383. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/__init__.py +0 -0
  384. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/app_utils.py +0 -0
  385. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/cli/__init__.py +0 -0
  386. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/cli/flower_superexec.py +0 -0
  387. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/corestate/__init__.py +0 -0
  388. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/corestate/corestate.py +0 -0
  389. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/ffs/__init__.py +0 -0
  390. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  391. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/ffs/ffs.py +0 -0
  392. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  393. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/grpc_health/__init__.py +0 -0
  394. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/grpc_health/health_server.py +0 -0
  395. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
  396. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  397. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  398. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/object_store/__init__.py +0 -0
  399. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  400. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/object_store/object_store.py +0 -0
  401. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/object_store/utils.py +0 -0
  402. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/primitives/__init__.py +0 -0
  403. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/primitives/asymmetric.py +0 -0
  404. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/__init__.py +0 -0
  405. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/__init__.py +0 -0
  406. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/base_exec_plugin.py +0 -0
  407. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/clientapp_exec_plugin.py +0 -0
  408. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/exec_plugin.py +0 -0
  409. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/serverapp_exec_plugin.py +0 -0
  410. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/plugin/simulation_exec_plugin.py +0 -0
  411. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supercore/superexec/run_superexec.py +0 -0
  412. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/__init__.py +0 -0
  413. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/artifact_provider/__init__.py +0 -0
  414. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/artifact_provider/artifact_provider.py +0 -0
  415. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/auth_plugin/__init__.py +0 -0
  416. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/auth_plugin/auth_plugin.py +0 -0
  417. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/auth_plugin/noop_auth_plugin.py +0 -0
  418. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/__init__.py +0 -0
  419. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/__init__.py +0 -0
  420. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/control_account_auth_interceptor.py +0 -0
  421. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/control_event_log_interceptor.py +0 -0
  422. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/control_grpc.py +0 -0
  423. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/superlink/servicer/control/control_license_interceptor.py +0 -0
  424. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/__init__.py +0 -0
  425. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/cli/__init__.py +0 -0
  426. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  427. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  428. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/nodestate/__init__.py +0 -0
  429. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  430. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  431. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  432. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/runtime/__init__.py +0 -0
  433. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
  434. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/servicer/__init__.py +0 -0
  435. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  436. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
  437. {flwr_nightly-1.23.0.dev20251020 → flwr_nightly-1.23.0.dev20251022}/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.23.0.dev20251020
3
+ Version: 1.23.0.dev20251022
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
@@ -220,14 +220,14 @@ def _to_table(run_list: list[_RunListType]) -> Table:
220
220
 
221
221
  # Add columns
222
222
  table.add_column(
223
- Text("Run ID", justify="center"), style="bright_white", no_wrap=True
223
+ Text("Run ID", justify="center"), style="bright_black", no_wrap=True
224
224
  )
225
- table.add_column(Text("FAB", justify="center"), style="dim white")
225
+ table.add_column(Text("FAB", justify="center"), style="bright_black")
226
226
  table.add_column(Text("Status", justify="center"))
227
227
  table.add_column(Text("Elapsed", justify="center"), style="blue")
228
- table.add_column(Text("Created At", justify="center"), style="dim white")
229
- table.add_column(Text("Running At", justify="center"), style="dim white")
230
- table.add_column(Text("Finished At", justify="center"), style="dim white")
228
+ table.add_column(Text("Created At", justify="center"), style="bright_black")
229
+ table.add_column(Text("Running At", justify="center"), style="bright_black")
230
+ table.add_column(Text("Finished At", justify="center"), style="bright_black")
231
231
 
232
232
  for row in run_list:
233
233
  (
@@ -32,7 +32,7 @@ from flwr.cli.config_utils import (
32
32
  process_loaded_project_config,
33
33
  validate_federation_in_project_config,
34
34
  )
35
- from flwr.common.constant import FAB_CONFIG_FILE, CliOutputFormat
35
+ from flwr.common.constant import FAB_CONFIG_FILE, NOOP_FLWR_AID, CliOutputFormat
36
36
  from flwr.common.date import format_timedelta, isoformat8601_utc
37
37
  from flwr.common.logger import print_json_error, redirect_output, restore_output
38
38
  from flwr.proto.control_pb2 import ( # pylint: disable=E0611
@@ -73,13 +73,6 @@ def ls( # pylint: disable=R0914, R0913, R0917
73
73
  help="Enable verbose output",
74
74
  ),
75
75
  ] = False,
76
- dry_run: Annotated[
77
- bool,
78
- typer.Option(
79
- "--dry-run",
80
- help="Simulate the command without contacting any SuperNodes",
81
- ),
82
- ] = False,
83
76
  ) -> None:
84
77
  """List SuperNodes in the federation."""
85
78
  # Resolve command used (list or ls)
@@ -105,7 +98,7 @@ def ls( # pylint: disable=R0914, R0913, R0917
105
98
  channel = init_channel(app, federation_config, auth_plugin)
106
99
  stub = ControlStub(channel)
107
100
  typer.echo("📄 Listing all nodes...")
108
- formatted_nodes = _list_nodes(stub, dry_run=dry_run)
101
+ formatted_nodes = _list_nodes(stub)
109
102
  restore_output()
110
103
  if output_format == CliOutputFormat.JSON:
111
104
  Console().print_json(_to_json(formatted_nodes, verbose=verbose))
@@ -132,10 +125,10 @@ def ls( # pylint: disable=R0914, R0913, R0917
132
125
  captured_output.close()
133
126
 
134
127
 
135
- def _list_nodes(stub: ControlStub, dry_run: bool) -> list[_NodeListType]:
128
+ def _list_nodes(stub: ControlStub) -> list[_NodeListType]:
136
129
  """List all nodes."""
137
130
  with flwr_cli_grpc_exc_handler():
138
- res: ListNodesResponse = stub.ListNodes(ListNodesRequest(dry_run=dry_run))
131
+ res: ListNodesResponse = stub.ListNodes(ListNodesRequest())
139
132
 
140
133
  return _format_nodes(list(res.nodes_info), res.now)
141
134
 
@@ -185,12 +178,12 @@ def _to_table(nodes_info: list[_NodeListType], verbose: bool) -> Table:
185
178
 
186
179
  # Add columns
187
180
  table.add_column(
188
- Text("Node ID", justify="center"), style="bright_white", no_wrap=True
181
+ Text("Node ID", justify="center"), style="bright_black", no_wrap=True
189
182
  )
190
- table.add_column(Text("Owner", justify="center"), style="dim white")
183
+ table.add_column(Text("Owner", justify="center"))
191
184
  table.add_column(Text("Status", justify="center"))
192
185
  table.add_column(Text("Elapsed", justify="center"))
193
- table.add_column(Text("Status Changed @", justify="center"), style="dim white")
186
+ table.add_column(Text("Status Changed @", justify="center"), style="bright_black")
194
187
 
195
188
  for row in nodes_info:
196
189
  (
@@ -223,7 +216,7 @@ def _to_table(nodes_info: list[_NodeListType], verbose: bool) -> Table:
223
216
 
224
217
  formatted_row = (
225
218
  f"[bold]{node_id}[/bold]",
226
- f"{owner_aid}",
219
+ f"{owner_aid}" if owner_aid != NOOP_FLWR_AID else f"[dim]{owner_aid}[/dim]",
227
220
  f"[{status_style}]{status}",
228
221
  f"[cyan]{elapse_activated}[/cyan]" if status == "online" else "",
229
222
  time_at,
@@ -17,6 +17,8 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
+ import os
21
+
20
22
  TRANSPORT_TYPE_GRPC_BIDI = "grpc-bidi"
21
23
  TRANSPORT_TYPE_GRPC_RERE = "grpc-rere"
22
24
  TRANSPORT_TYPE_GRPC_ADAPTER = "grpc-adapter"
@@ -135,7 +137,9 @@ GC_THRESHOLD = 200_000_000 # 200 MB
135
137
  # Constants for Inflatable
136
138
  HEAD_BODY_DIVIDER = b"\x00"
137
139
  HEAD_VALUE_DIVIDER = " "
138
- MAX_ARRAY_CHUNK_SIZE = 20_971_520 # 20 MB
140
+ FLWR_PRIVATE_MAX_ARRAY_CHUNK_SIZE = int(
141
+ os.getenv("FLWR_PRIVATE_MAX_ARRAY_CHUNK_SIZE", "5242880")
142
+ ) # 5 MB
139
143
 
140
144
  # Constants for serialization
141
145
  INT64_MAX_VALUE = 9223372036854775807 # (1 << 63) - 1
@@ -144,8 +148,12 @@ INT64_MAX_VALUE = 9223372036854775807 # (1 << 63) - 1
144
148
  FLWR_APP_TOKEN_LENGTH = 128 # Length of the token used
145
149
 
146
150
  # Constants for object pushing and pulling
147
- MAX_CONCURRENT_PUSHES = 8 # Default maximum number of concurrent pushes
148
- MAX_CONCURRENT_PULLS = 8 # Default maximum number of concurrent pulls
151
+ FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES = int(
152
+ os.getenv("FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES", "2")
153
+ ) # Default maximum number of concurrent pushes
154
+ FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS = int(
155
+ os.getenv("FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS", "2")
156
+ ) # Default maximum number of concurrent pulls
149
157
  PULL_MAX_TIME = 7200 # Default maximum time to wait for pulling objects
150
158
  PULL_MAX_TRIES_PER_OBJECT = 500 # Default maximum number of tries to pull an object
151
159
  PULL_INITIAL_BACKOFF = 1 # Initial backoff time for pulling objects
@@ -299,5 +307,5 @@ class ExecPluginType:
299
307
 
300
308
 
301
309
  # Constants for No-op auth plugins
302
- NOOP_FLWR_AID = "sys_noauth"
310
+ NOOP_FLWR_AID = "<none>"
303
311
  NOOP_ACCOUNT_NAME = "sys_noauth"
@@ -25,10 +25,10 @@ from typing import Callable, Optional, TypeVar
25
25
  from flwr.proto.message_pb2 import ObjectTree # pylint: disable=E0611
26
26
 
27
27
  from .constant import (
28
+ FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS,
29
+ FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES,
28
30
  HEAD_BODY_DIVIDER,
29
31
  HEAD_VALUE_DIVIDER,
30
- MAX_CONCURRENT_PULLS,
31
- MAX_CONCURRENT_PUSHES,
32
32
  PULL_BACKOFF_CAP,
33
33
  PULL_INITIAL_BACKOFF,
34
34
  PULL_MAX_TIME,
@@ -118,7 +118,7 @@ def push_objects(
118
118
  *,
119
119
  object_ids_to_push: Optional[set[str]] = None,
120
120
  keep_objects: bool = False,
121
- max_concurrent_pushes: int = MAX_CONCURRENT_PUSHES,
121
+ max_concurrent_pushes: int = FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES,
122
122
  ) -> None:
123
123
  """Push multiple objects to the servicer.
124
124
 
@@ -137,7 +137,7 @@ def push_objects(
137
137
  If `True`, the original objects will be kept in the `objects` dictionary
138
138
  after pushing. If `False`, they will be removed from the dictionary to avoid
139
139
  high memory usage.
140
- max_concurrent_pushes : int (default: MAX_CONCURRENT_PUSHES)
140
+ max_concurrent_pushes : int (default: FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES)
141
141
  The maximum number of concurrent pushes to perform.
142
142
  """
143
143
  lock = threading.Lock()
@@ -168,7 +168,7 @@ def push_object_contents_from_iterable(
168
168
  object_contents: Iterable[tuple[str, bytes]],
169
169
  push_object_fn: Callable[[str, bytes], None],
170
170
  *,
171
- max_concurrent_pushes: int = MAX_CONCURRENT_PUSHES,
171
+ max_concurrent_pushes: int = FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES,
172
172
  ) -> None:
173
173
  """Push multiple object contents to the servicer.
174
174
 
@@ -181,7 +181,7 @@ def push_object_contents_from_iterable(
181
181
  A function that takes an object ID and its content as bytes, and pushes
182
182
  it to the servicer. This function should raise `ObjectIdNotPreregisteredError`
183
183
  if the object ID is not pre-registered.
184
- max_concurrent_pushes : int (default: MAX_CONCURRENT_PUSHES)
184
+ max_concurrent_pushes : int (default: FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PUSHES)
185
185
  The maximum number of concurrent pushes to perform.
186
186
  """
187
187
 
@@ -210,7 +210,7 @@ def pull_objects( # pylint: disable=too-many-arguments,too-many-locals
210
210
  object_ids: list[str],
211
211
  pull_object_fn: Callable[[str], bytes],
212
212
  *,
213
- max_concurrent_pulls: int = MAX_CONCURRENT_PULLS,
213
+ max_concurrent_pulls: int = FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS,
214
214
  max_time: Optional[float] = PULL_MAX_TIME,
215
215
  max_tries_per_object: Optional[int] = PULL_MAX_TRIES_PER_OBJECT,
216
216
  initial_backoff: float = PULL_INITIAL_BACKOFF,
@@ -227,7 +227,7 @@ def pull_objects( # pylint: disable=too-many-arguments,too-many-locals
227
227
  The function should raise `ObjectUnavailableError` if the object is not yet
228
228
  available, or `ObjectIdNotPreregisteredError` if the object ID is not
229
229
  pre-registered.
230
- max_concurrent_pulls : int (default: MAX_CONCURRENT_PULLS)
230
+ max_concurrent_pulls : int (default: FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS)
231
231
  The maximum number of concurrent pulls to perform.
232
232
  max_time : Optional[float] (default: PULL_MAX_TIME)
233
233
  The maximum time to wait for all pulls to complete. If `None`, waits
@@ -442,7 +442,7 @@ def pull_and_inflate_object_from_tree( # pylint: disable=R0913
442
442
  confirm_object_received_fn: Callable[[str], None],
443
443
  *,
444
444
  return_type: type[T] = InflatableObject, # type: ignore
445
- max_concurrent_pulls: int = MAX_CONCURRENT_PULLS,
445
+ max_concurrent_pulls: int = FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS,
446
446
  max_time: Optional[float] = PULL_MAX_TIME,
447
447
  max_tries_per_object: Optional[int] = PULL_MAX_TRIES_PER_OBJECT,
448
448
  initial_backoff: float = PULL_INITIAL_BACKOFF,
@@ -460,7 +460,7 @@ def pull_and_inflate_object_from_tree( # pylint: disable=R0913
460
460
  A function to confirm that the object has been received.
461
461
  return_type : type[T] (default: InflatableObject)
462
462
  The type of the object to return. Must be a subclass of `InflatableObject`.
463
- max_concurrent_pulls : int (default: MAX_CONCURRENT_PULLS)
463
+ max_concurrent_pulls : int (default: FLWR_PRIVATE_MAX_CONCURRENT_OBJ_PULLS)
464
464
  The maximum number of concurrent pulls to perform.
465
465
  max_time : Optional[float] (default: PULL_MAX_TIME)
466
466
  The maximum time to wait for all pulls to complete. If `None`, waits
@@ -25,7 +25,7 @@ from typing import TYPE_CHECKING, Any, cast, overload
25
25
 
26
26
  import numpy as np
27
27
 
28
- from ..constant import MAX_ARRAY_CHUNK_SIZE, SType
28
+ from ..constant import FLWR_PRIVATE_MAX_ARRAY_CHUNK_SIZE, SType
29
29
  from ..inflatable import (
30
30
  InflatableObject,
31
31
  add_header_to_object_body,
@@ -272,8 +272,8 @@ class Array(InflatableObject):
272
272
  chunks: list[tuple[str, InflatableObject]] = []
273
273
  # memoryview allows for zero-copy slicing
274
274
  data_view = memoryview(self.data)
275
- for start in range(0, len(data_view), MAX_ARRAY_CHUNK_SIZE):
276
- end = min(start + MAX_ARRAY_CHUNK_SIZE, len(data_view))
275
+ for start in range(0, len(data_view), FLWR_PRIVATE_MAX_ARRAY_CHUNK_SIZE):
276
+ end = min(start + FLWR_PRIVATE_MAX_ARRAY_CHUNK_SIZE, len(data_view))
277
277
  ac = ArrayChunk(data_view[start:end])
278
278
  chunks.append((ac.object_id, ac))
279
279
 
@@ -19,7 +19,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
19
  from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
20
20
 
21
21
 
22
- 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\x1a\x15\x66lwr/proto/node.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\"\x8b\x01\n\x17GetLoginDetailsResponse\x12\x12\n\nauthn_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\"&\n\x14PullArtifactsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"1\n\x15PullArtifactsResponse\x12\x10\n\x03url\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x06\n\x04_url\")\n\x13RegisterNodeRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\"8\n\x14RegisterNodeResponse\x12\x14\n\x07node_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_node_id\"(\n\x15UnregisterNodeRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x18\n\x16UnregisterNodeResponse\"#\n\x10ListNodesRequest\x12\x0f\n\x07\x64ry_run\x18\x01 \x01(\x08\"J\n\x11ListNodesResponse\x12(\n\nnodes_info\x18\x01 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x0b\n\x03now\x18\x02 \x01(\t2\xbc\x06\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\x12V\n\rPullArtifacts\x12 .flwr.proto.PullArtifactsRequest\x1a!.flwr.proto.PullArtifactsResponse\"\x00\x12S\n\x0cRegisterNode\x12\x1f.flwr.proto.RegisterNodeRequest\x1a .flwr.proto.RegisterNodeResponse\"\x00\x12Y\n\x0eUnregisterNode\x12!.flwr.proto.UnregisterNodeRequest\x1a\".flwr.proto.UnregisterNodeResponse\"\x00\x12J\n\tListNodes\x12\x1c.flwr.proto.ListNodesRequest\x1a\x1d.flwr.proto.ListNodesResponse\"\x00\x62\x06proto3')
22
+ 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\x1a\x15\x66lwr/proto/node.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\"\x8b\x01\n\x17GetLoginDetailsResponse\x12\x12\n\nauthn_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\"&\n\x14PullArtifactsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"1\n\x15PullArtifactsResponse\x12\x10\n\x03url\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x06\n\x04_url\")\n\x13RegisterNodeRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\"8\n\x14RegisterNodeResponse\x12\x14\n\x07node_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_node_id\"(\n\x15UnregisterNodeRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x18\n\x16UnregisterNodeResponse\"\x12\n\x10ListNodesRequest\"J\n\x11ListNodesResponse\x12(\n\nnodes_info\x18\x01 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x0b\n\x03now\x18\x02 \x01(\t2\xbc\x06\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\x12V\n\rPullArtifacts\x12 .flwr.proto.PullArtifactsRequest\x1a!.flwr.proto.PullArtifactsResponse\"\x00\x12S\n\x0cRegisterNode\x12\x1f.flwr.proto.RegisterNodeRequest\x1a .flwr.proto.RegisterNodeResponse\"\x00\x12Y\n\x0eUnregisterNode\x12!.flwr.proto.UnregisterNodeRequest\x1a\".flwr.proto.UnregisterNodeResponse\"\x00\x12J\n\tListNodes\x12\x1c.flwr.proto.ListNodesRequest\x1a\x1d.flwr.proto.ListNodesResponse\"\x00\x62\x06proto3')
23
23
 
24
24
  _globals = globals()
25
25
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -71,9 +71,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
71
71
  _globals['_UNREGISTERNODERESPONSE']._serialized_start=1397
72
72
  _globals['_UNREGISTERNODERESPONSE']._serialized_end=1421
73
73
  _globals['_LISTNODESREQUEST']._serialized_start=1423
74
- _globals['_LISTNODESREQUEST']._serialized_end=1458
75
- _globals['_LISTNODESRESPONSE']._serialized_start=1460
76
- _globals['_LISTNODESRESPONSE']._serialized_end=1534
77
- _globals['_CONTROL']._serialized_start=1537
78
- _globals['_CONTROL']._serialized_end=2365
74
+ _globals['_LISTNODESREQUEST']._serialized_end=1441
75
+ _globals['_LISTNODESRESPONSE']._serialized_start=1443
76
+ _globals['_LISTNODESRESPONSE']._serialized_end=1517
77
+ _globals['_CONTROL']._serialized_start=1520
78
+ _globals['_CONTROL']._serialized_end=2348
79
79
  # @@protoc_insertion_point(module_scope)
@@ -279,13 +279,8 @@ global___UnregisterNodeResponse = UnregisterNodeResponse
279
279
 
280
280
  class ListNodesRequest(google.protobuf.message.Message):
281
281
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
282
- DRY_RUN_FIELD_NUMBER: builtins.int
283
- dry_run: builtins.bool
284
282
  def __init__(self,
285
- *,
286
- dry_run: builtins.bool = ...,
287
283
  ) -> None: ...
288
- def ClearField(self, field_name: typing_extensions.Literal["dry_run",b"dry_run"]) -> None: ...
289
284
  global___ListNodesRequest = ListNodesRequest
290
285
 
291
286
  class ListNodesResponse(google.protobuf.message.Message):
@@ -64,6 +64,7 @@ from flwr.proto.fleet_pb2_grpc import ( # pylint: disable=E0611
64
64
  )
65
65
  from flwr.proto.grpcadapter_pb2_grpc import add_GrpcAdapterServicer_to_server
66
66
  from flwr.server.fleet_event_log_interceptor import FleetEventLogInterceptor
67
+ from flwr.supercore.constant import FLWR_IN_MEMORY_DB_NAME
67
68
  from flwr.supercore.ffs import FfsFactory
68
69
  from flwr.supercore.grpc_health import add_args_health, run_health_server_grpc_no_tls
69
70
  from flwr.supercore.object_store import ObjectStoreFactory
@@ -85,7 +86,6 @@ from .superlink.linkstate import LinkStateFactory
85
86
  from .superlink.serverappio.serverappio_grpc import run_serverappio_api_grpc
86
87
  from .superlink.simulation.simulationio_grpc import run_simulationio_api_grpc
87
88
 
88
- DATABASE = ":flwr-in-memory-state:"
89
89
  BASE_DIR = get_flwr_dir() / "superlink" / "ffs"
90
90
  P = TypeVar("P", ControlAuthnPlugin, ControlAuthzPlugin)
91
91
 
@@ -272,7 +272,7 @@ def run_superlink() -> None:
272
272
  ffs_factory = FfsFactory(args.storage_dir)
273
273
 
274
274
  # Initialize ObjectStoreFactory
275
- objectstore_factory = ObjectStoreFactory()
275
+ objectstore_factory = ObjectStoreFactory(args.database)
276
276
 
277
277
  # Start Control API
278
278
  is_simulation = args.simulation
@@ -710,11 +710,9 @@ def _add_args_common(parser: argparse.ArgumentParser) -> None:
710
710
  parser.add_argument(
711
711
  "--database",
712
712
  help="A string representing the path to the database "
713
- "file that will be opened. Note that passing ':memory:' "
714
- "will open a connection to a database that is in RAM, "
715
- "instead of on disk. If nothing is provided, "
713
+ "file that will be opened. If nothing is provided, "
716
714
  "Flower will just create a state in memory.",
717
- default=DATABASE,
715
+ default=FLWR_IN_MEMORY_DB_NAME,
718
716
  )
719
717
  parser.add_argument(
720
718
  "--storage-dir",
@@ -42,6 +42,7 @@ from flwr.common.constant import (
42
42
  from flwr.common.logger import log
43
43
  from flwr.common.typing import Run
44
44
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
45
+ from flwr.supercore.constant import FLWR_IN_MEMORY_DB_NAME
45
46
 
46
47
  from .backend import Backend, error_messages_backends, supported_backends
47
48
 
@@ -312,7 +313,7 @@ def start_vce(
312
313
  if not state_factory:
313
314
  log(INFO, "A StateFactory was not supplied to the SimulationEngine.")
314
315
  # Create an empty in-memory state factory
315
- state_factory = LinkStateFactory(":flwr-in-memory-state:")
316
+ state_factory = LinkStateFactory(FLWR_IN_MEMORY_DB_NAME)
316
317
  log(INFO, "Created new %s.", state_factory.__class__.__name__)
317
318
 
318
319
  if num_supernodes:
@@ -262,6 +262,7 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
262
262
  node_id: self.nodes[node_id].online_until
263
263
  for node_id in dst_node_ids
264
264
  if node_id in self.nodes
265
+ and self.nodes[node_id].status != NodeStatus.UNREGISTERED
265
266
  },
266
267
  current_time=current,
267
268
  )
@@ -380,7 +381,10 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
380
381
  )
381
382
 
382
383
  node.status = NodeStatus.UNREGISTERED
383
- node.unregistered_at = now().isoformat()
384
+ current = now()
385
+ node.unregistered_at = current.isoformat()
386
+ # Set online_until to current timestamp on deletion, if it is in the future
387
+ node.online_until = min(node.online_until, current.timestamp())
384
388
 
385
389
  def get_nodes(self, run_id: int) -> set[int]:
386
390
  """Return all available nodes.
@@ -19,6 +19,7 @@ from logging import DEBUG
19
19
  from typing import Optional
20
20
 
21
21
  from flwr.common.logger import log
22
+ from flwr.supercore.constant import FLWR_IN_MEMORY_DB_NAME
22
23
 
23
24
  from .in_memory_linkstate import InMemoryLinkState
24
25
  from .linkstate import LinkState
@@ -44,7 +45,7 @@ class LinkStateFactory:
44
45
  def state(self) -> LinkState:
45
46
  """Return a State instance and create it, if necessary."""
46
47
  # InMemoryState
47
- if self.database == ":flwr-in-memory-state:":
48
+ if self.database == FLWR_IN_MEMORY_DB_NAME:
48
49
  if self.state_instance is None:
49
50
  self.state_instance = InMemoryLinkState()
50
51
  log(DEBUG, "Using InMemoryState")