flwr-nightly 1.19.0.dev20250616__tar.gz → 1.20.0.dev20250617__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 (364) hide show
  1. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/PKG-INFO +1 -1
  2. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  3. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  4. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  5. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  6. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  7. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  8. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
  9. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  10. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  11. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/run/run.py +45 -38
  12. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/app.py +1 -1
  13. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +1 -1
  14. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +1 -1
  15. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +1 -2
  16. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +1 -1
  17. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +1 -2
  18. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
  19. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/simulation/simulationio_servicer.py +1 -1
  20. {flwr_nightly-1.19.0.dev20250616/py/flwr/server/superlink → flwr_nightly-1.20.0.dev20250617/py/flwr/supercore}/ffs/disk_ffs.py +1 -1
  21. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/deployment.py +1 -2
  22. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/exec_grpc.py +1 -1
  23. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/exec_servicer.py +1 -1
  24. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/executor.py +1 -1
  25. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/simulation.py +1 -2
  26. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/nodestate/in_memory_nodestate.py +11 -2
  27. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/nodestate/nodestate.py +15 -0
  28. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/start_client_internal.py +1 -1
  29. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/pyproject.toml +1 -1
  30. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/README.md +0 -0
  31. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/__init__.py +0 -0
  32. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/app/__init__.py +0 -0
  33. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/app/error.py +0 -0
  34. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/app/metadata.py +0 -0
  35. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/__init__.py +0 -0
  36. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/app.py +0 -0
  37. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  38. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  39. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/build.py +0 -0
  40. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
  41. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/config_utils.py +0 -0
  42. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/constant.py +0 -0
  43. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/example.py +0 -0
  44. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/install.py +0 -0
  45. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/log.py +0 -0
  46. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/login/__init__.py +0 -0
  47. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/login/login.py +0 -0
  48. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/ls.py +0 -0
  49. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/__init__.py +0 -0
  50. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/new.py +0 -0
  51. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/__init__.py +0 -0
  52. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  53. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  54. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  55. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  56. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  57. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  58. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  59. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  60. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  61. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  62. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  63. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  64. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  65. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  66. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  67. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  68. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  69. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  70. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  71. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  72. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  73. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  74. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  75. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  76. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  77. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  78. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  79. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  80. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  81. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  82. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  83. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  84. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  85. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  86. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  87. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  88. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  89. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  90. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  91. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  92. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  93. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  94. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/run/__init__.py +0 -0
  95. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/stop.py +0 -0
  96. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/cli/utils.py +0 -0
  97. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/__init__.py +0 -0
  98. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/client.py +0 -0
  99. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/client_app.py +0 -0
  100. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/clientapp/__init__.py +0 -0
  101. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/clientapp/utils.py +0 -0
  102. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  103. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  104. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  105. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  106. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  107. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_rere_client/connection.py +0 -0
  108. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  109. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/message_handler/__init__.py +0 -0
  110. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/message_handler/message_handler.py +0 -0
  111. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/__init__.py +0 -0
  112. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/centraldp_mods.py +0 -0
  113. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/comms_mods.py +0 -0
  114. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/localdp_mod.py +0 -0
  115. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  116. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  117. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  118. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/mod/utils.py +0 -0
  119. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/numpy_client.py +0 -0
  120. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/rest_client/__init__.py +0 -0
  121. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/rest_client/connection.py +0 -0
  122. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/run_info_store.py +0 -0
  123. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/client/typing.py +0 -0
  124. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/clientapp/__init__.py +0 -0
  125. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/__init__.py +0 -0
  126. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/address.py +0 -0
  127. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/args.py +0 -0
  128. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/auth_plugin/__init__.py +0 -0
  129. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
  130. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/config.py +0 -0
  131. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/constant.py +0 -0
  132. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/context.py +0 -0
  133. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/date.py +0 -0
  134. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/differential_privacy.py +0 -0
  135. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/differential_privacy_constants.py +0 -0
  136. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/dp.py +0 -0
  137. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  138. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  139. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/exit/__init__.py +0 -0
  140. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/exit/exit.py +0 -0
  141. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/exit/exit_code.py +0 -0
  142. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/exit_handlers.py +0 -0
  143. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/grpc.py +0 -0
  144. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/heartbeat.py +0 -0
  145. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/inflatable.py +0 -0
  146. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/inflatable_grpc_utils.py +0 -0
  147. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/inflatable_rest_utils.py +0 -0
  148. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/inflatable_utils.py +0 -0
  149. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/logger.py +0 -0
  150. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/message.py +0 -0
  151. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/object_ref.py +0 -0
  152. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/parameter.py +0 -0
  153. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/pyproject.py +0 -0
  154. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/__init__.py +0 -0
  155. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/array.py +0 -0
  156. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/arrayrecord.py +0 -0
  157. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/configrecord.py +0 -0
  158. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/conversion_utils.py +0 -0
  159. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/metricrecord.py +0 -0
  160. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/recorddict.py +0 -0
  161. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/record/typeddict.py +0 -0
  162. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/recorddict_compat.py +0 -0
  163. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/retry_invoker.py +0 -0
  164. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  165. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  166. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  167. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  168. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  169. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  170. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  171. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  172. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/serde.py +0 -0
  173. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/serde_utils.py +0 -0
  174. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/telemetry.py +0 -0
  175. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/typing.py +0 -0
  176. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/common/version.py +0 -0
  177. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/__init__.py +0 -0
  178. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/client/__init__.py +0 -0
  179. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/client/app.py +0 -0
  180. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  181. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  182. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/common/__init__.py +0 -0
  183. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/server/__init__.py +0 -0
  184. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/server/app.py +0 -0
  185. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/compat/simulation/__init__.py +0 -0
  186. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/__init__.py +0 -0
  187. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/clientappio_pb2.py +0 -0
  188. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/clientappio_pb2.pyi +0 -0
  189. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  191. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/error_pb2.py +0 -0
  192. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/error_pb2.pyi +0 -0
  193. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/error_pb2_grpc.py +0 -0
  194. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  195. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/exec_pb2.py +0 -0
  196. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/exec_pb2.pyi +0 -0
  197. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/exec_pb2_grpc.py +0 -0
  198. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  199. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fab_pb2.py +0 -0
  200. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fab_pb2.pyi +0 -0
  201. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  202. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  203. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fleet_pb2.py +0 -0
  204. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fleet_pb2.pyi +0 -0
  205. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  206. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  207. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  208. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  209. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  210. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  211. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/heartbeat_pb2.py +0 -0
  212. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  213. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  214. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  215. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/log_pb2.py +0 -0
  216. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/log_pb2.pyi +0 -0
  217. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/log_pb2_grpc.py +0 -0
  218. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  219. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/message_pb2.py +0 -0
  220. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/message_pb2.pyi +0 -0
  221. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/message_pb2_grpc.py +0 -0
  222. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  223. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/node_pb2.py +0 -0
  224. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/node_pb2.pyi +0 -0
  225. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/node_pb2_grpc.py +0 -0
  226. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  227. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/recorddict_pb2.py +0 -0
  228. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  229. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  230. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  231. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/run_pb2.py +0 -0
  232. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/run_pb2.pyi +0 -0
  233. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/run_pb2_grpc.py +0 -0
  234. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  235. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/serverappio_pb2.py +0 -0
  236. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  237. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  238. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  239. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/simulationio_pb2.py +0 -0
  240. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  241. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  242. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  243. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/transport_pb2.py +0 -0
  244. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/transport_pb2.pyi +0 -0
  245. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  246. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  247. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/py.typed +0 -0
  248. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/__init__.py +0 -0
  249. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/client_manager.py +0 -0
  250. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/client_proxy.py +0 -0
  251. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/compat/__init__.py +0 -0
  252. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/compat/app.py +0 -0
  253. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/compat/app_utils.py +0 -0
  254. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  255. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/compat/legacy_context.py +0 -0
  256. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/criterion.py +0 -0
  257. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  258. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/grid/__init__.py +0 -0
  259. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/grid/grid.py +0 -0
  260. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/grid/grpc_grid.py +0 -0
  261. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/grid/inmemory_grid.py +0 -0
  262. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/history.py +0 -0
  263. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/run_serverapp.py +0 -0
  264. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/server.py +0 -0
  265. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/server_app.py +0 -0
  266. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/server_config.py +0 -0
  267. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/serverapp/__init__.py +0 -0
  268. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/serverapp/app.py +0 -0
  269. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/serverapp_components.py +0 -0
  270. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/__init__.py +0 -0
  271. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/aggregate.py +0 -0
  272. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/bulyan.py +0 -0
  273. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  274. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  275. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  276. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  277. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  278. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedadagrad.py +0 -0
  279. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedadam.py +0 -0
  280. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedavg.py +0 -0
  281. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedavg_android.py +0 -0
  282. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedavgm.py +0 -0
  283. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedmedian.py +0 -0
  284. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedopt.py +0 -0
  285. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedprox.py +0 -0
  286. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  287. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  288. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  289. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  290. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/fedyogi.py +0 -0
  291. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/krum.py +0 -0
  292. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/qfedavg.py +0 -0
  293. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/strategy/strategy.py +0 -0
  294. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/__init__.py +0 -0
  295. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  296. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  297. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  298. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  299. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  300. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  301. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  302. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  303. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  304. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  305. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  306. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  307. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  308. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  309. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  310. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  311. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  312. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  313. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  314. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  315. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  316. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  317. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  318. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  319. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  320. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/superlink/utils.py +0 -0
  321. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/typing.py +0 -0
  322. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/utils/__init__.py +0 -0
  323. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/utils/tensorboard.py +0 -0
  324. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/utils/validator.py +0 -0
  325. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/__init__.py +0 -0
  326. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/constant.py +0 -0
  327. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/default_workflows.py +0 -0
  328. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  329. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  330. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  331. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/serverapp/__init__.py +0 -0
  332. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/__init__.py +0 -0
  333. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/app.py +0 -0
  334. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/legacy_app.py +0 -0
  335. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  336. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  337. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  338. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/ray_transport/utils.py +0 -0
  339. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/run_simulation.py +0 -0
  340. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/simulation/simulationio_connection.py +0 -0
  341. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supercore/__init__.py +0 -0
  342. {flwr_nightly-1.19.0.dev20250616/py/flwr/server/superlink → flwr_nightly-1.20.0.dev20250617/py/flwr/supercore}/ffs/__init__.py +0 -0
  343. {flwr_nightly-1.19.0.dev20250616/py/flwr/server/superlink → flwr_nightly-1.20.0.dev20250617/py/flwr/supercore}/ffs/ffs.py +0 -0
  344. {flwr_nightly-1.19.0.dev20250616/py/flwr/server/superlink → flwr_nightly-1.20.0.dev20250617/py/flwr/supercore}/ffs/ffs_factory.py +0 -0
  345. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supercore/object_store/__init__.py +0 -0
  346. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  347. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supercore/object_store/object_store.py +0 -0
  348. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  349. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/__init__.py +0 -0
  350. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/app.py +0 -0
  351. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/exec_event_log_interceptor.py +0 -0
  352. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superexec/exec_user_auth_interceptor.py +0 -0
  353. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/superlink/__init__.py +0 -0
  354. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/__init__.py +0 -0
  355. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/cli/__init__.py +0 -0
  356. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  357. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  358. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/nodestate/__init__.py +0 -0
  359. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  360. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/runtime/__init__.py +0 -0
  361. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
  362. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/servicer/__init__.py +0 -0
  363. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  364. {flwr_nightly-1.19.0.dev20250616 → flwr_nightly-1.20.0.dev20250617}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.19.0.dev20250616
3
+ Version: 1.20.0.dev20250617
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
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "torch==2.6.0",
14
14
  "torchvision==0.21.0",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets>=0.5.0",
13
13
  "torch==2.4.0",
14
14
  "trl==0.8.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets>=0.5.0",
13
13
  "torch==2.5.1",
14
14
  "transformers>=4.30.0,<5.0",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "jax==0.4.30",
13
13
  "jaxlib==0.4.30",
14
14
  "scikit-learn==1.6.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "mlx==0.21.1",
14
14
  ]
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "numpy>=2.0.2",
13
13
  ]
14
14
 
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "torch==2.5.1",
14
14
  "torchvision==0.20.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "scikit-learn>=1.6.1",
14
14
  ]
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.19.0",
11
+ "flwr[simulation]>=1.20.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "tensorflow>=2.11.1,<2.18.0",
14
14
  ]
@@ -150,50 +150,57 @@ def _run_with_exec_api(
150
150
  stream: bool,
151
151
  output_format: str,
152
152
  ) -> None:
153
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
154
- channel = init_channel(app, federation_config, auth_plugin)
155
- stub = ExecStub(channel)
153
+ channel = None
154
+ try:
155
+ auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
156
+ channel = init_channel(app, federation_config, auth_plugin)
157
+ stub = ExecStub(channel)
156
158
 
157
- fab_bytes, fab_hash, config = build_fab(app)
158
- fab_id, fab_version = get_metadata_from_config(config)
159
+ fab_bytes, fab_hash, config = build_fab(app)
160
+ fab_id, fab_version = get_metadata_from_config(config)
159
161
 
160
- fab = Fab(fab_hash, fab_bytes)
162
+ fab = Fab(fab_hash, fab_bytes)
161
163
 
162
- # Construct a `ConfigRecord` out of a flattened `UserConfig`
163
- fed_config = flatten_dict(federation_config.get("options", {}))
164
- c_record = user_config_to_configrecord(fed_config)
164
+ # Construct a `ConfigRecord` out of a flattened `UserConfig`
165
+ fed_config = flatten_dict(federation_config.get("options", {}))
166
+ c_record = user_config_to_configrecord(fed_config)
165
167
 
166
- req = StartRunRequest(
167
- fab=fab_to_proto(fab),
168
- override_config=user_config_to_proto(parse_config_args(config_overrides)),
169
- federation_options=config_record_to_proto(c_record),
170
- )
171
- with flwr_cli_grpc_exc_handler():
172
- res = stub.StartRun(req)
173
-
174
- if res.HasField("run_id"):
175
- typer.secho(f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN)
176
- else:
177
- typer.secho("❌ Failed to start run", fg=typer.colors.RED)
178
- raise typer.Exit(code=1)
179
-
180
- if output_format == CliOutputFormat.JSON:
181
- run_output = json.dumps(
182
- {
183
- "success": res.HasField("run_id"),
184
- "run-id": res.run_id if res.HasField("run_id") else None,
185
- "fab-id": fab_id,
186
- "fab-name": fab_id.rsplit("/", maxsplit=1)[-1],
187
- "fab-version": fab_version,
188
- "fab-hash": fab_hash[:8],
189
- "fab-filename": get_fab_filename(config, fab_hash),
190
- }
168
+ req = StartRunRequest(
169
+ fab=fab_to_proto(fab),
170
+ override_config=user_config_to_proto(parse_config_args(config_overrides)),
171
+ federation_options=config_record_to_proto(c_record),
191
172
  )
192
- restore_output()
193
- Console().print_json(run_output)
173
+ with flwr_cli_grpc_exc_handler():
174
+ res = stub.StartRun(req)
194
175
 
195
- if stream:
196
- start_stream(res.run_id, channel, CONN_REFRESH_PERIOD)
176
+ if res.HasField("run_id"):
177
+ typer.secho(
178
+ f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN
179
+ )
180
+ else:
181
+ typer.secho("❌ Failed to start run", fg=typer.colors.RED)
182
+ raise typer.Exit(code=1)
183
+
184
+ if output_format == CliOutputFormat.JSON:
185
+ run_output = json.dumps(
186
+ {
187
+ "success": res.HasField("run_id"),
188
+ "run-id": res.run_id if res.HasField("run_id") else None,
189
+ "fab-id": fab_id,
190
+ "fab-name": fab_id.rsplit("/", maxsplit=1)[-1],
191
+ "fab-version": fab_version,
192
+ "fab-hash": fab_hash[:8],
193
+ "fab-filename": get_fab_filename(config, fab_hash),
194
+ }
195
+ )
196
+ restore_output()
197
+ Console().print_json(run_output)
198
+
199
+ if stream:
200
+ start_stream(res.run_id, channel, CONN_REFRESH_PERIOD)
201
+ finally:
202
+ if channel:
203
+ channel.close()
197
204
 
198
205
 
199
206
  def _run_without_exec_api(
@@ -71,11 +71,11 @@ from flwr.proto.grpcadapter_pb2_grpc import add_GrpcAdapterServicer_to_server
71
71
  from flwr.server.fleet_event_log_interceptor import FleetEventLogInterceptor
72
72
  from flwr.server.serverapp.app import flwr_serverapp
73
73
  from flwr.simulation.app import flwr_simulation
74
+ from flwr.supercore.ffs import FfsFactory
74
75
  from flwr.supercore.object_store import ObjectStoreFactory
75
76
  from flwr.superexec.app import load_executor
76
77
  from flwr.superexec.exec_grpc import run_exec_api_grpc
77
78
 
78
- from .superlink.ffs.ffs_factory import FfsFactory
79
79
  from .superlink.fleet.grpc_adapter.grpc_adapter_servicer import GrpcAdapterServicer
80
80
  from .superlink.fleet.grpc_rere.fleet_servicer import FleetServicer
81
81
  from .superlink.fleet.grpc_rere.server_interceptor import AuthenticateServerInterceptor
@@ -48,10 +48,10 @@ from flwr.proto.message_pb2 import ( # pylint: disable=E0611
48
48
  PushObjectResponse,
49
49
  )
50
50
  from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=E0611
51
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
52
51
  from flwr.server.superlink.fleet.message_handler import message_handler
53
52
  from flwr.server.superlink.linkstate import LinkStateFactory
54
53
  from flwr.server.superlink.utils import abort_grpc_context
54
+ from flwr.supercore.ffs import FfsFactory
55
55
  from flwr.supercore.object_store import ObjectStoreFactory
56
56
 
57
57
 
@@ -58,9 +58,9 @@ from flwr.proto.run_pb2 import ( # pylint: disable=E0611
58
58
  GetRunResponse,
59
59
  Run,
60
60
  )
61
- from flwr.server.superlink.ffs.ffs import Ffs
62
61
  from flwr.server.superlink.linkstate import LinkState
63
62
  from flwr.server.superlink.utils import check_abort
63
+ from flwr.supercore.ffs import Ffs
64
64
  from flwr.supercore.object_store import NoObjectInStoreError, ObjectStore
65
65
 
66
66
  from ...utils import store_mapping_and_register_objects
@@ -47,10 +47,9 @@ from flwr.proto.message_pb2 import ( # pylint: disable=E0611
47
47
  PushObjectResponse,
48
48
  )
49
49
  from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=E0611
50
- from flwr.server.superlink.ffs.ffs import Ffs
51
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
52
50
  from flwr.server.superlink.fleet.message_handler import message_handler
53
51
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
52
+ from flwr.supercore.ffs import Ffs, FfsFactory
54
53
  from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
55
54
 
56
55
  try:
@@ -26,8 +26,8 @@ from flwr.common.logger import log
26
26
  from flwr.proto.serverappio_pb2_grpc import ( # pylint: disable=E0611
27
27
  add_ServerAppIoServicer_to_server,
28
28
  )
29
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
30
29
  from flwr.server.superlink.linkstate import LinkStateFactory
30
+ from flwr.supercore.ffs import FfsFactory
31
31
  from flwr.supercore.object_store import ObjectStoreFactory
32
32
 
33
33
  from .serverappio_servicer import ServerAppIoServicer
@@ -81,11 +81,10 @@ from flwr.proto.serverappio_pb2 import ( # pylint: disable=E0611
81
81
  PushServerAppOutputsRequest,
82
82
  PushServerAppOutputsResponse,
83
83
  )
84
- from flwr.server.superlink.ffs.ffs import Ffs
85
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
86
84
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
87
85
  from flwr.server.superlink.utils import abort_if
88
86
  from flwr.server.utils.validator import validate_message
87
+ from flwr.supercore.ffs import Ffs, FfsFactory
89
88
  from flwr.supercore.object_store import NoObjectInStoreError, ObjectStoreFactory
90
89
 
91
90
  from ..utils import store_mapping_and_register_objects
@@ -26,8 +26,8 @@ from flwr.common.logger import log
26
26
  from flwr.proto.simulationio_pb2_grpc import ( # pylint: disable=E0611
27
27
  add_SimulationIoServicer_to_server,
28
28
  )
29
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
30
29
  from flwr.server.superlink.linkstate import LinkStateFactory
30
+ from flwr.supercore.ffs import FfsFactory
31
31
 
32
32
  from .simulationio_servicer import SimulationIoServicer
33
33
 
@@ -56,9 +56,9 @@ from flwr.proto.simulationio_pb2 import ( # pylint: disable=E0611
56
56
  PushSimulationOutputsRequest,
57
57
  PushSimulationOutputsResponse,
58
58
  )
59
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
60
59
  from flwr.server.superlink.linkstate import LinkStateFactory
61
60
  from flwr.server.superlink.utils import abort_if
61
+ from flwr.supercore.ffs import FfsFactory
62
62
 
63
63
 
64
64
  class SimulationIoServicer(simulationio_pb2_grpc.SimulationIoServicer):
@@ -20,7 +20,7 @@ import json
20
20
  from pathlib import Path
21
21
  from typing import Optional
22
22
 
23
- from flwr.server.superlink.ffs.ffs import Ffs
23
+ from .ffs import Ffs
24
24
 
25
25
 
26
26
  class DiskFfs(Ffs): # pylint: disable=R0904
@@ -31,9 +31,8 @@ from flwr.common.constant import (
31
31
  )
32
32
  from flwr.common.logger import log
33
33
  from flwr.common.typing import Fab, RunStatus, UserConfig
34
- from flwr.server.superlink.ffs import Ffs
35
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
36
34
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
35
+ from flwr.supercore.ffs import Ffs, FfsFactory
37
36
 
38
37
  from .executor import Executor
39
38
 
@@ -27,8 +27,8 @@ from flwr.common.grpc import generic_create_grpc_server
27
27
  from flwr.common.logger import log
28
28
  from flwr.common.typing import UserConfig
29
29
  from flwr.proto.exec_pb2_grpc import add_ExecServicer_to_server
30
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
31
30
  from flwr.server.superlink.linkstate import LinkStateFactory
31
+ from flwr.supercore.ffs import FfsFactory
32
32
  from flwr.supercore.object_store import ObjectStoreFactory
33
33
  from flwr.superexec.exec_event_log_interceptor import ExecEventLogInterceptor
34
34
  from flwr.superexec.exec_user_auth_interceptor import ExecUserAuthInterceptor
@@ -52,8 +52,8 @@ from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
52
52
  StreamLogsRequest,
53
53
  StreamLogsResponse,
54
54
  )
55
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
56
55
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
56
+ from flwr.supercore.ffs import FfsFactory
57
57
  from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
58
58
 
59
59
  from .exec_user_auth_interceptor import shared_account_info
@@ -22,8 +22,8 @@ from typing import Optional
22
22
 
23
23
  from flwr.common import ConfigRecord
24
24
  from flwr.common.typing import UserConfig
25
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
26
25
  from flwr.server.superlink.linkstate import LinkStateFactory
26
+ from flwr.supercore.ffs import FfsFactory
27
27
 
28
28
 
29
29
  @dataclass
@@ -25,9 +25,8 @@ from flwr.cli.config_utils import get_fab_metadata
25
25
  from flwr.common import ConfigRecord, Context, RecordDict
26
26
  from flwr.common.logger import log
27
27
  from flwr.common.typing import Fab, UserConfig
28
- from flwr.server.superlink.ffs import Ffs
29
- from flwr.server.superlink.ffs.ffs_factory import FfsFactory
30
28
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
29
+ from flwr.supercore.ffs import Ffs, FfsFactory
31
30
 
32
31
  from .executor import Executor
33
32
 
@@ -51,8 +51,9 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
51
51
  # Store run ID to Context mapping
52
52
  self.ctx_store: dict[int, Context] = {}
53
53
  self.lock_ctx_store = Lock()
54
- # Store run ID to token mapping
54
+ # Store run ID to token mapping and token to run ID mapping
55
55
  self.token_store: dict[int, str] = {}
56
+ self.token_to_run_id: dict[str, int] = {}
56
57
  self.lock_token_store = Lock()
57
58
 
58
59
  def set_node_id(self, node_id: Optional[int]) -> None:
@@ -177,6 +178,7 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
177
178
  if run_id in self.token_store:
178
179
  raise ValueError("Token already created for this run ID")
179
180
  self.token_store[run_id] = token
181
+ self.token_to_run_id[token] = run_id
180
182
  return token
181
183
 
182
184
  def verify_token(self, run_id: int, token: str) -> bool:
@@ -187,4 +189,11 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
187
189
  def delete_token(self, run_id: int) -> None:
188
190
  """Delete the token for the given run ID."""
189
191
  with self.lock_token_store:
190
- self.token_store.pop(run_id, None)
192
+ token = self.token_store.pop(run_id, None)
193
+ if token is not None:
194
+ self.token_to_run_id.pop(token, None)
195
+
196
+ def get_run_id_by_token(self, token: str) -> Optional[int]:
197
+ """Get the run ID associated with a given token."""
198
+ with self.lock_token_store:
199
+ return self.token_to_run_id.get(token)
@@ -210,3 +210,18 @@ class NodeState(ABC):
210
210
  run_id : int
211
211
  The ID of the run for which to delete the token.
212
212
  """
213
+
214
+ @abstractmethod
215
+ def get_run_id_by_token(self, token: str) -> Optional[int]:
216
+ """Get the run ID associated with a given token.
217
+
218
+ Parameters
219
+ ----------
220
+ token : str
221
+ The token to look up.
222
+
223
+ Returns
224
+ -------
225
+ Optional[int]
226
+ The run ID if the token is valid, otherwise None.
227
+ """
@@ -52,7 +52,7 @@ from flwr.common.logger import log
52
52
  from flwr.common.retry_invoker import RetryInvoker, RetryState, exponential
53
53
  from flwr.common.typing import Fab, Run, RunNotRunningException, UserConfig
54
54
  from flwr.proto.clientappio_pb2_grpc import add_ClientAppIoServicer_to_server
55
- from flwr.server.superlink.ffs import Ffs, FfsFactory
55
+ from flwr.supercore.ffs import Ffs, FfsFactory
56
56
  from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
57
57
  from flwr.supernode.nodestate import NodeState, NodeStateFactory
58
58
  from flwr.supernode.servicer.clientappio import ClientAppInputs, ClientAppIoServicer
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.19.0.dev20250616"
7
+ version = "1.20.0.dev20250617"
8
8
  description = "Flower: A Friendly Federated AI Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]