flwr-nightly 1.9.0.dev20240502__tar.gz → 1.9.0.dev20240503__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 (218) hide show
  1. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/PKG-INFO +1 -1
  2. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/pyproject.toml +1 -1
  3. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/app.py +13 -7
  4. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +19 -20
  5. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/LICENSE +0 -0
  6. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/README.md +0 -0
  7. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/__init__.py +0 -0
  8. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/__init__.py +0 -0
  9. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/app.py +0 -0
  10. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/build.py +0 -0
  11. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/config_utils.py +0 -0
  12. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/example.py +0 -0
  13. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/__init__.py +0 -0
  14. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/new.py +0 -0
  15. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  16. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  17. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  18. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  19. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  20. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  21. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  22. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  23. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  24. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  25. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  26. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  27. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  28. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  29. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  30. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  31. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  32. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  33. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  34. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  35. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/run/__init__.py +0 -0
  36. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/run/run.py +0 -0
  37. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/cli/utils.py +0 -0
  38. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/__init__.py +0 -0
  39. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/app.py +0 -0
  40. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/client.py +0 -0
  41. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/client_app.py +0 -0
  42. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  43. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  44. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/grpc_client/connection.py +0 -0
  45. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  46. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  47. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  48. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/heartbeat.py +0 -0
  49. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/message_handler/__init__.py +0 -0
  50. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  51. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  52. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/__init__.py +0 -0
  53. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  54. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/comms_mods.py +0 -0
  55. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  56. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  57. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  58. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  59. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/mod/utils.py +0 -0
  60. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/node_state.py +0 -0
  61. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/node_state_tests.py +0 -0
  62. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/numpy_client.py +0 -0
  63. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/rest_client/__init__.py +0 -0
  64. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/rest_client/connection.py +0 -0
  65. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/supernode/__init__.py +0 -0
  66. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/supernode/app.py +0 -0
  67. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/client/typing.py +0 -0
  68. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/__init__.py +0 -0
  69. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/address.py +0 -0
  70. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/constant.py +0 -0
  71. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/context.py +0 -0
  72. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/date.py +0 -0
  73. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/differential_privacy.py +0 -0
  74. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  75. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/dp.py +0 -0
  76. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/exit_handlers.py +0 -0
  77. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/grpc.py +0 -0
  78. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/logger.py +0 -0
  79. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/message.py +0 -0
  80. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/object_ref.py +0 -0
  81. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/parameter.py +0 -0
  82. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/pyproject.py +0 -0
  83. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/__init__.py +0 -0
  84. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/configsrecord.py +0 -0
  85. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/conversion_utils.py +0 -0
  86. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/metricsrecord.py +0 -0
  87. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/parametersrecord.py +0 -0
  88. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/recordset.py +0 -0
  89. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/record/typeddict.py +0 -0
  90. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/recordset_compat.py +0 -0
  91. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/retry_invoker.py +0 -0
  92. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  93. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  94. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  95. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  96. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  97. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  98. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  99. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  100. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/serde.py +0 -0
  101. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/telemetry.py +0 -0
  102. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/typing.py +0 -0
  103. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/common/version.py +0 -0
  104. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/__init__.py +0 -0
  105. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/driver_pb2.py +0 -0
  106. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  107. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  108. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  109. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/error_pb2.py +0 -0
  110. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/error_pb2.pyi +0 -0
  111. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  112. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  113. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/fleet_pb2.py +0 -0
  114. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  115. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  116. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  117. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/node_pb2.py +0 -0
  118. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/node_pb2.pyi +0 -0
  119. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  120. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  121. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/recordset_pb2.py +0 -0
  122. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  123. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  124. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  125. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/task_pb2.py +0 -0
  126. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/task_pb2.pyi +0 -0
  127. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  128. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  129. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/transport_pb2.py +0 -0
  130. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  131. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  132. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  133. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/py.typed +0 -0
  134. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/__init__.py +0 -0
  135. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/client_manager.py +0 -0
  136. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/client_proxy.py +0 -0
  137. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/compat/__init__.py +0 -0
  138. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/compat/app.py +0 -0
  139. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/compat/app_utils.py +0 -0
  140. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  141. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/compat/legacy_context.py +0 -0
  142. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/criterion.py +0 -0
  143. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/driver/__init__.py +0 -0
  144. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/driver/driver.py +0 -0
  145. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  146. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/history.py +0 -0
  147. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/run_serverapp.py +0 -0
  148. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/server.py +0 -0
  149. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/server_app.py +0 -0
  150. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/server_config.py +0 -0
  151. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/__init__.py +0 -0
  152. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/aggregate.py +0 -0
  153. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/bulyan.py +0 -0
  154. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  155. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  156. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  157. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  158. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  159. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  160. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedadam.py +0 -0
  161. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedavg.py +0 -0
  162. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  163. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  164. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  165. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedopt.py +0 -0
  166. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedprox.py +0 -0
  167. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  168. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  169. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  170. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  171. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  172. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/krum.py +0 -0
  173. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  174. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/strategy/strategy.py +0 -0
  175. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/__init__.py +0 -0
  176. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  177. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  178. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  179. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  180. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  181. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  182. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  183. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  184. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  185. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  186. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  187. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  188. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  189. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  190. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  191. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  192. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  193. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  194. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  195. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  196. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  197. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  198. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  199. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/state.py +0 -0
  200. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  201. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/superlink/state/utils.py +0 -0
  202. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/typing.py +0 -0
  203. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/utils/__init__.py +0 -0
  204. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/utils/tensorboard.py +0 -0
  205. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/utils/validator.py +0 -0
  206. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/__init__.py +0 -0
  207. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/constant.py +0 -0
  208. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  209. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  210. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  211. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  212. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/__init__.py +0 -0
  213. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/app.py +0 -0
  214. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  215. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  216. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  217. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  218. {flwr_nightly-1.9.0.dev20240502 → flwr_nightly-1.9.0.dev20240503}/src/py/flwr/simulation/run_simulation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.9.0.dev20240502
3
+ Version: 1.9.0.dev20240503
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.9.0.dev20240502"
7
+ version = "1.9.0.dev20240503"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -43,6 +43,7 @@ from flwr.common.constant import (
43
43
  from flwr.common.exit_handlers import register_exit_handlers
44
44
  from flwr.common.logger import log
45
45
  from flwr.common.secure_aggregation.crypto.symmetric_encryption import (
46
+ private_key_to_bytes,
46
47
  public_key_to_bytes,
47
48
  ssh_types_to_elliptic_curve,
48
49
  )
@@ -374,13 +375,18 @@ def run_superlink() -> None:
374
375
  server_private_key,
375
376
  server_public_key,
376
377
  ) = maybe_keys
377
- interceptors = [
378
- AuthenticateServerInterceptor(
379
- client_public_keys,
380
- server_private_key,
381
- server_public_key,
382
- )
383
- ]
378
+ state = state_factory.state()
379
+ state.store_client_public_keys(client_public_keys)
380
+ state.store_server_private_public_key(
381
+ private_key_to_bytes(server_private_key),
382
+ public_key_to_bytes(server_public_key),
383
+ )
384
+ log(
385
+ INFO,
386
+ "Client authentication enabled with %d known public keys",
387
+ len(client_public_keys),
388
+ )
389
+ interceptors = [AuthenticateServerInterceptor(state)]
384
390
 
385
391
  fleet_server = _run_fleet_api_grpc_rere(
386
392
  address=address,
@@ -16,17 +16,16 @@
16
16
 
17
17
 
18
18
  import base64
19
- from logging import INFO
20
- from typing import Any, Callable, Sequence, Set, Tuple, Union
19
+ from logging import WARNING
20
+ from typing import Any, Callable, Sequence, Tuple, Union
21
21
 
22
22
  import grpc
23
- from cryptography.hazmat.primitives.asymmetric import ec
24
23
 
25
24
  from flwr.common.logger import log
26
25
  from flwr.common.secure_aggregation.crypto.symmetric_encryption import (
26
+ bytes_to_private_key,
27
27
  bytes_to_public_key,
28
28
  generate_shared_key,
29
- public_key_to_bytes,
30
29
  verify_hmac,
31
30
  )
32
31
  from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
@@ -43,6 +42,7 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
43
42
  PushTaskResRequest,
44
43
  PushTaskResResponse,
45
44
  )
45
+ from flwr.server.superlink.state import State
46
46
 
47
47
  _PUBLIC_KEY_HEADER = "public-key"
48
48
  _AUTH_TOKEN_HEADER = "auth-token"
@@ -79,22 +79,21 @@ def _get_value_from_tuples(
79
79
  class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
80
80
  """Server interceptor for client authentication."""
81
81
 
82
- def __init__(
83
- self,
84
- client_public_keys: Set[bytes],
85
- private_key: ec.EllipticCurvePrivateKey,
86
- public_key: ec.EllipticCurvePublicKey,
87
- ):
88
- self.server_private_key = private_key
89
- self.client_public_keys = client_public_keys
90
- self.encoded_server_public_key = base64.urlsafe_b64encode(
91
- public_key_to_bytes(public_key)
92
- )
93
- log(
94
- INFO,
95
- "Client authentication enabled with %d known public keys",
96
- len(client_public_keys),
97
- )
82
+ def __init__(self, state: State):
83
+ self.state = state
84
+
85
+ self.client_public_keys = state.get_client_public_keys()
86
+ if len(self.client_public_keys) == 0:
87
+ log(WARNING, "Authentication enabled, but no known public keys configured")
88
+
89
+ private_key = self.state.get_server_private_key()
90
+ public_key = self.state.get_server_public_key()
91
+
92
+ if private_key is None or public_key is None:
93
+ raise ValueError("Error loading authentication keys")
94
+
95
+ self.server_private_key = bytes_to_private_key(private_key)
96
+ self.encoded_server_public_key = base64.urlsafe_b64encode(public_key)
98
97
 
99
98
  def intercept_service(
100
99
  self,