flwr-nightly 1.13.0.dev20241031__tar.gz → 1.13.0.dev20241102__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 (313) hide show
  1. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/PKG-INFO +1 -1
  2. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/pyproject.toml +1 -1
  3. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/config_utils.py +98 -0
  4. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/log.py +19 -82
  5. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/run/run.py +18 -83
  6. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/clientapp/app.py +1 -2
  7. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/constant.py +1 -1
  8. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/logger.py +3 -3
  9. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/telemetry.py +0 -6
  10. flwr_nightly-1.13.0.dev20241102/src/py/flwr/proto/serverappio_pb2.py +52 -0
  11. flwr_nightly-1.13.0.dev20241031/src/py/flwr/proto/driver_pb2_grpc.py → flwr_nightly-1.13.0.dev20241102/src/py/flwr/proto/serverappio_pb2_grpc.py +56 -56
  12. flwr_nightly-1.13.0.dev20241031/src/py/flwr/proto/driver_pb2_grpc.pyi → flwr_nightly-1.13.0.dev20241102/src/py/flwr/proto/serverappio_pb2_grpc.pyi +24 -24
  13. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/app.py +20 -20
  14. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/driver/driver.py +1 -1
  15. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/driver/grpc_driver.py +18 -18
  16. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/driver/inmemory_driver.py +1 -1
  17. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/run_serverapp.py +11 -11
  18. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/serverapp/app.py +4 -5
  19. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedadam.py +11 -1
  20. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/driver/__init__.py +1 -1
  21. flwr_nightly-1.13.0.dev20241031/src/py/flwr/server/superlink/driver/driver_grpc.py → flwr_nightly-1.13.0.dev20241102/src/py/flwr/server/superlink/driver/serverappio_grpc.py +17 -14
  22. flwr_nightly-1.13.0.dev20241031/src/py/flwr/server/superlink/driver/driver_servicer.py → flwr_nightly-1.13.0.dev20241102/src/py/flwr/server/superlink/driver/serverappio_servicer.py +29 -32
  23. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +2 -2
  24. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/linkstate.py +3 -3
  25. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +3 -3
  26. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/deployment.py +3 -3
  27. flwr_nightly-1.13.0.dev20241031/src/py/flwr/proto/driver_pb2.py +0 -52
  28. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/LICENSE +0 -0
  29. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/README.md +0 -0
  30. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/__init__.py +0 -0
  31. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/__init__.py +0 -0
  32. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/app.py +0 -0
  33. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/build.py +0 -0
  34. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/example.py +0 -0
  35. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/install.py +0 -0
  36. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/__init__.py +0 -0
  37. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/new.py +0 -0
  38. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  39. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  40. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  41. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  42. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  43. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  44. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  45. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  46. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  47. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  48. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  49. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  50. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  51. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  52. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  53. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  54. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  55. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  56. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  57. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  58. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  59. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  60. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  61. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  62. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  63. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  64. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  65. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  66. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  67. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  68. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  69. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  70. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  71. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  72. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  73. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  74. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  75. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  76. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  77. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  78. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  79. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  80. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  81. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  82. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  83. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  84. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  85. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  86. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  87. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  88. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  89. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  90. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/run/__init__.py +0 -0
  91. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/cli/utils.py +0 -0
  92. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/__init__.py +0 -0
  93. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/app.py +0 -0
  94. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/client.py +0 -0
  95. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/client_app.py +0 -0
  96. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/clientapp/__init__.py +0 -0
  97. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
  98. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/clientapp/utils.py +0 -0
  99. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  100. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  101. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  102. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  103. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_client/connection.py +0 -0
  104. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  105. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  106. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  107. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  108. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/heartbeat.py +0 -0
  109. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/message_handler/__init__.py +0 -0
  110. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  111. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  112. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/__init__.py +0 -0
  113. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  114. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/comms_mods.py +0 -0
  115. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  116. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  117. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  118. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  119. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/mod/utils.py +0 -0
  120. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/numpy_client.py +0 -0
  121. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/rest_client/__init__.py +0 -0
  122. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/rest_client/connection.py +0 -0
  123. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/run_info_store.py +0 -0
  124. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/supernode/__init__.py +0 -0
  125. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/supernode/app.py +0 -0
  126. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/client/typing.py +0 -0
  127. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/__init__.py +0 -0
  128. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/address.py +0 -0
  129. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/config.py +0 -0
  130. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/context.py +0 -0
  131. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/date.py +0 -0
  132. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/differential_privacy.py +0 -0
  133. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  134. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/dp.py +0 -0
  135. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/exit_handlers.py +0 -0
  136. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/grpc.py +0 -0
  137. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/message.py +0 -0
  138. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/object_ref.py +0 -0
  139. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/parameter.py +0 -0
  140. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/pyproject.py +0 -0
  141. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/__init__.py +0 -0
  142. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/configsrecord.py +0 -0
  143. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/conversion_utils.py +0 -0
  144. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/metricsrecord.py +0 -0
  145. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/parametersrecord.py +0 -0
  146. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/recordset.py +0 -0
  147. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/record/typeddict.py +0 -0
  148. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/recordset_compat.py +0 -0
  149. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/retry_invoker.py +0 -0
  150. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  151. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  152. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  153. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  154. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  155. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  156. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  157. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  158. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/serde.py +0 -0
  159. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/typing.py +0 -0
  160. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/common/version.py +0 -0
  161. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/__init__.py +0 -0
  162. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/clientappio_pb2.py +0 -0
  163. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
  164. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  165. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  166. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/common_pb2.py +0 -0
  167. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/common_pb2.pyi +0 -0
  168. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
  169. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
  170. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/control_pb2.py +0 -0
  171. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/control_pb2.pyi +0 -0
  172. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/control_pb2_grpc.py +0 -0
  173. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/control_pb2_grpc.pyi +0 -0
  174. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/error_pb2.py +0 -0
  175. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/error_pb2.pyi +0 -0
  176. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  177. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  178. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/exec_pb2.py +0 -0
  179. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  180. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  181. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  182. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fab_pb2.py +0 -0
  183. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  184. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  185. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  186. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fleet_pb2.py +0 -0
  187. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  188. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  189. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  190. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  191. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  192. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  193. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  194. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/log_pb2.py +0 -0
  195. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/log_pb2.pyi +0 -0
  196. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/log_pb2_grpc.py +0 -0
  197. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  198. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/message_pb2.py +0 -0
  199. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/message_pb2.pyi +0 -0
  200. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  201. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  202. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/node_pb2.py +0 -0
  203. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/node_pb2.pyi +0 -0
  204. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  205. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  206. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/recordset_pb2.py +0 -0
  207. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  208. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  209. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  210. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/run_pb2.py +0 -0
  211. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/run_pb2.pyi +0 -0
  212. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  213. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  214. /flwr_nightly-1.13.0.dev20241031/src/py/flwr/proto/driver_pb2.pyi → /flwr_nightly-1.13.0.dev20241102/src/py/flwr/proto/serverappio_pb2.pyi +0 -0
  215. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/task_pb2.py +0 -0
  216. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/task_pb2.pyi +0 -0
  217. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  218. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  219. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/transport_pb2.py +0 -0
  220. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  221. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  222. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  223. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/py.typed +0 -0
  224. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/__init__.py +0 -0
  225. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/client_manager.py +0 -0
  226. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/client_proxy.py +0 -0
  227. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/compat/__init__.py +0 -0
  228. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/compat/app.py +0 -0
  229. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/compat/app_utils.py +0 -0
  230. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  231. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/compat/legacy_context.py +0 -0
  232. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/criterion.py +0 -0
  233. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/driver/__init__.py +0 -0
  234. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/history.py +0 -0
  235. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/server.py +0 -0
  236. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/server_app.py +0 -0
  237. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/server_config.py +0 -0
  238. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/serverapp/__init__.py +0 -0
  239. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/serverapp_components.py +0 -0
  240. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/__init__.py +0 -0
  241. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/aggregate.py +0 -0
  242. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/bulyan.py +0 -0
  243. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  244. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  245. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  246. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  247. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  248. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  249. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedavg.py +0 -0
  250. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  251. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  252. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  253. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedopt.py +0 -0
  254. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedprox.py +0 -0
  255. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  256. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  257. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  258. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  259. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  260. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/krum.py +0 -0
  261. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  262. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/strategy/strategy.py +0 -0
  263. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/__init__.py +0 -0
  264. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
  265. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
  266. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
  267. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
  268. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  269. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  270. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  271. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  272. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  273. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  274. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  275. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  276. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  277. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  278. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  279. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  280. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  281. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  282. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  283. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  284. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  285. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  286. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  287. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  288. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  289. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  290. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/superlink/linkstate/utils.py +0 -0
  291. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/typing.py +0 -0
  292. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/utils/__init__.py +0 -0
  293. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/utils/tensorboard.py +0 -0
  294. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/utils/validator.py +0 -0
  295. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/__init__.py +0 -0
  296. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/constant.py +0 -0
  297. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  298. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  299. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  300. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  301. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/__init__.py +0 -0
  302. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/app.py +0 -0
  303. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  304. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  305. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  306. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  307. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/simulation/run_simulation.py +0 -0
  308. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/__init__.py +0 -0
  309. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/app.py +0 -0
  310. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/exec_grpc.py +0 -0
  311. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/exec_servicer.py +0 -0
  312. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/executor.py +0 -0
  313. {flwr_nightly-1.13.0.dev20241031 → flwr_nightly-1.13.0.dev20241102}/src/py/flwr/superexec/simulation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.13.0.dev20241031
3
+ Version: 1.13.0.dev20241102
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.13.0.dev20241031"
7
+ version = "1.13.0.dev20241102"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -20,6 +20,7 @@ from pathlib import Path
20
20
  from typing import IO, Any, Optional, Union, get_args
21
21
 
22
22
  import tomli
23
+ import typer
23
24
 
24
25
  from flwr.common import object_ref
25
26
  from flwr.common.typing import UserConfigValue
@@ -227,3 +228,100 @@ def load_from_string(toml_content: str) -> Optional[dict[str, Any]]:
227
228
  return data
228
229
  except tomli.TOMLDecodeError:
229
230
  return None
231
+
232
+
233
+ def validate_project_config(
234
+ config: Union[dict[str, Any], None], errors: list[str], warnings: list[str]
235
+ ) -> dict[str, Any]:
236
+ """Validate and return the Flower project configuration."""
237
+ if config is None:
238
+ typer.secho(
239
+ "Project configuration could not be loaded.\n"
240
+ "pyproject.toml is invalid:\n"
241
+ + "\n".join([f"- {line}" for line in errors]),
242
+ fg=typer.colors.RED,
243
+ bold=True,
244
+ )
245
+ raise typer.Exit(code=1)
246
+
247
+ if warnings:
248
+ typer.secho(
249
+ "Project configuration is missing the following "
250
+ "recommended properties:\n" + "\n".join([f"- {line}" for line in warnings]),
251
+ fg=typer.colors.RED,
252
+ bold=True,
253
+ )
254
+
255
+ typer.secho("Success", fg=typer.colors.GREEN)
256
+
257
+ return config
258
+
259
+
260
+ def validate_federation_in_project_config(
261
+ federation: Optional[str], config: dict[str, Any]
262
+ ) -> tuple[str, dict[str, Any]]:
263
+ """Validate the federation name in the Flower project configuration."""
264
+ federation = federation or config["tool"]["flwr"]["federations"].get("default")
265
+
266
+ if federation is None:
267
+ typer.secho(
268
+ "❌ No federation name was provided and the project's `pyproject.toml` "
269
+ "doesn't declare a default federation (with an Exec API address or an "
270
+ "`options.num-supernodes` value).",
271
+ fg=typer.colors.RED,
272
+ bold=True,
273
+ )
274
+ raise typer.Exit(code=1)
275
+
276
+ # Validate the federation exists in the configuration
277
+ federation_config = config["tool"]["flwr"]["federations"].get(federation)
278
+ print(federation_config)
279
+ if federation_config is None:
280
+ available_feds = {
281
+ fed for fed in config["tool"]["flwr"]["federations"] if fed != "default"
282
+ }
283
+ typer.secho(
284
+ f"❌ There is no `{federation}` federation declared in the "
285
+ "`pyproject.toml`.\n The following federations were found:\n\n"
286
+ + "\n".join(available_feds),
287
+ fg=typer.colors.RED,
288
+ bold=True,
289
+ )
290
+ raise typer.Exit(code=1)
291
+
292
+ return federation, federation_config
293
+
294
+
295
+ def validate_certificate_in_federation_config(
296
+ app: Path, federation_config: dict[str, Any]
297
+ ) -> tuple[bool, Optional[bytes]]:
298
+ """Validate the certificates in the Flower project configuration."""
299
+ insecure_str = federation_config.get("insecure")
300
+ if root_certificates := federation_config.get("root-certificates"):
301
+ root_certificates_bytes = (app / root_certificates).read_bytes()
302
+ if insecure := bool(insecure_str):
303
+ typer.secho(
304
+ "❌ `root_certificates` were provided but the `insecure` parameter "
305
+ "is set to `True`.",
306
+ fg=typer.colors.RED,
307
+ bold=True,
308
+ )
309
+ raise typer.Exit(code=1)
310
+ else:
311
+ root_certificates_bytes = None
312
+ if insecure_str is None:
313
+ typer.secho(
314
+ "❌ To disable TLS, set `insecure = true` in `pyproject.toml`.",
315
+ fg=typer.colors.RED,
316
+ bold=True,
317
+ )
318
+ raise typer.Exit(code=1)
319
+ if not (insecure := bool(insecure_str)):
320
+ typer.secho(
321
+ "❌ No certificate were given yet `insecure` is set to `False`.",
322
+ fg=typer.colors.RED,
323
+ bold=True,
324
+ )
325
+ raise typer.Exit(code=1)
326
+
327
+ return insecure, root_certificates_bytes
@@ -14,16 +14,20 @@
14
14
  # ==============================================================================
15
15
  """Flower command line interface `log` command."""
16
16
 
17
- import sys
18
17
  import time
19
18
  from logging import DEBUG, ERROR, INFO
20
19
  from pathlib import Path
21
- from typing import Annotated, Optional, cast
20
+ from typing import Annotated, Any, Optional, cast
22
21
 
23
22
  import grpc
24
23
  import typer
25
24
 
26
- from flwr.cli.config_utils import load_and_validate
25
+ from flwr.cli.config_utils import (
26
+ load_and_validate,
27
+ validate_certificate_in_federation_config,
28
+ validate_federation_in_project_config,
29
+ validate_project_config,
30
+ )
27
31
  from flwr.common.constant import CONN_RECONNECT_INTERVAL, CONN_REFRESH_PERIOD
28
32
  from flwr.common.grpc import GRPC_MAX_MESSAGE_LENGTH, create_channel
29
33
  from flwr.common.logger import log as logger
@@ -153,100 +157,33 @@ def log(
153
157
 
154
158
  pyproject_path = app / "pyproject.toml" if app else None
155
159
  config, errors, warnings = load_and_validate(path=pyproject_path)
156
-
157
- if config is None:
158
- typer.secho(
159
- "Project configuration could not be loaded.\n"
160
- "pyproject.toml is invalid:\n"
161
- + "\n".join([f"- {line}" for line in errors]),
162
- fg=typer.colors.RED,
163
- bold=True,
164
- )
165
- sys.exit()
166
-
167
- if warnings:
168
- typer.secho(
169
- "Project configuration is missing the following "
170
- "recommended properties:\n" + "\n".join([f"- {line}" for line in warnings]),
171
- fg=typer.colors.RED,
172
- bold=True,
173
- )
174
-
175
- typer.secho("Success", fg=typer.colors.GREEN)
176
-
177
- federation = federation or config["tool"]["flwr"]["federations"].get("default")
178
-
179
- if federation is None:
180
- typer.secho(
181
- "❌ No federation name was provided and the project's `pyproject.toml` "
182
- "doesn't declare a default federation (with a SuperExec address or an "
183
- "`options.num-supernodes` value).",
184
- fg=typer.colors.RED,
185
- bold=True,
186
- )
187
- raise typer.Exit(code=1)
188
-
189
- # Validate the federation exists in the configuration
190
- federation_config = config["tool"]["flwr"]["federations"].get(federation)
191
- if federation_config is None:
192
- available_feds = {
193
- fed for fed in config["tool"]["flwr"]["federations"] if fed != "default"
194
- }
195
- typer.secho(
196
- f"❌ There is no `{federation}` federation declared in the "
197
- "`pyproject.toml`.\n The following federations were found:\n\n"
198
- + "\n".join(available_feds),
199
- fg=typer.colors.RED,
200
- bold=True,
201
- )
202
- raise typer.Exit(code=1)
160
+ config = validate_project_config(config, errors, warnings)
161
+ federation, federation_config = validate_federation_in_project_config(
162
+ federation, config
163
+ )
203
164
 
204
165
  if "address" not in federation_config:
205
166
  typer.secho(
206
- "❌ `flwr log` currently works with `SuperExec`. Ensure that the correct"
207
- "`SuperExec` address is provided in the `pyproject.toml`.",
167
+ "❌ `flwr log` currently works with Exec API. Ensure that the correct"
168
+ "Exec API address is provided in the `pyproject.toml`.",
208
169
  fg=typer.colors.RED,
209
170
  bold=True,
210
171
  )
211
172
  raise typer.Exit(code=1)
212
173
 
213
- _log_with_exec_api(federation_config, run_id, stream)
174
+ _log_with_exec_api(app, federation_config, run_id, stream)
214
175
 
215
176
 
216
- # pylint: disable-next=too-many-branches
217
177
  def _log_with_exec_api(
218
- federation_config: dict[str, str],
178
+ app: Path,
179
+ federation_config: dict[str, Any],
219
180
  run_id: int,
220
181
  stream: bool,
221
182
  ) -> None:
222
- insecure_str = federation_config.get("insecure")
223
- if root_certificates := federation_config.get("root-certificates"):
224
- root_certificates_bytes = Path(root_certificates).read_bytes()
225
- if insecure := bool(insecure_str):
226
- typer.secho(
227
- "❌ `root_certificates` were provided but the `insecure` parameter"
228
- "is set to `True`.",
229
- fg=typer.colors.RED,
230
- bold=True,
231
- )
232
- raise typer.Exit(code=1)
233
- else:
234
- root_certificates_bytes = None
235
- if insecure_str is None:
236
- typer.secho(
237
- "❌ To disable TLS, set `insecure = true` in `pyproject.toml`.",
238
- fg=typer.colors.RED,
239
- bold=True,
240
- )
241
- raise typer.Exit(code=1)
242
- if not (insecure := bool(insecure_str)):
243
- typer.secho(
244
- "❌ No certificate were given yet `insecure` is set to `False`.",
245
- fg=typer.colors.RED,
246
- bold=True,
247
- )
248
- raise typer.Exit(code=1)
249
183
 
184
+ insecure, root_certificates_bytes = validate_certificate_in_federation_config(
185
+ app, federation_config
186
+ )
250
187
  channel = create_channel(
251
188
  server_address=federation_config["address"],
252
189
  insecure=insecure,
@@ -16,7 +16,6 @@
16
16
 
17
17
  import json
18
18
  import subprocess
19
- import sys
20
19
  from logging import DEBUG
21
20
  from pathlib import Path
22
21
  from typing import Annotated, Any, Optional
@@ -24,7 +23,12 @@ from typing import Annotated, Any, Optional
24
23
  import typer
25
24
 
26
25
  from flwr.cli.build import build
27
- from flwr.cli.config_utils import load_and_validate
26
+ from flwr.cli.config_utils import (
27
+ load_and_validate,
28
+ validate_certificate_in_federation_config,
29
+ validate_federation_in_project_config,
30
+ validate_project_config,
31
+ )
28
32
  from flwr.common.config import flatten_dict, parse_config_args
29
33
  from flwr.common.grpc import GRPC_MAX_MESSAGE_LENGTH, create_channel
30
34
  from flwr.common.logger import log
@@ -79,96 +83,27 @@ def run(
79
83
 
80
84
  pyproject_path = app / "pyproject.toml" if app else None
81
85
  config, errors, warnings = load_and_validate(path=pyproject_path)
82
-
83
- if config is None:
84
- typer.secho(
85
- "Project configuration could not be loaded.\n"
86
- "pyproject.toml is invalid:\n"
87
- + "\n".join([f"- {line}" for line in errors]),
88
- fg=typer.colors.RED,
89
- bold=True,
90
- )
91
- sys.exit()
92
-
93
- if warnings:
94
- typer.secho(
95
- "Project configuration is missing the following "
96
- "recommended properties:\n" + "\n".join([f"- {line}" for line in warnings]),
97
- fg=typer.colors.RED,
98
- bold=True,
99
- )
100
-
101
- typer.secho("Success", fg=typer.colors.GREEN)
102
-
103
- federation = federation or config["tool"]["flwr"]["federations"].get("default")
104
-
105
- if federation is None:
106
- typer.secho(
107
- "❌ No federation name was provided and the project's `pyproject.toml` "
108
- "doesn't declare a default federation (with a SuperExec address or an "
109
- "`options.num-supernodes` value).",
110
- fg=typer.colors.RED,
111
- bold=True,
112
- )
113
- raise typer.Exit(code=1)
114
-
115
- # Validate the federation exists in the configuration
116
- federation_config = config["tool"]["flwr"]["federations"].get(federation)
117
- if federation_config is None:
118
- available_feds = {
119
- fed for fed in config["tool"]["flwr"]["federations"] if fed != "default"
120
- }
121
- typer.secho(
122
- f"❌ There is no `{federation}` federation declared in "
123
- "`pyproject.toml`.\n The following federations were found:\n\n"
124
- + "\n".join(available_feds),
125
- fg=typer.colors.RED,
126
- bold=True,
127
- )
128
- raise typer.Exit(code=1)
86
+ config = validate_project_config(config, errors, warnings)
87
+ federation, federation_config = validate_federation_in_project_config(
88
+ federation, config
89
+ )
129
90
 
130
91
  if "address" in federation_config:
131
- _run_with_superexec(app, federation_config, config_overrides, stream)
92
+ _run_with_exec_api(app, federation_config, config_overrides, stream)
132
93
  else:
133
- _run_without_superexec(app, federation_config, config_overrides, federation)
94
+ _run_without_exec_api(app, federation_config, config_overrides, federation)
134
95
 
135
96
 
136
- # pylint: disable=too-many-locals
137
- def _run_with_superexec(
97
+ def _run_with_exec_api(
138
98
  app: Path,
139
99
  federation_config: dict[str, Any],
140
100
  config_overrides: Optional[list[str]],
141
101
  stream: bool,
142
102
  ) -> None:
143
103
 
144
- insecure_str = federation_config.get("insecure")
145
- if root_certificates := federation_config.get("root-certificates"):
146
- root_certificates_bytes = (app / root_certificates).read_bytes()
147
- if insecure := bool(insecure_str):
148
- typer.secho(
149
- "❌ `root_certificates` were provided but the `insecure` parameter"
150
- "is set to `True`.",
151
- fg=typer.colors.RED,
152
- bold=True,
153
- )
154
- raise typer.Exit(code=1)
155
- else:
156
- root_certificates_bytes = None
157
- if insecure_str is None:
158
- typer.secho(
159
- "❌ To disable TLS, set `insecure = true` in `pyproject.toml`.",
160
- fg=typer.colors.RED,
161
- bold=True,
162
- )
163
- raise typer.Exit(code=1)
164
- if not (insecure := bool(insecure_str)):
165
- typer.secho(
166
- "❌ No certificate were given yet `insecure` is set to `False`.",
167
- fg=typer.colors.RED,
168
- bold=True,
169
- )
170
- raise typer.Exit(code=1)
171
-
104
+ insecure, root_certificates_bytes = validate_certificate_in_federation_config(
105
+ app, federation_config
106
+ )
172
107
  channel = create_channel(
173
108
  server_address=federation_config["address"],
174
109
  insecure=insecure,
@@ -192,7 +127,7 @@ def _run_with_superexec(
192
127
  )
193
128
  res = stub.StartRun(req)
194
129
 
195
- # Delete FAB file once it has been sent to the SuperExec
130
+ # Delete FAB file once it has been sent to the Exec API
196
131
  Path(fab_path).unlink()
197
132
  typer.secho(f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN)
198
133
 
@@ -200,7 +135,7 @@ def _run_with_superexec(
200
135
  start_stream(res.run_id, channel, CONN_REFRESH_PERIOD)
201
136
 
202
137
 
203
- def _run_without_superexec(
138
+ def _run_without_exec_api(
204
139
  app: Optional[Path],
205
140
  federation_config: dict[str, Any],
206
141
  config_overrides: Optional[list[str]],
@@ -54,8 +54,6 @@ from .utils import get_load_client_app_fn
54
54
 
55
55
  def flwr_clientapp() -> None:
56
56
  """Run process-isolated Flower ClientApp."""
57
- log(INFO, "Starting Flower ClientApp")
58
-
59
57
  parser = argparse.ArgumentParser(
60
58
  description="Run a Flower ClientApp",
61
59
  )
@@ -72,6 +70,7 @@ def flwr_clientapp() -> None:
72
70
  )
73
71
  args = parser.parse_args()
74
72
 
73
+ log(INFO, "Starting Flower ClientApp")
75
74
  log(
76
75
  DEBUG,
77
76
  "Staring isolated `ClientApp` connected to SuperNode ClientAppIo at %s "
@@ -41,7 +41,7 @@ TRANSPORT_TYPES = [
41
41
  # SuperNode
42
42
  CLIENTAPPIO_API_DEFAULT_ADDRESS = "0.0.0.0:9094"
43
43
  # SuperLink
44
- DRIVER_API_DEFAULT_ADDRESS = "0.0.0.0:9091"
44
+ SERVERAPPIO_API_DEFAULT_ADDRESS = "0.0.0.0:9091"
45
45
  FLEET_API_GRPC_RERE_DEFAULT_ADDRESS = "0.0.0.0:9092"
46
46
  FLEET_API_GRPC_BIDI_DEFAULT_ADDRESS = (
47
47
  "[::]:8080" # IPv6 to keep start_server compatible
@@ -26,9 +26,9 @@ from typing import TYPE_CHECKING, Any, Optional, TextIO
26
26
 
27
27
  import grpc
28
28
 
29
- from flwr.proto.driver_pb2_grpc import DriverStub # pylint: disable=E0611
30
29
  from flwr.proto.log_pb2 import PushLogsRequest # pylint: disable=E0611
31
30
  from flwr.proto.node_pb2 import Node # pylint: disable=E0611
31
+ from flwr.proto.serverappio_pb2_grpc import ServerAppIoStub # pylint: disable=E0611
32
32
 
33
33
  from .constant import LOG_UPLOAD_INTERVAL
34
34
 
@@ -303,7 +303,7 @@ def restore_output() -> None:
303
303
 
304
304
 
305
305
  def _log_uploader(
306
- log_queue: Queue[Optional[str]], node_id: int, run_id: int, stub: DriverStub
306
+ log_queue: Queue[Optional[str]], node_id: int, run_id: int, stub: ServerAppIoStub
307
307
  ) -> None:
308
308
  """Upload logs to the SuperLink."""
309
309
  exit_flag = False
@@ -346,7 +346,7 @@ def _log_uploader(
346
346
 
347
347
 
348
348
  def start_log_uploader(
349
- log_queue: Queue[Optional[str]], node_id: int, run_id: int, stub: DriverStub
349
+ log_queue: Queue[Optional[str]], node_id: int, run_id: int, stub: ServerAppIoStub
350
350
  ) -> threading.Thread:
351
351
  """Start the log uploader thread and return it."""
352
352
  thread = threading.Thread(
@@ -150,12 +150,6 @@ class EventType(str, Enum):
150
150
 
151
151
  # Not yet implemented
152
152
 
153
- # --- SuperExec --------------------------------------------------------------------
154
-
155
- # SuperExec
156
- RUN_SUPEREXEC_ENTER = auto()
157
- RUN_SUPEREXEC_LEAVE = auto()
158
-
159
153
  # --- Simulation Engine ------------------------------------------------------------
160
154
 
161
155
  # CLI: flower-simulation
@@ -0,0 +1,52 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/serverappio.proto
4
+ # Protobuf Python Version: 4.25.0
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
16
+ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
17
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
+ from flwr.proto import task_pb2 as flwr_dot_proto_dot_task__pb2
19
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
20
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
21
+
22
+
23
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node\"@\n\x12PushTaskInsRequest\x12*\n\rtask_ins_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"\'\n\x13PushTaskInsResponse\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"F\n\x12PullTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"A\n\x13PullTaskResResponse\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\x1c\n\x1aPullServerAppInputsRequest\"\x7f\n\x1bPullServerAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"S\n\x1bPushServerAppOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1e\n\x1cPushServerAppOutputsResponse2\xca\x06\n\x0bServerAppIo\x12J\n\tCreateRun\x12\x1c.flwr.proto.CreateRunRequest\x1a\x1d.flwr.proto.CreateRunResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12P\n\x0bPushTaskIns\x12\x1e.flwr.proto.PushTaskInsRequest\x1a\x1f.flwr.proto.PushTaskInsResponse\"\x00\x12P\n\x0bPullTaskRes\x12\x1e.flwr.proto.PullTaskResRequest\x1a\x1f.flwr.proto.PullTaskResResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12h\n\x13PullServerAppInputs\x12&.flwr.proto.PullServerAppInputsRequest\x1a\'.flwr.proto.PullServerAppInputsResponse\"\x00\x12k\n\x14PushServerAppOutputs\x12\'.flwr.proto.PushServerAppOutputsRequest\x1a(.flwr.proto.PushServerAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x62\x06proto3')
24
+
25
+ _globals = globals()
26
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
28
+ if _descriptor._USE_C_DESCRIPTORS == False:
29
+ DESCRIPTOR._options = None
30
+ _globals['_GETNODESREQUEST']._serialized_start=182
31
+ _globals['_GETNODESREQUEST']._serialized_end=215
32
+ _globals['_GETNODESRESPONSE']._serialized_start=217
33
+ _globals['_GETNODESRESPONSE']._serialized_end=268
34
+ _globals['_PUSHTASKINSREQUEST']._serialized_start=270
35
+ _globals['_PUSHTASKINSREQUEST']._serialized_end=334
36
+ _globals['_PUSHTASKINSRESPONSE']._serialized_start=336
37
+ _globals['_PUSHTASKINSRESPONSE']._serialized_end=375
38
+ _globals['_PULLTASKRESREQUEST']._serialized_start=377
39
+ _globals['_PULLTASKRESREQUEST']._serialized_end=447
40
+ _globals['_PULLTASKRESRESPONSE']._serialized_start=449
41
+ _globals['_PULLTASKRESRESPONSE']._serialized_end=514
42
+ _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=516
43
+ _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=544
44
+ _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=546
45
+ _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=673
46
+ _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=675
47
+ _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=758
48
+ _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=760
49
+ _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=790
50
+ _globals['_SERVERAPPIO']._serialized_start=793
51
+ _globals['_SERVERAPPIO']._serialized_end=1635
52
+ # @@protoc_insertion_point(module_scope)