flwr-nightly 1.10.0.dev20240629__tar.gz → 1.10.0.dev20240701__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 (270) hide show
  1. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/PKG-INFO +1 -1
  2. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/pyproject.toml +1 -1
  3. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/__init__.py +2 -0
  4. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/app.py +9 -8
  5. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/client_app.py +29 -4
  6. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/message_handler/message_handler.py +3 -4
  7. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/typing.py +2 -1
  8. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/app.py +12 -12
  9. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +2 -2
  10. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/LICENSE +0 -0
  11. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/README.md +0 -0
  12. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/__init__.py +0 -0
  13. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/__init__.py +0 -0
  14. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/app.py +0 -0
  15. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/build.py +0 -0
  16. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/config_utils.py +0 -0
  17. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/example.py +0 -0
  18. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/install.py +0 -0
  19. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/__init__.py +0 -0
  20. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/new.py +0 -0
  21. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  22. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  23. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  24. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  25. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  26. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  27. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  28. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.hf.py.tpl +0 -0
  29. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  30. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  31. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  32. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  33. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  34. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  35. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  36. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +0 -0
  37. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +0 -0
  38. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +0 -0
  39. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  40. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  41. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +0 -0
  42. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +0 -0
  43. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.hf.py.tpl +0 -0
  44. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  45. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  46. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  47. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  48. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  49. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  50. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/task.hf.py.tpl +0 -0
  51. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  52. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  53. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  54. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  55. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  56. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.hf.toml.tpl +0 -0
  57. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  58. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  59. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  60. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  61. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  62. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  63. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/run/__init__.py +0 -0
  64. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/run/run.py +0 -0
  65. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/cli/utils.py +0 -0
  66. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/client.py +0 -0
  67. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  68. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  69. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  70. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  71. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_client/connection.py +0 -0
  72. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  73. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  74. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  75. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  76. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/heartbeat.py +0 -0
  77. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/message_handler/__init__.py +0 -0
  78. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  79. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/__init__.py +0 -0
  80. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  81. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/comms_mods.py +0 -0
  82. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  83. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  84. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  85. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  86. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/mod/utils.py +0 -0
  87. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/node_state.py +0 -0
  88. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/node_state_tests.py +0 -0
  89. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/numpy_client.py +0 -0
  90. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/rest_client/__init__.py +0 -0
  91. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/rest_client/connection.py +0 -0
  92. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/supernode/__init__.py +0 -0
  93. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/client/supernode/app.py +0 -0
  94. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/__init__.py +0 -0
  95. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/address.py +0 -0
  96. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/config.py +0 -0
  97. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/constant.py +0 -0
  98. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/context.py +0 -0
  99. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/date.py +0 -0
  100. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/differential_privacy.py +0 -0
  101. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  102. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/dp.py +0 -0
  103. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/exit_handlers.py +0 -0
  104. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/grpc.py +0 -0
  105. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/logger.py +0 -0
  106. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/message.py +0 -0
  107. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/object_ref.py +0 -0
  108. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/parameter.py +0 -0
  109. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/pyproject.py +0 -0
  110. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/__init__.py +0 -0
  111. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/configsrecord.py +0 -0
  112. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/conversion_utils.py +0 -0
  113. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/metricsrecord.py +0 -0
  114. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/parametersrecord.py +0 -0
  115. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/recordset.py +0 -0
  116. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/record/typeddict.py +0 -0
  117. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/recordset_compat.py +0 -0
  118. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/retry_invoker.py +0 -0
  119. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  120. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  121. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  122. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  123. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  124. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  125. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  126. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  127. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/serde.py +0 -0
  128. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/telemetry.py +0 -0
  129. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/typing.py +0 -0
  130. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/common/version.py +0 -0
  131. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/__init__.py +0 -0
  132. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/driver_pb2.py +0 -0
  133. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  134. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  135. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  136. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/error_pb2.py +0 -0
  137. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/error_pb2.pyi +0 -0
  138. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  139. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  140. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/exec_pb2.py +0 -0
  141. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  142. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  143. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  144. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fab_pb2.py +0 -0
  145. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  146. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  147. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  148. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fleet_pb2.py +0 -0
  149. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  150. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  151. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  152. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  153. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  154. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  155. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  156. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/node_pb2.py +0 -0
  157. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/node_pb2.pyi +0 -0
  158. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  159. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  160. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/recordset_pb2.py +0 -0
  161. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  162. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  163. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  164. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/run_pb2.py +0 -0
  165. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/run_pb2.pyi +0 -0
  166. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  167. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  168. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/task_pb2.py +0 -0
  169. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/task_pb2.pyi +0 -0
  170. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  171. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  172. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/transport_pb2.py +0 -0
  173. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  174. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  175. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  176. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/py.typed +0 -0
  177. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/__init__.py +0 -0
  178. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/app.py +0 -0
  179. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/client_manager.py +0 -0
  180. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/client_proxy.py +0 -0
  181. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/compat/__init__.py +0 -0
  182. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/compat/app.py +0 -0
  183. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/compat/app_utils.py +0 -0
  184. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  185. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/compat/legacy_context.py +0 -0
  186. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/criterion.py +0 -0
  187. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/driver/__init__.py +0 -0
  188. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/driver/driver.py +0 -0
  189. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  190. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  191. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/history.py +0 -0
  192. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/run_serverapp.py +0 -0
  193. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/server.py +0 -0
  194. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/server_app.py +0 -0
  195. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/server_config.py +0 -0
  196. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/__init__.py +0 -0
  197. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/aggregate.py +0 -0
  198. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/bulyan.py +0 -0
  199. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  200. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  201. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  202. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  203. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  204. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  205. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedadam.py +0 -0
  206. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedavg.py +0 -0
  207. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  208. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  209. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  210. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedopt.py +0 -0
  211. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedprox.py +0 -0
  212. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  213. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  214. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  215. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  216. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  217. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/krum.py +0 -0
  218. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  219. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/strategy/strategy.py +0 -0
  220. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/__init__.py +0 -0
  221. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  222. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  223. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  224. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  225. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  226. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  227. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  228. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  229. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  230. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  231. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  232. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  233. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  234. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  235. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  236. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  237. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  238. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  239. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  240. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  241. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  242. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  243. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  244. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  245. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  246. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  247. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/state.py +0 -0
  248. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  249. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/superlink/state/utils.py +0 -0
  250. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/typing.py +0 -0
  251. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/utils/__init__.py +0 -0
  252. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/utils/tensorboard.py +0 -0
  253. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/utils/validator.py +0 -0
  254. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/__init__.py +0 -0
  255. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/constant.py +0 -0
  256. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  257. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  258. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  259. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  260. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/__init__.py +0 -0
  261. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  262. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  263. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  264. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/simulation/run_simulation.py +0 -0
  265. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/__init__.py +0 -0
  266. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/app.py +0 -0
  267. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/deployment.py +0 -0
  268. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/exec_grpc.py +0 -0
  269. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/exec_servicer.py +0 -0
  270. {flwr_nightly-1.10.0.dev20240629 → flwr_nightly-1.10.0.dev20240701}/src/py/flwr/superexec/executor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.10.0.dev20240629
3
+ Version: 1.10.0.dev20240701
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.10.0.dev20240629"
7
+ version = "1.10.0.dev20240701"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -23,11 +23,13 @@ from .numpy_client import NumPyClient as NumPyClient
23
23
  from .supernode import run_client_app as run_client_app
24
24
  from .supernode import run_supernode as run_supernode
25
25
  from .typing import ClientFn as ClientFn
26
+ from .typing import ClientFnExt as ClientFnExt
26
27
 
27
28
  __all__ = [
28
29
  "Client",
29
30
  "ClientApp",
30
31
  "ClientFn",
32
+ "ClientFnExt",
31
33
  "NumPyClient",
32
34
  "mod",
33
35
  "run_client_app",
@@ -26,7 +26,7 @@ from grpc import RpcError
26
26
 
27
27
  from flwr.client.client import Client
28
28
  from flwr.client.client_app import ClientApp, LoadClientAppError
29
- from flwr.client.typing import ClientFn
29
+ from flwr.client.typing import ClientFnExt
30
30
  from flwr.common import GRPC_MAX_MESSAGE_LENGTH, EventType, Message, event
31
31
  from flwr.common.address import parse_address
32
32
  from flwr.common.constant import (
@@ -51,7 +51,7 @@ from .numpy_client import NumPyClient
51
51
 
52
52
 
53
53
  def _check_actionable_client(
54
- client: Optional[Client], client_fn: Optional[ClientFn]
54
+ client: Optional[Client], client_fn: Optional[ClientFnExt]
55
55
  ) -> None:
56
56
  if client_fn is None and client is None:
57
57
  raise ValueError(
@@ -72,7 +72,7 @@ def _check_actionable_client(
72
72
  def start_client(
73
73
  *,
74
74
  server_address: str,
75
- client_fn: Optional[ClientFn] = None,
75
+ client_fn: Optional[ClientFnExt] = None,
76
76
  client: Optional[Client] = None,
77
77
  grpc_max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
78
78
  root_certificates: Optional[Union[bytes, str]] = None,
@@ -92,7 +92,7 @@ def start_client(
92
92
  The IPv4 or IPv6 address of the server. If the Flower
93
93
  server runs on the same machine on port 8080, then `server_address`
94
94
  would be `"[::]:8080"`.
95
- client_fn : Optional[ClientFn]
95
+ client_fn : Optional[ClientFnExt]
96
96
  A callable that instantiates a Client. (default: None)
97
97
  client : Optional[flwr.client.Client]
98
98
  An implementation of the abstract base
@@ -136,7 +136,7 @@ def start_client(
136
136
 
137
137
  Starting an SSL-enabled gRPC client using system certificates:
138
138
 
139
- >>> def client_fn(cid: str):
139
+ >>> def client_fn(node_id: int, partition_id: Optional[int]):
140
140
  >>> return FlowerClient()
141
141
  >>>
142
142
  >>> start_client(
@@ -180,7 +180,7 @@ def _start_client_internal(
180
180
  *,
181
181
  server_address: str,
182
182
  load_client_app_fn: Optional[Callable[[str, str], ClientApp]] = None,
183
- client_fn: Optional[ClientFn] = None,
183
+ client_fn: Optional[ClientFnExt] = None,
184
184
  client: Optional[Client] = None,
185
185
  grpc_max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
186
186
  root_certificates: Optional[Union[bytes, str]] = None,
@@ -203,7 +203,7 @@ def _start_client_internal(
203
203
  would be `"[::]:8080"`.
204
204
  load_client_app_fn : Optional[Callable[[], ClientApp]] (default: None)
205
205
  A function that can be used to load a `ClientApp` instance.
206
- client_fn : Optional[ClientFn]
206
+ client_fn : Optional[ClientFnExt]
207
207
  A callable that instantiates a Client. (default: None)
208
208
  client : Optional[flwr.client.Client]
209
209
  An implementation of the abstract base
@@ -248,7 +248,8 @@ def _start_client_internal(
248
248
  if client_fn is None:
249
249
  # Wrap `Client` instance in `client_fn`
250
250
  def single_client_factory(
251
- cid: str, # pylint: disable=unused-argument
251
+ node_id: int, # pylint: disable=unused-argument
252
+ partition_id: Optional[int], # pylint: disable=unused-argument
252
253
  ) -> Client:
253
254
  if client is None: # Added this to keep mypy happy
254
255
  raise ValueError(
@@ -15,19 +15,42 @@
15
15
  """Flower ClientApp."""
16
16
 
17
17
 
18
+ import inspect
18
19
  from typing import Callable, List, Optional
19
20
 
21
+ from flwr.client.client import Client
20
22
  from flwr.client.message_handler.message_handler import (
21
23
  handle_legacy_message_from_msgtype,
22
24
  )
23
25
  from flwr.client.mod.utils import make_ffn
24
- from flwr.client.typing import ClientFn, Mod
26
+ from flwr.client.typing import ClientFnExt, Mod
25
27
  from flwr.common import Context, Message, MessageType
26
- from flwr.common.logger import warn_preview_feature
28
+ from flwr.common.logger import warn_deprecated_feature, warn_preview_feature
27
29
 
28
30
  from .typing import ClientAppCallable
29
31
 
30
32
 
33
+ def _inspect_maybe_adapt_client_fn_signature(client_fn: ClientFnExt) -> ClientFnExt:
34
+ client_fn_args = inspect.signature(client_fn).parameters
35
+
36
+ if not all(key in client_fn_args for key in ["node_id", "partition_id"]):
37
+ warn_deprecated_feature(
38
+ "`client_fn` now expects a signature `def client_fn(node_id: int, "
39
+ "partition_id: Optional[int])`.\nYou provided `client_fn` with signature: "
40
+ f"{dict(client_fn_args.items())}"
41
+ )
42
+
43
+ # Wrap depcreated client_fn inside a function with the expected signature
44
+ def adaptor_fn(
45
+ node_id: int, partition_id: Optional[int] # pylint: disable=unused-argument
46
+ ) -> Client:
47
+ return client_fn(str(partition_id)) # type: ignore
48
+
49
+ return adaptor_fn
50
+
51
+ return client_fn
52
+
53
+
31
54
  class ClientAppException(Exception):
32
55
  """Exception raised when an exception is raised while executing a ClientApp."""
33
56
 
@@ -48,7 +71,7 @@ class ClientApp:
48
71
  >>> class FlowerClient(NumPyClient):
49
72
  >>> # ...
50
73
  >>>
51
- >>> def client_fn(cid):
74
+ >>> def client_fn(node_id: int, partition_id: Optional[int]):
52
75
  >>> return FlowerClient().to_client()
53
76
  >>>
54
77
  >>> app = ClientApp(client_fn)
@@ -65,7 +88,7 @@ class ClientApp:
65
88
 
66
89
  def __init__(
67
90
  self,
68
- client_fn: Optional[ClientFn] = None, # Only for backward compatibility
91
+ client_fn: Optional[ClientFnExt] = None, # Only for backward compatibility
69
92
  mods: Optional[List[Mod]] = None,
70
93
  ) -> None:
71
94
  self._mods: List[Mod] = mods if mods is not None else []
@@ -74,6 +97,8 @@ class ClientApp:
74
97
  self._call: Optional[ClientAppCallable] = None
75
98
  if client_fn is not None:
76
99
 
100
+ client_fn = _inspect_maybe_adapt_client_fn_signature(client_fn)
101
+
77
102
  def ffn(
78
103
  message: Message,
79
104
  context: Context,
@@ -14,7 +14,6 @@
14
14
  # ==============================================================================
15
15
  """Client-side message handler."""
16
16
 
17
-
18
17
  from logging import WARN
19
18
  from typing import Optional, Tuple, cast
20
19
 
@@ -25,7 +24,7 @@ from flwr.client.client import (
25
24
  maybe_call_get_properties,
26
25
  )
27
26
  from flwr.client.numpy_client import NumPyClient
28
- from flwr.client.typing import ClientFn
27
+ from flwr.client.typing import ClientFnExt
29
28
  from flwr.common import ConfigsRecord, Context, Message, Metadata, RecordSet, log
30
29
  from flwr.common.constant import MessageType, MessageTypeLegacy
31
30
  from flwr.common.recordset_compat import (
@@ -90,10 +89,10 @@ def handle_control_message(message: Message) -> Tuple[Optional[Message], int]:
90
89
 
91
90
 
92
91
  def handle_legacy_message_from_msgtype(
93
- client_fn: ClientFn, message: Message, context: Context
92
+ client_fn: ClientFnExt, message: Message, context: Context
94
93
  ) -> Message:
95
94
  """Handle legacy message in the inner most mod."""
96
- client = client_fn(str(context.partition_id))
95
+ client = client_fn(message.metadata.dst_node_id, context.partition_id)
97
96
 
98
97
  # Check if NumPyClient is returend
99
98
  if isinstance(client, NumPyClient):
@@ -15,7 +15,7 @@
15
15
  """Custom types for Flower clients."""
16
16
 
17
17
 
18
- from typing import Callable
18
+ from typing import Callable, Optional
19
19
 
20
20
  from flwr.common import Context, Message
21
21
 
@@ -23,6 +23,7 @@ from .client import Client as Client
23
23
 
24
24
  # Compatibility
25
25
  ClientFn = Callable[[str], Client]
26
+ ClientFnExt = Callable[[int, Optional[int]], Client]
26
27
 
27
28
  ClientAppCallable = Callable[[Message, Context], Message]
28
29
  Mod = Callable[[Message, Context, ClientAppCallable], Message]
@@ -27,7 +27,7 @@ from typing import Any, Dict, List, Optional, Type, Union
27
27
  import ray
28
28
  from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy
29
29
 
30
- from flwr.client import ClientFn
30
+ from flwr.client import ClientFnExt
31
31
  from flwr.common import EventType, event
32
32
  from flwr.common.logger import log, set_logger_propagation
33
33
  from flwr.server.client_manager import ClientManager
@@ -74,7 +74,7 @@ REASON:
74
74
  # pylint: disable=too-many-arguments,too-many-statements,too-many-branches
75
75
  def start_simulation(
76
76
  *,
77
- client_fn: ClientFn,
77
+ client_fn: ClientFnExt,
78
78
  num_clients: Optional[int] = None,
79
79
  clients_ids: Optional[List[str]] = None,
80
80
  client_resources: Optional[Dict[str, float]] = None,
@@ -92,16 +92,16 @@ def start_simulation(
92
92
 
93
93
  Parameters
94
94
  ----------
95
- client_fn : ClientFn
96
- A function creating client instances. The function must take a single
97
- `str` argument called `cid`. It should return a single client instance
98
- of type Client. Note that the created client instances are ephemeral
99
- and will often be destroyed after a single method invocation. Since client
100
- instances are not long-lived, they should not attempt to carry state over
101
- method invocations. Any state required by the instance (model, dataset,
102
- hyperparameters, ...) should be (re-)created in either the call to `client_fn`
103
- or the call to any of the client methods (e.g., load evaluation data in the
104
- `evaluate` method itself).
95
+ client_fn : ClientFnExt
96
+ A function creating Client instances. The function must have the signature
97
+ `client_fn(node_id: int, partition_id: Optional[int]). It should return
98
+ a single client instance of type Client. Note that the created client
99
+ instances are ephemeral and will often be destroyed after a single method
100
+ invocation. Since client instances are not long-lived, they should not attempt
101
+ to carry state over method invocations. Any state required by the instance
102
+ (model, dataset, hyperparameters, ...) should be (re-)created in either the
103
+ call to `client_fn` or the call to any of the client methods (e.g., load
104
+ evaluation data in the `evaluate` method itself).
105
105
  num_clients : Optional[int]
106
106
  The total number of clients in this simulation. This must be set if
107
107
  `clients_ids` is not set and vice-versa.
@@ -20,7 +20,7 @@ from logging import ERROR
20
20
  from typing import Optional
21
21
 
22
22
  from flwr import common
23
- from flwr.client import ClientFn
23
+ from flwr.client import ClientFnExt
24
24
  from flwr.client.client_app import ClientApp
25
25
  from flwr.client.node_state import NodeState
26
26
  from flwr.common import DEFAULT_TTL, Message, Metadata, RecordSet
@@ -44,7 +44,7 @@ class RayActorClientProxy(ClientProxy):
44
44
  """Flower client proxy which delegates work using Ray."""
45
45
 
46
46
  def __init__(
47
- self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool
47
+ self, client_fn: ClientFnExt, cid: str, actor_pool: VirtualClientEngineActorPool
48
48
  ):
49
49
  super().__init__(cid)
50
50