flwr-nightly 1.9.0.dev20240412__tar.gz → 1.9.0.dev20240414__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 (209) hide show
  1. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/PKG-INFO +1 -1
  2. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/pyproject.toml +1 -1
  3. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/fleet_pb2.py +11 -5
  4. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/fleet_pb2.pyi +42 -0
  5. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/fleet_pb2_grpc.py +33 -0
  6. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/fleet_pb2_grpc.pyi +10 -0
  7. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +12 -0
  8. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +9 -0
  9. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +30 -0
  10. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/LICENSE +0 -0
  11. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/README.md +0 -0
  12. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/__init__.py +0 -0
  13. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/__init__.py +0 -0
  14. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/app.py +0 -0
  15. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/example.py +0 -0
  16. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/flower_toml.py +0 -0
  17. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/__init__.py +0 -0
  18. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/new.py +0 -0
  19. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  20. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  21. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  22. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  23. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  24. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  25. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  26. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  27. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  28. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  29. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  30. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  31. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/flower.toml.tpl +0 -0
  32. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  33. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  34. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  35. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/run/__init__.py +0 -0
  36. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/run/run.py +0 -0
  37. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/cli/utils.py +0 -0
  38. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/__init__.py +0 -0
  39. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/app.py +0 -0
  40. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/client.py +0 -0
  41. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/client_app.py +0 -0
  42. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  43. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  44. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/grpc_client/connection.py +0 -0
  45. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  46. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  47. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/heartbeat.py +0 -0
  48. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/message_handler/__init__.py +0 -0
  49. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  50. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  51. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/__init__.py +0 -0
  52. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  53. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/comms_mods.py +0 -0
  54. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  55. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  56. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  57. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  58. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/mod/utils.py +0 -0
  59. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/node_state.py +0 -0
  60. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/node_state_tests.py +0 -0
  61. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/numpy_client.py +0 -0
  62. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/rest_client/__init__.py +0 -0
  63. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/rest_client/connection.py +0 -0
  64. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/client/typing.py +0 -0
  65. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/__init__.py +0 -0
  66. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/address.py +0 -0
  67. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/constant.py +0 -0
  68. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/context.py +0 -0
  69. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/date.py +0 -0
  70. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/differential_privacy.py +0 -0
  71. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  72. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/dp.py +0 -0
  73. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/exit_handlers.py +0 -0
  74. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/grpc.py +0 -0
  75. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/logger.py +0 -0
  76. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/message.py +0 -0
  77. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/object_ref.py +0 -0
  78. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/parameter.py +0 -0
  79. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/pyproject.py +0 -0
  80. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/__init__.py +0 -0
  81. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/configsrecord.py +0 -0
  82. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/conversion_utils.py +0 -0
  83. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/metricsrecord.py +0 -0
  84. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/parametersrecord.py +0 -0
  85. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/recordset.py +0 -0
  86. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/record/typeddict.py +0 -0
  87. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/recordset_compat.py +0 -0
  88. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/retry_invoker.py +0 -0
  89. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  90. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  91. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  92. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  93. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  94. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  95. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  96. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  97. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/serde.py +0 -0
  98. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/telemetry.py +0 -0
  99. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/typing.py +0 -0
  100. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/common/version.py +0 -0
  101. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/__init__.py +0 -0
  102. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/driver_pb2.py +0 -0
  103. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  104. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  105. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  106. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/error_pb2.py +0 -0
  107. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/error_pb2.pyi +0 -0
  108. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  109. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  110. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/node_pb2.py +0 -0
  111. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/node_pb2.pyi +0 -0
  112. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  113. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  114. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/recordset_pb2.py +0 -0
  115. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  116. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  117. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  118. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/task_pb2.py +0 -0
  119. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/task_pb2.pyi +0 -0
  120. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  121. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  122. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/transport_pb2.py +0 -0
  123. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  124. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  125. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  126. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/py.typed +0 -0
  127. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/__init__.py +0 -0
  128. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/app.py +0 -0
  129. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/client_manager.py +0 -0
  130. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/client_proxy.py +0 -0
  131. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/compat/__init__.py +0 -0
  132. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/compat/app.py +0 -0
  133. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/compat/app_utils.py +0 -0
  134. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  135. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/compat/legacy_context.py +0 -0
  136. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/criterion.py +0 -0
  137. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/driver/__init__.py +0 -0
  138. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/driver/driver.py +0 -0
  139. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  140. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/history.py +0 -0
  141. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/run_serverapp.py +0 -0
  142. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/server.py +0 -0
  143. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/server_app.py +0 -0
  144. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/server_config.py +0 -0
  145. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/__init__.py +0 -0
  146. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/aggregate.py +0 -0
  147. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/bulyan.py +0 -0
  148. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  149. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  150. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  151. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  152. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  153. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  154. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedadam.py +0 -0
  155. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedavg.py +0 -0
  156. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  157. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  158. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  159. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedopt.py +0 -0
  160. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedprox.py +0 -0
  161. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  162. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  163. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  164. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  165. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  166. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/krum.py +0 -0
  167. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  168. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/strategy/strategy.py +0 -0
  169. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/__init__.py +0 -0
  170. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  171. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  172. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  173. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  174. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  175. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  176. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  177. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  178. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  179. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  180. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  181. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  182. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  183. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  184. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  185. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  186. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  187. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  188. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  189. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  190. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/state.py +0 -0
  191. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  192. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/superlink/state/utils.py +0 -0
  193. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/typing.py +0 -0
  194. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/utils/__init__.py +0 -0
  195. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/utils/tensorboard.py +0 -0
  196. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/utils/validator.py +0 -0
  197. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/__init__.py +0 -0
  198. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/constant.py +0 -0
  199. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  200. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  201. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  202. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  203. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/__init__.py +0 -0
  204. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/app.py +0 -0
  205. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  206. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  207. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  208. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  209. {flwr_nightly-1.9.0.dev20240412 → flwr_nightly-1.9.0.dev20240414}/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.dev20240412
3
+ Version: 1.9.0.dev20240414
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-dev20240412"
7
+ version = "1.9.0-dev20240414"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -16,7 +16,7 @@ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
16
16
  from flwr.proto import task_pb2 as flwr_dot_proto_dot_task__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"@\n\x12PushTaskResRequest\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\x86\x03\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12;\n\x04Ping\x12\x17.flwr.proto.PingRequest\x1a\x18.flwr.proto.PingResponse\"\x00\x12P\n\x0bPullTaskIns\x12\x1e.flwr.proto.PullTaskInsRequest\x1a\x1f.flwr.proto.PullTaskInsResponse\"\x00\x12P\n\x0bPushTaskRes\x12\x1e.flwr.proto.PushTaskResRequest\x1a\x1f.flwr.proto.PushTaskResResponse\"\x00\x62\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"@\n\x12PushTaskResRequest\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\":\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\"\x1f\n\rGetRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\xc9\x03\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12;\n\x04Ping\x12\x17.flwr.proto.PingRequest\x1a\x18.flwr.proto.PingResponse\"\x00\x12P\n\x0bPullTaskIns\x12\x1e.flwr.proto.PullTaskInsRequest\x1a\x1f.flwr.proto.PullTaskInsResponse\"\x00\x12P\n\x0bPushTaskRes\x12\x1e.flwr.proto.PushTaskResRequest\x1a\x1f.flwr.proto.PushTaskResResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x62\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -47,8 +47,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
47
47
  _globals['_PUSHTASKRESRESPONSE']._serialized_end=782
48
48
  _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=736
49
49
  _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=782
50
- _globals['_RECONNECT']._serialized_start=784
51
- _globals['_RECONNECT']._serialized_end=814
52
- _globals['_FLEET']._serialized_start=817
53
- _globals['_FLEET']._serialized_end=1207
50
+ _globals['_RUN']._serialized_start=784
51
+ _globals['_RUN']._serialized_end=842
52
+ _globals['_GETRUNREQUEST']._serialized_start=844
53
+ _globals['_GETRUNREQUEST']._serialized_end=875
54
+ _globals['_GETRUNRESPONSE']._serialized_start=877
55
+ _globals['_GETRUNRESPONSE']._serialized_end=923
56
+ _globals['_RECONNECT']._serialized_start=925
57
+ _globals['_RECONNECT']._serialized_end=955
58
+ _globals['_FLEET']._serialized_start=958
59
+ _globals['_FLEET']._serialized_end=1415
54
60
  # @@protoc_insertion_point(module_scope)
@@ -164,6 +164,48 @@ class PushTaskResResponse(google.protobuf.message.Message):
164
164
  def ClearField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect","results",b"results"]) -> None: ...
165
165
  global___PushTaskResResponse = PushTaskResResponse
166
166
 
167
+ class Run(google.protobuf.message.Message):
168
+ """GetRun messages"""
169
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
170
+ RUN_ID_FIELD_NUMBER: builtins.int
171
+ FAB_ID_FIELD_NUMBER: builtins.int
172
+ FAB_VERSION_FIELD_NUMBER: builtins.int
173
+ run_id: builtins.int
174
+ fab_id: typing.Text
175
+ fab_version: typing.Text
176
+ def __init__(self,
177
+ *,
178
+ run_id: builtins.int = ...,
179
+ fab_id: typing.Text = ...,
180
+ fab_version: typing.Text = ...,
181
+ ) -> None: ...
182
+ def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version","run_id",b"run_id"]) -> None: ...
183
+ global___Run = Run
184
+
185
+ class GetRunRequest(google.protobuf.message.Message):
186
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
187
+ RUN_ID_FIELD_NUMBER: builtins.int
188
+ run_id: builtins.int
189
+ def __init__(self,
190
+ *,
191
+ run_id: builtins.int = ...,
192
+ ) -> None: ...
193
+ def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
194
+ global___GetRunRequest = GetRunRequest
195
+
196
+ class GetRunResponse(google.protobuf.message.Message):
197
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
198
+ RUN_FIELD_NUMBER: builtins.int
199
+ @property
200
+ def run(self) -> global___Run: ...
201
+ def __init__(self,
202
+ *,
203
+ run: typing.Optional[global___Run] = ...,
204
+ ) -> None: ...
205
+ def HasField(self, field_name: typing_extensions.Literal["run",b"run"]) -> builtins.bool: ...
206
+ def ClearField(self, field_name: typing_extensions.Literal["run",b"run"]) -> None: ...
207
+ global___GetRunResponse = GetRunResponse
208
+
167
209
  class Reconnect(google.protobuf.message.Message):
168
210
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
169
211
  RECONNECT_FIELD_NUMBER: builtins.int
@@ -39,6 +39,11 @@ class FleetStub(object):
39
39
  request_serializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResRequest.SerializeToString,
40
40
  response_deserializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.FromString,
41
41
  )
42
+ self.GetRun = channel.unary_unary(
43
+ '/flwr.proto.Fleet/GetRun',
44
+ request_serializer=flwr_dot_proto_dot_fleet__pb2.GetRunRequest.SerializeToString,
45
+ response_deserializer=flwr_dot_proto_dot_fleet__pb2.GetRunResponse.FromString,
46
+ )
42
47
 
43
48
 
44
49
  class FleetServicer(object):
@@ -80,6 +85,12 @@ class FleetServicer(object):
80
85
  context.set_details('Method not implemented!')
81
86
  raise NotImplementedError('Method not implemented!')
82
87
 
88
+ def GetRun(self, request, context):
89
+ """Missing associated documentation comment in .proto file."""
90
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
91
+ context.set_details('Method not implemented!')
92
+ raise NotImplementedError('Method not implemented!')
93
+
83
94
 
84
95
  def add_FleetServicer_to_server(servicer, server):
85
96
  rpc_method_handlers = {
@@ -108,6 +119,11 @@ def add_FleetServicer_to_server(servicer, server):
108
119
  request_deserializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResRequest.FromString,
109
120
  response_serializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.SerializeToString,
110
121
  ),
122
+ 'GetRun': grpc.unary_unary_rpc_method_handler(
123
+ servicer.GetRun,
124
+ request_deserializer=flwr_dot_proto_dot_fleet__pb2.GetRunRequest.FromString,
125
+ response_serializer=flwr_dot_proto_dot_fleet__pb2.GetRunResponse.SerializeToString,
126
+ ),
111
127
  }
112
128
  generic_handler = grpc.method_handlers_generic_handler(
113
129
  'flwr.proto.Fleet', rpc_method_handlers)
@@ -202,3 +218,20 @@ class Fleet(object):
202
218
  flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.FromString,
203
219
  options, channel_credentials,
204
220
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
221
+
222
+ @staticmethod
223
+ def GetRun(request,
224
+ target,
225
+ options=(),
226
+ channel_credentials=None,
227
+ call_credentials=None,
228
+ insecure=False,
229
+ compression=None,
230
+ wait_for_ready=None,
231
+ timeout=None,
232
+ metadata=None):
233
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/GetRun',
234
+ flwr_dot_proto_dot_fleet__pb2.GetRunRequest.SerializeToString,
235
+ flwr_dot_proto_dot_fleet__pb2.GetRunResponse.FromString,
236
+ options, channel_credentials,
237
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -36,6 +36,10 @@ class FleetStub:
36
36
  HTTP API path: /api/v1/fleet/push-task-res
37
37
  """
38
38
 
39
+ GetRun: grpc.UnaryUnaryMultiCallable[
40
+ flwr.proto.fleet_pb2.GetRunRequest,
41
+ flwr.proto.fleet_pb2.GetRunResponse]
42
+
39
43
 
40
44
  class FleetServicer(metaclass=abc.ABCMeta):
41
45
  @abc.abstractmethod
@@ -78,5 +82,11 @@ class FleetServicer(metaclass=abc.ABCMeta):
78
82
  """
79
83
  pass
80
84
 
85
+ @abc.abstractmethod
86
+ def GetRun(self,
87
+ request: flwr.proto.fleet_pb2.GetRunRequest,
88
+ context: grpc.ServicerContext,
89
+ ) -> flwr.proto.fleet_pb2.GetRunResponse: ...
90
+
81
91
 
82
92
  def add_FleetServicer_to_server(servicer: FleetServicer, server: grpc.Server) -> None: ...
@@ -26,6 +26,8 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
26
26
  CreateNodeResponse,
27
27
  DeleteNodeRequest,
28
28
  DeleteNodeResponse,
29
+ GetRunRequest,
30
+ GetRunResponse,
29
31
  PingRequest,
30
32
  PingResponse,
31
33
  PullTaskInsRequest,
@@ -90,3 +92,13 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
90
92
  request=request,
91
93
  state=self.state_factory.state(),
92
94
  )
95
+
96
+ def GetRun(
97
+ self, request: GetRunRequest, context: grpc.ServicerContext
98
+ ) -> GetRunResponse:
99
+ """Get run information."""
100
+ log(INFO, "FleetServicer.GetRun")
101
+ return message_handler.get_run(
102
+ request=request,
103
+ state=self.state_factory.state(),
104
+ )
@@ -24,6 +24,8 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
24
24
  CreateNodeResponse,
25
25
  DeleteNodeRequest,
26
26
  DeleteNodeResponse,
27
+ GetRunRequest,
28
+ GetRunResponse,
27
29
  PingRequest,
28
30
  PingResponse,
29
31
  PullTaskInsRequest,
@@ -101,3 +103,10 @@ def push_task_res(request: PushTaskResRequest, state: State) -> PushTaskResRespo
101
103
  results={str(task_id): 0},
102
104
  )
103
105
  return response
106
+
107
+
108
+ def get_run(
109
+ request: GetRunRequest, state: State # pylint: disable=W0613
110
+ ) -> GetRunResponse:
111
+ """Get run information."""
112
+ return GetRunResponse()
@@ -21,6 +21,7 @@ from flwr.common.constant import MISSING_EXTRA_REST
21
21
  from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
22
22
  CreateNodeRequest,
23
23
  DeleteNodeRequest,
24
+ GetRunRequest,
24
25
  PingRequest,
25
26
  PullTaskInsRequest,
26
27
  PushTaskResRequest,
@@ -179,12 +180,41 @@ async def ping(request: Request) -> Response:
179
180
  )
180
181
 
181
182
 
183
+ async def get_run(request: Request) -> Response:
184
+ """GetRun."""
185
+ _check_headers(request.headers)
186
+
187
+ # Get the request body as raw bytes
188
+ get_run_request_bytes: bytes = await request.body()
189
+
190
+ # Deserialize ProtoBuf
191
+ get_run_request_proto = GetRunRequest()
192
+ get_run_request_proto.ParseFromString(get_run_request_bytes)
193
+
194
+ # Get state from app
195
+ state: State = app.state.STATE_FACTORY.state()
196
+
197
+ # Handle message
198
+ get_run_response_proto = message_handler.get_run(
199
+ request=get_run_request_proto, state=state
200
+ )
201
+
202
+ # Return serialized ProtoBuf
203
+ get_run_response_bytes = get_run_response_proto.SerializeToString()
204
+ return Response(
205
+ status_code=200,
206
+ content=get_run_response_bytes,
207
+ headers={"Content-Type": "application/protobuf"},
208
+ )
209
+
210
+
182
211
  routes = [
183
212
  Route("/api/v0/fleet/create-node", create_node, methods=["POST"]),
184
213
  Route("/api/v0/fleet/delete-node", delete_node, methods=["POST"]),
185
214
  Route("/api/v0/fleet/pull-task-ins", pull_task_ins, methods=["POST"]),
186
215
  Route("/api/v0/fleet/push-task-res", push_task_res, methods=["POST"]),
187
216
  Route("/api/v0/fleet/ping", ping, methods=["POST"]),
217
+ Route("/api/v0/fleet/get-run", get_run, methods=["POST"]),
188
218
  ]
189
219
 
190
220
  app: Starlette = Starlette(