flwr-nightly 1.13.0.dev20241102__tar.gz → 1.13.0.dev20241105__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 (316) hide show
  1. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/PKG-INFO +1 -1
  2. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/pyproject.toml +1 -1
  3. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/config_utils.py +0 -1
  4. flwr_nightly-1.13.0.dev20241105/src/py/flwr/proto/simulationio_pb2.py +38 -0
  5. flwr_nightly-1.13.0.dev20241105/src/py/flwr/proto/simulationio_pb2.pyi +65 -0
  6. flwr_nightly-1.13.0.dev20241105/src/py/flwr/proto/simulationio_pb2_grpc.py +171 -0
  7. flwr_nightly-1.13.0.dev20241105/src/py/flwr/proto/simulationio_pb2_grpc.pyi +68 -0
  8. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +18 -1
  9. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +25 -6
  10. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/run_simulation.py +26 -120
  11. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/LICENSE +0 -0
  12. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/README.md +0 -0
  13. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/__init__.py +0 -0
  14. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/__init__.py +0 -0
  15. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/app.py +0 -0
  16. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/build.py +0 -0
  17. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/example.py +0 -0
  18. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/install.py +0 -0
  19. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/log.py +0 -0
  20. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/__init__.py +0 -0
  21. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/new.py +0 -0
  22. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  23. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  24. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  25. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  26. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  27. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  28. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  29. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  30. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  31. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  32. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  33. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  34. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  35. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  36. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  37. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  38. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  39. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  40. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  41. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  42. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  43. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  44. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  45. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  46. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  47. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  48. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  49. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  50. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  51. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  52. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  53. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  54. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  55. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  56. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  57. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  58. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  59. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  60. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  61. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  62. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  63. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  64. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  65. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  66. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  67. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  68. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  69. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  70. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  71. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  72. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  73. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  74. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/run/__init__.py +0 -0
  75. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/run/run.py +0 -0
  76. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/cli/utils.py +0 -0
  77. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/__init__.py +0 -0
  78. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/app.py +0 -0
  79. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/client.py +0 -0
  80. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/client_app.py +0 -0
  81. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/clientapp/__init__.py +0 -0
  82. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/clientapp/app.py +0 -0
  83. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
  84. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/clientapp/utils.py +0 -0
  85. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  86. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  87. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  88. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  89. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_client/connection.py +0 -0
  90. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  91. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  92. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  93. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  94. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/heartbeat.py +0 -0
  95. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/message_handler/__init__.py +0 -0
  96. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  97. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  98. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/__init__.py +0 -0
  99. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  100. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/comms_mods.py +0 -0
  101. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  102. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  103. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  104. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  105. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/mod/utils.py +0 -0
  106. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/numpy_client.py +0 -0
  107. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/rest_client/__init__.py +0 -0
  108. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/rest_client/connection.py +0 -0
  109. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/run_info_store.py +0 -0
  110. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/supernode/__init__.py +0 -0
  111. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/supernode/app.py +0 -0
  112. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/client/typing.py +0 -0
  113. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/__init__.py +0 -0
  114. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/address.py +0 -0
  115. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/config.py +0 -0
  116. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/constant.py +0 -0
  117. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/context.py +0 -0
  118. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/date.py +0 -0
  119. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/differential_privacy.py +0 -0
  120. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  121. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/dp.py +0 -0
  122. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/exit_handlers.py +0 -0
  123. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/grpc.py +0 -0
  124. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/logger.py +0 -0
  125. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/message.py +0 -0
  126. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/object_ref.py +0 -0
  127. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/parameter.py +0 -0
  128. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/pyproject.py +0 -0
  129. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/__init__.py +0 -0
  130. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/configsrecord.py +0 -0
  131. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/conversion_utils.py +0 -0
  132. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/metricsrecord.py +0 -0
  133. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/parametersrecord.py +0 -0
  134. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/recordset.py +0 -0
  135. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/record/typeddict.py +0 -0
  136. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/recordset_compat.py +0 -0
  137. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/retry_invoker.py +0 -0
  138. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  139. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  140. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  141. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  142. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  143. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  144. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  145. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  146. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/serde.py +0 -0
  147. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/telemetry.py +0 -0
  148. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/typing.py +0 -0
  149. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/common/version.py +0 -0
  150. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/__init__.py +0 -0
  151. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/clientappio_pb2.py +0 -0
  152. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
  153. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  154. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  155. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/common_pb2.py +0 -0
  156. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/common_pb2.pyi +0 -0
  157. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
  158. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
  159. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/control_pb2.py +0 -0
  160. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/control_pb2.pyi +0 -0
  161. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/control_pb2_grpc.py +0 -0
  162. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/control_pb2_grpc.pyi +0 -0
  163. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/error_pb2.py +0 -0
  164. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/error_pb2.pyi +0 -0
  165. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  166. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  167. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/exec_pb2.py +0 -0
  168. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  169. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  170. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  171. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fab_pb2.py +0 -0
  172. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  173. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  174. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  175. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fleet_pb2.py +0 -0
  176. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  177. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  178. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  179. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  180. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  181. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  182. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  183. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/log_pb2.py +0 -0
  184. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/log_pb2.pyi +0 -0
  185. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/log_pb2_grpc.py +0 -0
  186. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  187. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/message_pb2.py +0 -0
  188. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/message_pb2.pyi +0 -0
  189. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  191. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/node_pb2.py +0 -0
  192. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/node_pb2.pyi +0 -0
  193. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  194. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  195. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/recordset_pb2.py +0 -0
  196. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  197. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  198. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  199. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/run_pb2.py +0 -0
  200. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/run_pb2.pyi +0 -0
  201. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  202. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  203. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/serverappio_pb2.py +0 -0
  204. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/serverappio_pb2.pyi +0 -0
  205. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  206. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  207. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/task_pb2.py +0 -0
  208. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/task_pb2.pyi +0 -0
  209. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  210. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  211. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/transport_pb2.py +0 -0
  212. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  213. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  214. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  215. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/py.typed +0 -0
  216. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/__init__.py +0 -0
  217. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/app.py +0 -0
  218. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/client_manager.py +0 -0
  219. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/client_proxy.py +0 -0
  220. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/compat/__init__.py +0 -0
  221. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/compat/app.py +0 -0
  222. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/compat/app_utils.py +0 -0
  223. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  224. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/compat/legacy_context.py +0 -0
  225. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/criterion.py +0 -0
  226. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/driver/__init__.py +0 -0
  227. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/driver/driver.py +0 -0
  228. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  229. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  230. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/history.py +0 -0
  231. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/run_serverapp.py +0 -0
  232. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/server.py +0 -0
  233. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/server_app.py +0 -0
  234. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/server_config.py +0 -0
  235. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/serverapp/__init__.py +0 -0
  236. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/serverapp/app.py +0 -0
  237. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/serverapp_components.py +0 -0
  238. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/__init__.py +0 -0
  239. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/aggregate.py +0 -0
  240. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/bulyan.py +0 -0
  241. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  242. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  243. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  244. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  245. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  246. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  247. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedadam.py +0 -0
  248. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedavg.py +0 -0
  249. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  250. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  251. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  252. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedopt.py +0 -0
  253. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedprox.py +0 -0
  254. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  255. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  256. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  257. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  258. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  259. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/krum.py +0 -0
  260. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  261. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/strategy/strategy.py +0 -0
  262. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/__init__.py +0 -0
  263. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  264. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/driver/serverappio_grpc.py +0 -0
  265. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/driver/serverappio_servicer.py +0 -0
  266. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
  267. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
  268. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
  269. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
  270. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  271. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  272. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  273. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  274. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  275. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  276. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  277. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  278. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  279. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  280. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  281. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  282. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  283. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  284. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  285. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  286. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  287. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  288. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  289. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  290. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  291. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  292. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  293. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/superlink/linkstate/utils.py +0 -0
  294. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/typing.py +0 -0
  295. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/utils/__init__.py +0 -0
  296. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/utils/tensorboard.py +0 -0
  297. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/utils/validator.py +0 -0
  298. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/__init__.py +0 -0
  299. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/constant.py +0 -0
  300. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  301. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  302. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  303. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  304. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/__init__.py +0 -0
  305. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/app.py +0 -0
  306. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  307. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  308. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  309. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  310. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/__init__.py +0 -0
  311. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/app.py +0 -0
  312. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/deployment.py +0 -0
  313. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/exec_grpc.py +0 -0
  314. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/exec_servicer.py +0 -0
  315. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/src/py/flwr/superexec/executor.py +0 -0
  316. {flwr_nightly-1.13.0.dev20241102 → flwr_nightly-1.13.0.dev20241105}/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.dev20241102
3
+ Version: 1.13.0.dev20241105
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.dev20241102"
7
+ version = "1.13.0.dev20241105"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -275,7 +275,6 @@ def validate_federation_in_project_config(
275
275
 
276
276
  # Validate the federation exists in the configuration
277
277
  federation_config = config["tool"]["flwr"]["federations"].get(federation)
278
- print(federation_config)
279
278
  if federation_config is None:
280
279
  available_feds = {
281
280
  fed for fed in config["tool"]["flwr"]["federations"] if fed != "default"
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/simulationio.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 message_pb2 as flwr_dot_proto_dot_message__pb2
17
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"\x1d\n\x1bPullSimulationInputsRequest\"\x80\x01\n\x1cPullSimulationInputsResponse\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\"T\n\x1cPushSimulationOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1f\n\x1dPushSimulationOutputsResponse2\x92\x03\n\x0cSimulationIo\x12k\n\x14PullSimulationInputs\x12\'.flwr.proto.PullSimulationInputsRequest\x1a(.flwr.proto.PullSimulationInputsResponse\"\x00\x12n\n\x15PushSimulationOutputs\x12(.flwr.proto.PushSimulationOutputsRequest\x1a).flwr.proto.PushSimulationOutputsResponse\"\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')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.simulationio_pb2', _globals)
26
+ if _descriptor._USE_C_DESCRIPTORS == False:
27
+ DESCRIPTOR._options = None
28
+ _globals['_PULLSIMULATIONINPUTSREQUEST']._serialized_start=137
29
+ _globals['_PULLSIMULATIONINPUTSREQUEST']._serialized_end=166
30
+ _globals['_PULLSIMULATIONINPUTSRESPONSE']._serialized_start=169
31
+ _globals['_PULLSIMULATIONINPUTSRESPONSE']._serialized_end=297
32
+ _globals['_PUSHSIMULATIONOUTPUTSREQUEST']._serialized_start=299
33
+ _globals['_PUSHSIMULATIONOUTPUTSREQUEST']._serialized_end=383
34
+ _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_start=385
35
+ _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_end=416
36
+ _globals['_SIMULATIONIO']._serialized_start=419
37
+ _globals['_SIMULATIONIO']._serialized_end=821
38
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,65 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.fab_pb2
7
+ import flwr.proto.message_pb2
8
+ import flwr.proto.run_pb2
9
+ import google.protobuf.descriptor
10
+ import google.protobuf.message
11
+ import typing
12
+ import typing_extensions
13
+
14
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
15
+
16
+ class PullSimulationInputsRequest(google.protobuf.message.Message):
17
+ """PullSimulationInputs messages"""
18
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
19
+ def __init__(self,
20
+ ) -> None: ...
21
+ global___PullSimulationInputsRequest = PullSimulationInputsRequest
22
+
23
+ class PullSimulationInputsResponse(google.protobuf.message.Message):
24
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
25
+ CONTEXT_FIELD_NUMBER: builtins.int
26
+ RUN_FIELD_NUMBER: builtins.int
27
+ FAB_FIELD_NUMBER: builtins.int
28
+ @property
29
+ def context(self) -> flwr.proto.message_pb2.Context: ...
30
+ @property
31
+ def run(self) -> flwr.proto.run_pb2.Run: ...
32
+ @property
33
+ def fab(self) -> flwr.proto.fab_pb2.Fab: ...
34
+ def __init__(self,
35
+ *,
36
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
37
+ run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
38
+ fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
39
+ ) -> None: ...
40
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
41
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
42
+ global___PullSimulationInputsResponse = PullSimulationInputsResponse
43
+
44
+ class PushSimulationOutputsRequest(google.protobuf.message.Message):
45
+ """PushSimulationOutputs messages"""
46
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
47
+ RUN_ID_FIELD_NUMBER: builtins.int
48
+ CONTEXT_FIELD_NUMBER: builtins.int
49
+ run_id: builtins.int
50
+ @property
51
+ def context(self) -> flwr.proto.message_pb2.Context: ...
52
+ def __init__(self,
53
+ *,
54
+ run_id: builtins.int = ...,
55
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
56
+ ) -> None: ...
57
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
58
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
59
+ global___PushSimulationOutputsRequest = PushSimulationOutputsRequest
60
+
61
+ class PushSimulationOutputsResponse(google.protobuf.message.Message):
62
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
63
+ def __init__(self,
64
+ ) -> None: ...
65
+ global___PushSimulationOutputsResponse = PushSimulationOutputsResponse
@@ -0,0 +1,171 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
6
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
7
+ from flwr.proto import simulationio_pb2 as flwr_dot_proto_dot_simulationio__pb2
8
+
9
+
10
+ class SimulationIoStub(object):
11
+ """Missing associated documentation comment in .proto file."""
12
+
13
+ def __init__(self, channel):
14
+ """Constructor.
15
+
16
+ Args:
17
+ channel: A grpc.Channel.
18
+ """
19
+ self.PullSimulationInputs = channel.unary_unary(
20
+ '/flwr.proto.SimulationIo/PullSimulationInputs',
21
+ request_serializer=flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsRequest.SerializeToString,
22
+ response_deserializer=flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsResponse.FromString,
23
+ )
24
+ self.PushSimulationOutputs = channel.unary_unary(
25
+ '/flwr.proto.SimulationIo/PushSimulationOutputs',
26
+ request_serializer=flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsRequest.SerializeToString,
27
+ response_deserializer=flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsResponse.FromString,
28
+ )
29
+ self.UpdateRunStatus = channel.unary_unary(
30
+ '/flwr.proto.SimulationIo/UpdateRunStatus',
31
+ request_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
32
+ response_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.FromString,
33
+ )
34
+ self.PushLogs = channel.unary_unary(
35
+ '/flwr.proto.SimulationIo/PushLogs',
36
+ request_serializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.SerializeToString,
37
+ response_deserializer=flwr_dot_proto_dot_log__pb2.PushLogsResponse.FromString,
38
+ )
39
+
40
+
41
+ class SimulationIoServicer(object):
42
+ """Missing associated documentation comment in .proto file."""
43
+
44
+ def PullSimulationInputs(self, request, context):
45
+ """Pull Simulation inputs
46
+ """
47
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
48
+ context.set_details('Method not implemented!')
49
+ raise NotImplementedError('Method not implemented!')
50
+
51
+ def PushSimulationOutputs(self, request, context):
52
+ """Push Simulation outputs
53
+ """
54
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
55
+ context.set_details('Method not implemented!')
56
+ raise NotImplementedError('Method not implemented!')
57
+
58
+ def UpdateRunStatus(self, request, context):
59
+ """Update the status of a given run
60
+ """
61
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
62
+ context.set_details('Method not implemented!')
63
+ raise NotImplementedError('Method not implemented!')
64
+
65
+ def PushLogs(self, request, context):
66
+ """Push ServerApp logs
67
+ """
68
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
69
+ context.set_details('Method not implemented!')
70
+ raise NotImplementedError('Method not implemented!')
71
+
72
+
73
+ def add_SimulationIoServicer_to_server(servicer, server):
74
+ rpc_method_handlers = {
75
+ 'PullSimulationInputs': grpc.unary_unary_rpc_method_handler(
76
+ servicer.PullSimulationInputs,
77
+ request_deserializer=flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsRequest.FromString,
78
+ response_serializer=flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsResponse.SerializeToString,
79
+ ),
80
+ 'PushSimulationOutputs': grpc.unary_unary_rpc_method_handler(
81
+ servicer.PushSimulationOutputs,
82
+ request_deserializer=flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsRequest.FromString,
83
+ response_serializer=flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsResponse.SerializeToString,
84
+ ),
85
+ 'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
86
+ servicer.UpdateRunStatus,
87
+ request_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.FromString,
88
+ response_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.SerializeToString,
89
+ ),
90
+ 'PushLogs': grpc.unary_unary_rpc_method_handler(
91
+ servicer.PushLogs,
92
+ request_deserializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.FromString,
93
+ response_serializer=flwr_dot_proto_dot_log__pb2.PushLogsResponse.SerializeToString,
94
+ ),
95
+ }
96
+ generic_handler = grpc.method_handlers_generic_handler(
97
+ 'flwr.proto.SimulationIo', rpc_method_handlers)
98
+ server.add_generic_rpc_handlers((generic_handler,))
99
+
100
+
101
+ # This class is part of an EXPERIMENTAL API.
102
+ class SimulationIo(object):
103
+ """Missing associated documentation comment in .proto file."""
104
+
105
+ @staticmethod
106
+ def PullSimulationInputs(request,
107
+ target,
108
+ options=(),
109
+ channel_credentials=None,
110
+ call_credentials=None,
111
+ insecure=False,
112
+ compression=None,
113
+ wait_for_ready=None,
114
+ timeout=None,
115
+ metadata=None):
116
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/PullSimulationInputs',
117
+ flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsRequest.SerializeToString,
118
+ flwr_dot_proto_dot_simulationio__pb2.PullSimulationInputsResponse.FromString,
119
+ options, channel_credentials,
120
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
121
+
122
+ @staticmethod
123
+ def PushSimulationOutputs(request,
124
+ target,
125
+ options=(),
126
+ channel_credentials=None,
127
+ call_credentials=None,
128
+ insecure=False,
129
+ compression=None,
130
+ wait_for_ready=None,
131
+ timeout=None,
132
+ metadata=None):
133
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/PushSimulationOutputs',
134
+ flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsRequest.SerializeToString,
135
+ flwr_dot_proto_dot_simulationio__pb2.PushSimulationOutputsResponse.FromString,
136
+ options, channel_credentials,
137
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
138
+
139
+ @staticmethod
140
+ def UpdateRunStatus(request,
141
+ target,
142
+ options=(),
143
+ channel_credentials=None,
144
+ call_credentials=None,
145
+ insecure=False,
146
+ compression=None,
147
+ wait_for_ready=None,
148
+ timeout=None,
149
+ metadata=None):
150
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/UpdateRunStatus',
151
+ flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
152
+ flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.FromString,
153
+ options, channel_credentials,
154
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
155
+
156
+ @staticmethod
157
+ def PushLogs(request,
158
+ target,
159
+ options=(),
160
+ channel_credentials=None,
161
+ call_credentials=None,
162
+ insecure=False,
163
+ compression=None,
164
+ wait_for_ready=None,
165
+ timeout=None,
166
+ metadata=None):
167
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/PushLogs',
168
+ flwr_dot_proto_dot_log__pb2.PushLogsRequest.SerializeToString,
169
+ flwr_dot_proto_dot_log__pb2.PushLogsResponse.FromString,
170
+ options, channel_credentials,
171
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,68 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import abc
6
+ import flwr.proto.log_pb2
7
+ import flwr.proto.run_pb2
8
+ import flwr.proto.simulationio_pb2
9
+ import grpc
10
+
11
+ class SimulationIoStub:
12
+ def __init__(self, channel: grpc.Channel) -> None: ...
13
+ PullSimulationInputs: grpc.UnaryUnaryMultiCallable[
14
+ flwr.proto.simulationio_pb2.PullSimulationInputsRequest,
15
+ flwr.proto.simulationio_pb2.PullSimulationInputsResponse]
16
+ """Pull Simulation inputs"""
17
+
18
+ PushSimulationOutputs: grpc.UnaryUnaryMultiCallable[
19
+ flwr.proto.simulationio_pb2.PushSimulationOutputsRequest,
20
+ flwr.proto.simulationio_pb2.PushSimulationOutputsResponse]
21
+ """Push Simulation outputs"""
22
+
23
+ UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
24
+ flwr.proto.run_pb2.UpdateRunStatusRequest,
25
+ flwr.proto.run_pb2.UpdateRunStatusResponse]
26
+ """Update the status of a given run"""
27
+
28
+ PushLogs: grpc.UnaryUnaryMultiCallable[
29
+ flwr.proto.log_pb2.PushLogsRequest,
30
+ flwr.proto.log_pb2.PushLogsResponse]
31
+ """Push ServerApp logs"""
32
+
33
+
34
+ class SimulationIoServicer(metaclass=abc.ABCMeta):
35
+ @abc.abstractmethod
36
+ def PullSimulationInputs(self,
37
+ request: flwr.proto.simulationio_pb2.PullSimulationInputsRequest,
38
+ context: grpc.ServicerContext,
39
+ ) -> flwr.proto.simulationio_pb2.PullSimulationInputsResponse:
40
+ """Pull Simulation inputs"""
41
+ pass
42
+
43
+ @abc.abstractmethod
44
+ def PushSimulationOutputs(self,
45
+ request: flwr.proto.simulationio_pb2.PushSimulationOutputsRequest,
46
+ context: grpc.ServicerContext,
47
+ ) -> flwr.proto.simulationio_pb2.PushSimulationOutputsResponse:
48
+ """Push Simulation outputs"""
49
+ pass
50
+
51
+ @abc.abstractmethod
52
+ def UpdateRunStatus(self,
53
+ request: flwr.proto.run_pb2.UpdateRunStatusRequest,
54
+ context: grpc.ServicerContext,
55
+ ) -> flwr.proto.run_pb2.UpdateRunStatusResponse:
56
+ """Update the status of a given run"""
57
+ pass
58
+
59
+ @abc.abstractmethod
60
+ def PushLogs(self,
61
+ request: flwr.proto.log_pb2.PushLogsRequest,
62
+ context: grpc.ServicerContext,
63
+ ) -> flwr.proto.log_pb2.PushLogsResponse:
64
+ """Push ServerApp logs"""
65
+ pass
66
+
67
+
68
+ def add_SimulationIoServicer_to_server(servicer: SimulationIoServicer, server: grpc.Server) -> None: ...
@@ -87,8 +87,25 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
87
87
  return None
88
88
  # Validate run_id
89
89
  if task_ins.run_id not in self.run_ids:
90
- log(ERROR, "`run_id` is invalid")
90
+ log(ERROR, "Invalid run ID for TaskIns: %s", task_ins.run_id)
91
+ return None
92
+ # Validate source node ID
93
+ if task_ins.task.producer.node_id != 0:
94
+ log(
95
+ ERROR,
96
+ "Invalid source node ID for TaskIns: %s",
97
+ task_ins.task.producer.node_id,
98
+ )
91
99
  return None
100
+ # Validate destination node ID
101
+ if not task_ins.task.consumer.anonymous:
102
+ if task_ins.task.consumer.node_id not in self.node_ids:
103
+ log(
104
+ ERROR,
105
+ "Invalid destination node ID for TaskIns: %s",
106
+ task_ins.task.consumer.node_id,
107
+ )
108
+ return None
92
109
 
93
110
  # Create task_id
94
111
  task_id = uuid4()
@@ -271,7 +271,6 @@ class SqliteLinkState(LinkState): # pylint: disable=R0904
271
271
  if any(errors):
272
272
  log(ERROR, errors)
273
273
  return None
274
-
275
274
  # Create task_id
276
275
  task_id = uuid4()
277
276
 
@@ -284,16 +283,36 @@ class SqliteLinkState(LinkState): # pylint: disable=R0904
284
283
  data[0], ["run_id", "producer_node_id", "consumer_node_id"]
285
284
  )
286
285
 
286
+ # Validate run_id
287
+ query = "SELECT run_id FROM run WHERE run_id = ?;"
288
+ if not self.query(query, (data[0]["run_id"],)):
289
+ log(ERROR, "Invalid run ID for TaskIns: %s", task_ins.run_id)
290
+ return None
291
+ # Validate source node ID
292
+ if task_ins.task.producer.node_id != 0:
293
+ log(
294
+ ERROR,
295
+ "Invalid source node ID for TaskIns: %s",
296
+ task_ins.task.producer.node_id,
297
+ )
298
+ return None
299
+ # Validate destination node ID
300
+ query = "SELECT node_id FROM node WHERE node_id = ?;"
301
+ if not task_ins.task.consumer.anonymous:
302
+ if not self.query(query, (data[0]["consumer_node_id"],)):
303
+ log(
304
+ ERROR,
305
+ "Invalid destination node ID for TaskIns: %s",
306
+ task_ins.task.consumer.node_id,
307
+ )
308
+ return None
309
+
287
310
  columns = ", ".join([f":{key}" for key in data[0]])
288
311
  query = f"INSERT INTO task_ins VALUES({columns});"
289
312
 
290
313
  # Only invalid run_id can trigger IntegrityError.
291
314
  # This may need to be changed in the future version with more integrity checks.
292
- try:
293
- self.query(query, data)
294
- except sqlite3.IntegrityError:
295
- log(ERROR, "`run` is invalid")
296
- return None
315
+ self.query(query, data)
297
316
 
298
317
  return task_id
299
318
 
@@ -21,7 +21,6 @@ import logging
21
21
  import sys
22
22
  import threading
23
23
  import traceback
24
- from argparse import Namespace
25
24
  from logging import DEBUG, ERROR, INFO, WARNING
26
25
  from pathlib import Path
27
26
  from time import sleep
@@ -35,7 +34,6 @@ from flwr.common.constant import RUN_ID_NUM_BYTES, Status
35
34
  from flwr.common.logger import (
36
35
  set_logger_propagation,
37
36
  update_console_handler,
38
- warn_deprecated_feature,
39
37
  warn_deprecated_feature_with_example,
40
38
  )
41
39
  from flwr.common.typing import Run, RunStatus, UserConfig
@@ -52,47 +50,6 @@ from flwr.simulation.ray_transport.utils import (
52
50
  )
53
51
 
54
52
 
55
- def _check_args_do_not_interfere(args: Namespace) -> bool:
56
- """Ensure decoupling of flags for different ways to start the simulation."""
57
- mode_one_args = ["app", "run_config"]
58
- mode_two_args = ["client_app", "server_app"]
59
-
60
- def _resolve_message(conflict_keys: list[str]) -> str:
61
- return ",".join([f"`--{key}`".replace("_", "-") for key in conflict_keys])
62
-
63
- # When passing `--app`, `--app-dir` is ignored
64
- if args.app and args.app_dir:
65
- log(ERROR, "Either `--app` or `--app-dir` can be set, but not both.")
66
- return False
67
-
68
- if any(getattr(args, key) for key in mode_one_args):
69
- if any(getattr(args, key) for key in mode_two_args):
70
- log(
71
- ERROR,
72
- "Passing any of {%s} alongside with any of {%s}",
73
- _resolve_message(mode_one_args),
74
- _resolve_message(mode_two_args),
75
- )
76
- return False
77
-
78
- if not args.app:
79
- log(ERROR, "You need to pass --app")
80
- return False
81
-
82
- return True
83
-
84
- # Ensure all args are set (required for the non-FAB mode of execution)
85
- if not all(getattr(args, key) for key in mode_two_args):
86
- log(
87
- ERROR,
88
- "Passing all of %s keys are required.",
89
- _resolve_message(mode_two_args),
90
- )
91
- return False
92
-
93
- return True
94
-
95
-
96
53
  def _replace_keys(d: Any, match: str, target: str) -> Any:
97
54
  if isinstance(d, dict):
98
55
  return {
@@ -115,19 +72,6 @@ def run_simulation_from_cli() -> None:
115
72
  event_details={"backend": args.backend, "num-supernodes": args.num_supernodes},
116
73
  )
117
74
 
118
- # Add warnings for deprecated server_app and client_app arguments
119
- if args.server_app:
120
- warn_deprecated_feature(
121
- "The `--server-app` argument is deprecated. "
122
- "Please use the `--app` argument instead."
123
- )
124
-
125
- if args.client_app:
126
- warn_deprecated_feature(
127
- "The `--client-app` argument is deprecated. "
128
- "Use the `--app` argument instead."
129
- )
130
-
131
75
  if args.enable_tf_gpu_growth:
132
76
  warn_deprecated_feature_with_example(
133
77
  "Passing `--enable-tf-gpu-growth` is deprecated.",
@@ -144,60 +88,39 @@ def run_simulation_from_cli() -> None:
144
88
  backend_config_dict = _replace_keys(backend_config_dict, match="-", target="_")
145
89
  log(DEBUG, "backend_config_dict: %s", backend_config_dict)
146
90
 
147
- # We are supporting two modes for the CLI entrypoint:
148
- # 1) Running an app dir containing a `pyproject.toml`
149
- # 2) Running any ClientApp and SeverApp w/o pyproject.toml being present
150
- # For 2), some CLI args are compulsory, but they are not required for 1)
151
- # We first do these checks
152
- args_check_pass = _check_args_do_not_interfere(args)
153
- if not args_check_pass:
154
- sys.exit("Simulation Engine cannot start.")
155
-
156
91
  run_id = (
157
92
  generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
158
93
  if args.run_id is None
159
94
  else args.run_id
160
95
  )
161
- if args.app:
162
- # Mode 1
163
- app_path = Path(args.app)
164
- if not app_path.is_dir():
165
- log(ERROR, "--app is not a directory")
166
- sys.exit("Simulation Engine cannot start.")
167
-
168
- # Load pyproject.toml
169
- config, errors, warnings = load_and_validate(
170
- app_path / "pyproject.toml", check_module=False
171
- )
172
- if errors:
173
- raise ValueError(errors)
174
96
 
175
- if warnings:
176
- log(WARNING, warnings)
97
+ app_path = Path(args.app)
98
+ if not app_path.is_dir():
99
+ log(ERROR, "--app is not a directory")
100
+ sys.exit("Simulation Engine cannot start.")
101
+
102
+ # Load pyproject.toml
103
+ config, errors, warnings = load_and_validate(
104
+ app_path / "pyproject.toml", check_module=False
105
+ )
106
+ if errors:
107
+ raise ValueError(errors)
177
108
 
178
- if config is None:
179
- raise ValueError("Config extracted from FAB's pyproject.toml is not valid")
109
+ if warnings:
110
+ log(WARNING, warnings)
180
111
 
181
- # Get ClientApp and SeverApp components
182
- app_components = config["tool"]["flwr"]["app"]["components"]
183
- client_app_attr = app_components["clientapp"]
184
- server_app_attr = app_components["serverapp"]
112
+ if config is None:
113
+ raise ValueError("Config extracted from FAB's pyproject.toml is not valid")
185
114
 
186
- override_config = parse_config_args(
187
- [args.run_config] if args.run_config else args.run_config
188
- )
189
- fused_config = get_fused_config_from_dir(app_path, override_config)
190
- app_dir = args.app
191
- is_app = True
115
+ # Get ClientApp and SeverApp components
116
+ app_components = config["tool"]["flwr"]["app"]["components"]
117
+ client_app_attr = app_components["clientapp"]
118
+ server_app_attr = app_components["serverapp"]
192
119
 
193
- else:
194
- # Mode 2
195
- client_app_attr = args.client_app
196
- server_app_attr = args.server_app
197
- override_config = {}
198
- fused_config = None
199
- app_dir = args.app_dir
200
- is_app = False
120
+ override_config = parse_config_args(
121
+ [args.run_config] if args.run_config else args.run_config
122
+ )
123
+ fused_config = get_fused_config_from_dir(app_path, override_config)
201
124
 
202
125
  # Create run
203
126
  run = Run(
@@ -214,13 +137,13 @@ def run_simulation_from_cli() -> None:
214
137
  num_supernodes=args.num_supernodes,
215
138
  backend_name=args.backend,
216
139
  backend_config=backend_config_dict,
217
- app_dir=app_dir,
140
+ app_dir=args.app,
218
141
  run=run,
219
142
  enable_tf_gpu_growth=args.enable_tf_gpu_growth,
220
143
  delay_start=args.delay_start,
221
144
  verbose_logging=args.verbose,
222
145
  server_app_run_config=fused_config,
223
- is_app=is_app,
146
+ is_app=True,
224
147
  exit_event=EventType.CLI_FLOWER_SIMULATION_LEAVE,
225
148
  )
226
149
 
@@ -583,20 +506,10 @@ def _parse_args_run_simulation() -> argparse.ArgumentParser:
583
506
  parser.add_argument(
584
507
  "--app",
585
508
  type=str,
586
- default=None,
509
+ required=True,
587
510
  help="Path to a directory containing a FAB-like structure with a "
588
511
  "pyproject.toml.",
589
512
  )
590
- parser.add_argument(
591
- "--server-app",
592
- help="(DEPRECATED: use --app instead) For example: `server:app` or "
593
- "`project.package.module:wrapper.app`",
594
- )
595
- parser.add_argument(
596
- "--client-app",
597
- help="(DEPRECATED: use --app instead) For example: `client:app` or "
598
- "`project.package.module:wrapper.app`",
599
- )
600
513
  parser.add_argument(
601
514
  "--num-supernodes",
602
515
  type=int,
@@ -645,13 +558,6 @@ def _parse_args_run_simulation() -> argparse.ArgumentParser:
645
558
  help="When unset, only INFO, WARNING and ERROR log messages will be shown. "
646
559
  "If set, DEBUG-level logs will be displayed. ",
647
560
  )
648
- parser.add_argument(
649
- "--app-dir",
650
- default="",
651
- help="Add specified directory to the PYTHONPATH and load"
652
- "ClientApp and ServerApp from there."
653
- " Default: current working directory.",
654
- )
655
561
  parser.add_argument(
656
562
  "--flwr-dir",
657
563
  default=None,