flwr-nightly 1.14.0.dev20241208__tar.gz → 1.14.0.dev20241210__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 (323) hide show
  1. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/PKG-INFO +3 -2
  2. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/pyproject.toml +9 -8
  3. flwr_nightly-1.14.0.dev20241210/src/py/flwr/common/auth_plugin/__init__.py +24 -0
  4. flwr_nightly-1.14.0.dev20241210/src/py/flwr/common/auth_plugin/auth_plugin.py +111 -0
  5. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/constant.py +2 -0
  6. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/exec_pb2.py +27 -7
  7. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/exec_pb2.pyi +81 -0
  8. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/exec_pb2_grpc.py +68 -0
  9. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/exec_pb2_grpc.pyi +26 -0
  10. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/simulationio_pb2.py +2 -2
  11. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/simulationio_pb2_grpc.py +34 -0
  12. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/simulationio_pb2_grpc.pyi +13 -0
  13. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/app.py +52 -1
  14. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/simulation/simulationio_servicer.py +19 -0
  15. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/exec_grpc.py +18 -1
  16. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/exec_servicer.py +38 -1
  17. flwr_nightly-1.14.0.dev20241210/src/py/flwr/superexec/exec_user_auth_interceptor.py +101 -0
  18. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/LICENSE +0 -0
  19. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/README.md +0 -0
  20. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/__init__.py +0 -0
  21. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/__init__.py +0 -0
  22. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/app.py +0 -0
  23. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/build.py +0 -0
  24. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/config_utils.py +0 -0
  25. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/example.py +0 -0
  26. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/install.py +0 -0
  27. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/log.py +0 -0
  28. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/ls.py +0 -0
  29. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/__init__.py +0 -0
  30. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/new.py +0 -0
  31. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  32. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  33. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  34. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  35. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  36. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  37. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  38. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  39. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  40. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  41. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  42. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  43. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  44. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  45. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  46. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  47. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  48. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  49. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  50. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  51. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  52. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  53. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  54. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  55. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  56. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  57. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  58. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  59. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  60. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  61. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  62. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  63. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  64. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  65. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  66. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  67. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  68. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  69. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  70. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  71. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  72. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  73. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  74. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  75. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  76. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  77. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  78. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  79. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  80. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  81. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  82. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  83. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/run/__init__.py +0 -0
  84. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/run/run.py +0 -0
  85. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/stop.py +0 -0
  86. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/cli/utils.py +0 -0
  87. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/__init__.py +0 -0
  88. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/app.py +0 -0
  89. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/client.py +0 -0
  90. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/client_app.py +0 -0
  91. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/clientapp/__init__.py +0 -0
  92. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/clientapp/app.py +0 -0
  93. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
  94. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/clientapp/utils.py +0 -0
  95. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  96. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  97. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  98. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  99. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_client/connection.py +0 -0
  100. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  101. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  102. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  103. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  104. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/heartbeat.py +0 -0
  105. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/message_handler/__init__.py +0 -0
  106. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  107. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  108. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/__init__.py +0 -0
  109. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  110. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/comms_mods.py +0 -0
  111. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  112. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  113. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  114. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  115. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/mod/utils.py +0 -0
  116. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/nodestate/__init__.py +0 -0
  117. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/nodestate/in_memory_nodestate.py +0 -0
  118. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/nodestate/nodestate.py +0 -0
  119. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/nodestate/nodestate_factory.py +0 -0
  120. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/numpy_client.py +0 -0
  121. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/rest_client/__init__.py +0 -0
  122. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/rest_client/connection.py +0 -0
  123. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/run_info_store.py +0 -0
  124. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/supernode/__init__.py +0 -0
  125. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/supernode/app.py +0 -0
  126. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/client/typing.py +0 -0
  127. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/__init__.py +0 -0
  128. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/address.py +0 -0
  129. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/args.py +0 -0
  130. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/config.py +0 -0
  131. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/context.py +0 -0
  132. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/date.py +0 -0
  133. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/differential_privacy.py +0 -0
  134. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  135. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/dp.py +0 -0
  136. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/exit_handlers.py +0 -0
  137. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/grpc.py +0 -0
  138. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/logger.py +0 -0
  139. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/message.py +0 -0
  140. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/object_ref.py +0 -0
  141. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/parameter.py +0 -0
  142. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/pyproject.py +0 -0
  143. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/__init__.py +0 -0
  144. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/configsrecord.py +0 -0
  145. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/conversion_utils.py +0 -0
  146. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/metricsrecord.py +0 -0
  147. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/parametersrecord.py +0 -0
  148. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/recordset.py +0 -0
  149. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/record/typeddict.py +0 -0
  150. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/recordset_compat.py +0 -0
  151. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/retry_invoker.py +0 -0
  152. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  153. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  154. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  155. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  156. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  157. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  158. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  159. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  160. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/serde.py +0 -0
  161. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/telemetry.py +0 -0
  162. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/typing.py +0 -0
  163. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/common/version.py +0 -0
  164. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/__init__.py +0 -0
  165. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/clientappio_pb2.py +0 -0
  166. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
  167. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  168. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  169. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/error_pb2.py +0 -0
  170. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/error_pb2.pyi +0 -0
  171. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  172. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  173. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fab_pb2.py +0 -0
  174. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  175. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  176. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  177. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fleet_pb2.py +0 -0
  178. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  179. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  180. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  181. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  182. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  183. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  184. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  185. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/log_pb2.py +0 -0
  186. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/log_pb2.pyi +0 -0
  187. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/log_pb2_grpc.py +0 -0
  188. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  189. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/message_pb2.py +0 -0
  190. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/message_pb2.pyi +0 -0
  191. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  192. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  193. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/node_pb2.py +0 -0
  194. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/node_pb2.pyi +0 -0
  195. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  196. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  197. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/recordset_pb2.py +0 -0
  198. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  199. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  200. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  201. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/run_pb2.py +0 -0
  202. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/run_pb2.pyi +0 -0
  203. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  204. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  205. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/serverappio_pb2.py +0 -0
  206. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/serverappio_pb2.pyi +0 -0
  207. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  208. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  209. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/simulationio_pb2.pyi +0 -0
  210. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/task_pb2.py +0 -0
  211. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/task_pb2.pyi +0 -0
  212. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  213. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  214. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/transport_pb2.py +0 -0
  215. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  216. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  217. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  218. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/py.typed +0 -0
  219. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/__init__.py +0 -0
  220. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/client_manager.py +0 -0
  221. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/client_proxy.py +0 -0
  222. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/compat/__init__.py +0 -0
  223. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/compat/app.py +0 -0
  224. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/compat/app_utils.py +0 -0
  225. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  226. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/compat/legacy_context.py +0 -0
  227. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/criterion.py +0 -0
  228. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/driver/__init__.py +0 -0
  229. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/driver/driver.py +0 -0
  230. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  231. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  232. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/history.py +0 -0
  233. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/run_serverapp.py +0 -0
  234. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/server.py +0 -0
  235. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/server_app.py +0 -0
  236. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/server_config.py +0 -0
  237. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/serverapp/__init__.py +0 -0
  238. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/serverapp/app.py +0 -0
  239. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/serverapp_components.py +0 -0
  240. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/__init__.py +0 -0
  241. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/aggregate.py +0 -0
  242. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/bulyan.py +0 -0
  243. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  244. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  245. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  246. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  247. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  248. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  249. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedadam.py +0 -0
  250. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedavg.py +0 -0
  251. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  252. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  253. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  254. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedopt.py +0 -0
  255. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedprox.py +0 -0
  256. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  257. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  258. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  259. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  260. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  261. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/krum.py +0 -0
  262. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  263. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/strategy/strategy.py +0 -0
  264. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/__init__.py +0 -0
  265. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  266. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/driver/serverappio_grpc.py +0 -0
  267. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/driver/serverappio_servicer.py +0 -0
  268. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
  269. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
  270. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
  271. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
  272. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  273. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  274. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  275. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  276. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  277. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  278. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  279. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  280. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  281. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  282. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  283. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  284. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  285. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  286. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  287. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  288. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  289. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  290. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  291. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  292. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  293. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  294. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  295. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  296. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  297. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/linkstate/utils.py +0 -0
  298. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/simulation/__init__.py +0 -0
  299. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  300. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/typing.py +0 -0
  301. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/utils/__init__.py +0 -0
  302. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/utils/tensorboard.py +0 -0
  303. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/utils/validator.py +0 -0
  304. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/__init__.py +0 -0
  305. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/constant.py +0 -0
  306. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  307. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  308. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  309. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  310. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/__init__.py +0 -0
  311. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/app.py +0 -0
  312. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/legacy_app.py +0 -0
  313. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  314. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  315. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  316. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  317. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/run_simulation.py +0 -0
  318. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/simulation/simulationio_connection.py +0 -0
  319. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/__init__.py +0 -0
  320. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/app.py +0 -0
  321. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/deployment.py +0 -0
  322. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/executor.py +0 -0
  323. {flwr_nightly-1.14.0.dev20241208 → flwr_nightly-1.14.0.dev20241210}/src/py/flwr/superexec/simulation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.14.0.dev20241208
3
+ Version: 1.14.0.dev20241210
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -39,8 +39,9 @@ Requires-Dist: numpy (>=1.26.0,<3.0.0)
39
39
  Requires-Dist: pathspec (>=0.12.1,<0.13.0)
40
40
  Requires-Dist: protobuf (>=4.25.2,<5.0.0)
41
41
  Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
42
+ Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
42
43
  Requires-Dist: ray (==2.10.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "simulation")
43
- Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
44
+ Requires-Dist: requests (>=2.31.0,<3.0.0)
44
45
  Requires-Dist: rich (>=13.5.0,<14.0.0)
45
46
  Requires-Dist: starlette (>=0.31.0,<0.32.0) ; extra == "rest"
46
47
  Requires-Dist: tomli (>=2.0.1,<3.0.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.14.0.dev20241208"
7
+ version = "1.14.0.dev20241210"
8
8
  description = "Flower: A Friendly Federated AI Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -78,16 +78,16 @@ tomli = "^2.0.1"
78
78
  tomli-w = "^1.0.0"
79
79
  pathspec = "^0.12.1"
80
80
  rich = "^13.5.0"
81
+ pyyaml = "^6.0.2"
82
+ requests = "^2.31.0"
81
83
  # Optional dependencies (Simulation Engine)
82
84
  ray = { version = "==2.10.0", optional = true, python = ">=3.9,<3.12" }
83
- # Optional dependencies (REST transport layer)
84
- requests = { version = "^2.31.0", optional = true }
85
85
  starlette = { version = "^0.31.0", optional = true }
86
86
  uvicorn = { version = "^0.23.0", extras = ["standard"], optional = true }
87
87
 
88
88
  [tool.poetry.extras]
89
89
  simulation = ["ray"]
90
- rest = ["requests", "starlette", "uvicorn"]
90
+ rest = ["starlette", "uvicorn"]
91
91
 
92
92
  [tool.poetry.group.dev.dependencies]
93
93
  types-dataclasses = "==0.6.6"
@@ -131,6 +131,7 @@ mdformat-gfm = "==0.3.6"
131
131
  mdformat-frontmatter = "==2.0.1"
132
132
  mdformat-beautysh = "==0.1.1"
133
133
  twine = "==5.1.1"
134
+ types-PyYAML = "^6.0.2"
134
135
  pyroma = "==4.2"
135
136
  check-wheel-contents = "==0.4.0"
136
137
  GitPython = "==3.1.32"
@@ -144,10 +145,10 @@ docsig = "==0.64.0"
144
145
 
145
146
  [tool.docstrfmt]
146
147
  extend_exclude = [
147
- "doc/source/conf.py",
148
- "doc/source/tutorial-quickstart-huggingface.rst",
149
- "doc/source/_templates/autosummary/*",
150
- "doc/source/ref-api/*",
148
+ "framework/docs/source/conf.py",
149
+ "framework/docs/source/tutorial-quickstart-huggingface.rst",
150
+ "framework/docs/source/_templates/autosummary/*",
151
+ "framework/docs/source/ref-api/*",
151
152
  ]
152
153
 
153
154
  [tool.isort]
@@ -0,0 +1,24 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """Auth plugin components."""
16
+
17
+
18
+ from .auth_plugin import CliAuthPlugin as CliAuthPlugin
19
+ from .auth_plugin import ExecAuthPlugin as ExecAuthPlugin
20
+
21
+ __all__ = [
22
+ "CliAuthPlugin",
23
+ "ExecAuthPlugin",
24
+ ]
@@ -0,0 +1,111 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """Abstract classes for Flower User Auth Plugin."""
16
+
17
+
18
+ from abc import ABC, abstractmethod
19
+ from collections.abc import Sequence
20
+ from pathlib import Path
21
+ from typing import Any, Optional, Union
22
+
23
+ from flwr.proto.exec_pb2_grpc import ExecStub
24
+
25
+
26
+ class ExecAuthPlugin(ABC):
27
+ """Abstract Flower Auth Plugin class for ExecServicer.
28
+
29
+ Parameters
30
+ ----------
31
+ config : dict[str, Any]
32
+ The authentication configuration loaded from a YAML file.
33
+ """
34
+
35
+ @abstractmethod
36
+ def __init__(self, config: dict[str, Any]):
37
+ """Abstract constructor."""
38
+
39
+ @abstractmethod
40
+ def get_login_details(self) -> dict[str, str]:
41
+ """Get the login details."""
42
+
43
+ @abstractmethod
44
+ def validate_tokens_in_metadata(
45
+ self, metadata: Sequence[tuple[str, Union[str, bytes]]]
46
+ ) -> bool:
47
+ """Validate authentication tokens in the provided metadata."""
48
+
49
+ @abstractmethod
50
+ def get_auth_tokens(self, auth_details: dict[str, str]) -> dict[str, str]:
51
+ """Get authentication tokens."""
52
+
53
+ @abstractmethod
54
+ def refresh_tokens(
55
+ self, metadata: Sequence[tuple[str, Union[str, bytes]]]
56
+ ) -> Optional[Sequence[tuple[str, Union[str, bytes]]]]:
57
+ """Refresh authentication tokens in the provided metadata."""
58
+
59
+
60
+ class CliAuthPlugin(ABC):
61
+ """Abstract Flower Auth Plugin class for CLI.
62
+
63
+ Parameters
64
+ ----------
65
+ user_auth_config_path : Path
66
+ The path to the user's authentication configuration file.
67
+ """
68
+
69
+ @staticmethod
70
+ @abstractmethod
71
+ def login(
72
+ login_details: dict[str, str],
73
+ exec_stub: ExecStub,
74
+ ) -> dict[str, Any]:
75
+ """Authenticate the user with the SuperLink.
76
+
77
+ Parameters
78
+ ----------
79
+ login_details : dict[str, str]
80
+ A dictionary containing the user's login details.
81
+ exec_stub : ExecStub
82
+ An instance of `ExecStub` used for communication with the SuperLink.
83
+
84
+ Returns
85
+ -------
86
+ user_auth_config : dict[str, Any]
87
+ A dictionary containing the user's authentication configuration
88
+ in JSON format.
89
+ """
90
+
91
+ @abstractmethod
92
+ def __init__(self, user_auth_config_path: Path):
93
+ """Abstract constructor."""
94
+
95
+ @abstractmethod
96
+ def store_tokens(self, user_auth_config: dict[str, Any]) -> None:
97
+ """Store authentication tokens from the provided user_auth_config.
98
+
99
+ The configuration, including tokens, will be saved as a JSON file
100
+ at `user_auth_config_path`.
101
+ """
102
+
103
+ @abstractmethod
104
+ def load_tokens(self) -> None:
105
+ """Load authentication tokens from the user_auth_config_path."""
106
+
107
+ @abstractmethod
108
+ def write_tokens_to_metadata(
109
+ self, metadata: Sequence[tuple[str, Union[str, bytes]]]
110
+ ) -> Sequence[tuple[str, Union[str, bytes]]]:
111
+ """Write authentication tokens to the provided metadata."""
@@ -110,6 +110,8 @@ LOG_UPLOAD_INTERVAL = 0.2 # Minimum interval between two log uploads
110
110
  # Retry configurations
111
111
  MAX_RETRY_DELAY = 20 # Maximum delay duration between two consecutive retries.
112
112
 
113
+ AUTH_TYPE = "auth_type"
114
+
113
115
 
114
116
  class MessageType:
115
117
  """Message type."""
@@ -18,7 +18,7 @@ from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
18
18
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x14\x66lwr/proto/run.proto\"\xfb\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"2\n\x10StartRunResponse\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\" \n\x0eStopRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"\"\n\x0fStopRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32\xaf\x02\n\x04\x45xec\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12\x44\n\x07StopRun\x12\x1a.flwr.proto.StopRunRequest\x1a\x1b.flwr.proto.StopRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x14\x66lwr/proto/run.proto\"\xfb\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"2\n\x10StartRunResponse\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\"\x18\n\x16GetLoginDetailsRequest\"\x9c\x01\n\x17GetLoginDetailsResponse\x12L\n\rlogin_details\x18\x01 \x03(\x0b\x32\x35.flwr.proto.GetLoginDetailsResponse.LoginDetailsEntry\x1a\x33\n\x11LoginDetailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x93\x01\n\x14GetAuthTokensRequest\x12G\n\x0c\x61uth_details\x18\x01 \x03(\x0b\x32\x31.flwr.proto.GetAuthTokensRequest.AuthDetailsEntry\x1a\x32\n\x10\x41uthDetailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x92\x01\n\x15GetAuthTokensResponse\x12\x46\n\x0b\x61uth_tokens\x18\x01 \x03(\x0b\x32\x31.flwr.proto.GetAuthTokensResponse.AuthTokensEntry\x1a\x31\n\x0f\x41uthTokensEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\" \n\x0eStopRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"\"\n\x0fStopRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32\xe5\x03\n\x04\x45xec\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12\x44\n\x07StopRun\x12\x1a.flwr.proto.StopRunRequest\x1a\x1b.flwr.proto.StopRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x12\\\n\x0fGetLoginDetails\x12\".flwr.proto.GetLoginDetailsRequest\x1a#.flwr.proto.GetLoginDetailsResponse\"\x00\x12V\n\rGetAuthTokens\x12 .flwr.proto.GetAuthTokensRequest\x1a!.flwr.proto.GetAuthTokensResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -29,6 +29,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
29
29
  _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
30
30
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._options = None
31
31
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_options = b'8\001'
32
+ _globals['_GETLOGINDETAILSRESPONSE_LOGINDETAILSENTRY']._options = None
33
+ _globals['_GETLOGINDETAILSRESPONSE_LOGINDETAILSENTRY']._serialized_options = b'8\001'
34
+ _globals['_GETAUTHTOKENSREQUEST_AUTHDETAILSENTRY']._options = None
35
+ _globals['_GETAUTHTOKENSREQUEST_AUTHDETAILSENTRY']._serialized_options = b'8\001'
36
+ _globals['_GETAUTHTOKENSRESPONSE_AUTHTOKENSENTRY']._options = None
37
+ _globals['_GETAUTHTOKENSRESPONSE_AUTHTOKENSENTRY']._serialized_options = b'8\001'
32
38
  _globals['_STARTRUNREQUEST']._serialized_start=138
33
39
  _globals['_STARTRUNREQUEST']._serialized_end=389
34
40
  _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=316
@@ -45,10 +51,24 @@ if _descriptor._USE_C_DESCRIPTORS == False:
45
51
  _globals['_LISTRUNSRESPONSE']._serialized_end=782
46
52
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_start=719
47
53
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_end=782
48
- _globals['_STOPRUNREQUEST']._serialized_start=784
49
- _globals['_STOPRUNREQUEST']._serialized_end=816
50
- _globals['_STOPRUNRESPONSE']._serialized_start=818
51
- _globals['_STOPRUNRESPONSE']._serialized_end=852
52
- _globals['_EXEC']._serialized_start=855
53
- _globals['_EXEC']._serialized_end=1158
54
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_start=784
55
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_end=808
56
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_start=811
57
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_end=967
58
+ _globals['_GETLOGINDETAILSRESPONSE_LOGINDETAILSENTRY']._serialized_start=916
59
+ _globals['_GETLOGINDETAILSRESPONSE_LOGINDETAILSENTRY']._serialized_end=967
60
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_start=970
61
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_end=1117
62
+ _globals['_GETAUTHTOKENSREQUEST_AUTHDETAILSENTRY']._serialized_start=1067
63
+ _globals['_GETAUTHTOKENSREQUEST_AUTHDETAILSENTRY']._serialized_end=1117
64
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_start=1120
65
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_end=1266
66
+ _globals['_GETAUTHTOKENSRESPONSE_AUTHTOKENSENTRY']._serialized_start=1217
67
+ _globals['_GETAUTHTOKENSRESPONSE_AUTHTOKENSENTRY']._serialized_end=1266
68
+ _globals['_STOPRUNREQUEST']._serialized_start=1268
69
+ _globals['_STOPRUNREQUEST']._serialized_end=1300
70
+ _globals['_STOPRUNRESPONSE']._serialized_start=1302
71
+ _globals['_STOPRUNRESPONSE']._serialized_end=1336
72
+ _globals['_EXEC']._serialized_start=1339
73
+ _globals['_EXEC']._serialized_end=1824
54
74
  # @@protoc_insertion_point(module_scope)
@@ -135,6 +135,87 @@ class ListRunsResponse(google.protobuf.message.Message):
135
135
  def ClearField(self, field_name: typing_extensions.Literal["now",b"now","run_dict",b"run_dict"]) -> None: ...
136
136
  global___ListRunsResponse = ListRunsResponse
137
137
 
138
+ class GetLoginDetailsRequest(google.protobuf.message.Message):
139
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
140
+ def __init__(self,
141
+ ) -> None: ...
142
+ global___GetLoginDetailsRequest = GetLoginDetailsRequest
143
+
144
+ class GetLoginDetailsResponse(google.protobuf.message.Message):
145
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
146
+ class LoginDetailsEntry(google.protobuf.message.Message):
147
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
148
+ KEY_FIELD_NUMBER: builtins.int
149
+ VALUE_FIELD_NUMBER: builtins.int
150
+ key: typing.Text
151
+ value: typing.Text
152
+ def __init__(self,
153
+ *,
154
+ key: typing.Text = ...,
155
+ value: typing.Text = ...,
156
+ ) -> None: ...
157
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
158
+
159
+ LOGIN_DETAILS_FIELD_NUMBER: builtins.int
160
+ @property
161
+ def login_details(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
162
+ def __init__(self,
163
+ *,
164
+ login_details: typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
165
+ ) -> None: ...
166
+ def ClearField(self, field_name: typing_extensions.Literal["login_details",b"login_details"]) -> None: ...
167
+ global___GetLoginDetailsResponse = GetLoginDetailsResponse
168
+
169
+ class GetAuthTokensRequest(google.protobuf.message.Message):
170
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
171
+ class AuthDetailsEntry(google.protobuf.message.Message):
172
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
173
+ KEY_FIELD_NUMBER: builtins.int
174
+ VALUE_FIELD_NUMBER: builtins.int
175
+ key: typing.Text
176
+ value: typing.Text
177
+ def __init__(self,
178
+ *,
179
+ key: typing.Text = ...,
180
+ value: typing.Text = ...,
181
+ ) -> None: ...
182
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
183
+
184
+ AUTH_DETAILS_FIELD_NUMBER: builtins.int
185
+ @property
186
+ def auth_details(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
187
+ def __init__(self,
188
+ *,
189
+ auth_details: typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
190
+ ) -> None: ...
191
+ def ClearField(self, field_name: typing_extensions.Literal["auth_details",b"auth_details"]) -> None: ...
192
+ global___GetAuthTokensRequest = GetAuthTokensRequest
193
+
194
+ class GetAuthTokensResponse(google.protobuf.message.Message):
195
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
196
+ class AuthTokensEntry(google.protobuf.message.Message):
197
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
198
+ KEY_FIELD_NUMBER: builtins.int
199
+ VALUE_FIELD_NUMBER: builtins.int
200
+ key: typing.Text
201
+ value: typing.Text
202
+ def __init__(self,
203
+ *,
204
+ key: typing.Text = ...,
205
+ value: typing.Text = ...,
206
+ ) -> None: ...
207
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
208
+
209
+ AUTH_TOKENS_FIELD_NUMBER: builtins.int
210
+ @property
211
+ def auth_tokens(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
212
+ def __init__(self,
213
+ *,
214
+ auth_tokens: typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
215
+ ) -> None: ...
216
+ def ClearField(self, field_name: typing_extensions.Literal["auth_tokens",b"auth_tokens"]) -> None: ...
217
+ global___GetAuthTokensResponse = GetAuthTokensResponse
218
+
138
219
  class StopRunRequest(google.protobuf.message.Message):
139
220
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
140
221
  RUN_ID_FIELD_NUMBER: builtins.int
@@ -34,6 +34,16 @@ class ExecStub(object):
34
34
  request_serializer=flwr_dot_proto_dot_exec__pb2.ListRunsRequest.SerializeToString,
35
35
  response_deserializer=flwr_dot_proto_dot_exec__pb2.ListRunsResponse.FromString,
36
36
  )
37
+ self.GetLoginDetails = channel.unary_unary(
38
+ '/flwr.proto.Exec/GetLoginDetails',
39
+ request_serializer=flwr_dot_proto_dot_exec__pb2.GetLoginDetailsRequest.SerializeToString,
40
+ response_deserializer=flwr_dot_proto_dot_exec__pb2.GetLoginDetailsResponse.FromString,
41
+ )
42
+ self.GetAuthTokens = channel.unary_unary(
43
+ '/flwr.proto.Exec/GetAuthTokens',
44
+ request_serializer=flwr_dot_proto_dot_exec__pb2.GetAuthTokensRequest.SerializeToString,
45
+ response_deserializer=flwr_dot_proto_dot_exec__pb2.GetAuthTokensResponse.FromString,
46
+ )
37
47
 
38
48
 
39
49
  class ExecServicer(object):
@@ -67,6 +77,20 @@ class ExecServicer(object):
67
77
  context.set_details('Method not implemented!')
68
78
  raise NotImplementedError('Method not implemented!')
69
79
 
80
+ def GetLoginDetails(self, request, context):
81
+ """Get login details upon request
82
+ """
83
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
84
+ context.set_details('Method not implemented!')
85
+ raise NotImplementedError('Method not implemented!')
86
+
87
+ def GetAuthTokens(self, request, context):
88
+ """Get auth tokens upon request
89
+ """
90
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
91
+ context.set_details('Method not implemented!')
92
+ raise NotImplementedError('Method not implemented!')
93
+
70
94
 
71
95
  def add_ExecServicer_to_server(servicer, server):
72
96
  rpc_method_handlers = {
@@ -90,6 +114,16 @@ def add_ExecServicer_to_server(servicer, server):
90
114
  request_deserializer=flwr_dot_proto_dot_exec__pb2.ListRunsRequest.FromString,
91
115
  response_serializer=flwr_dot_proto_dot_exec__pb2.ListRunsResponse.SerializeToString,
92
116
  ),
117
+ 'GetLoginDetails': grpc.unary_unary_rpc_method_handler(
118
+ servicer.GetLoginDetails,
119
+ request_deserializer=flwr_dot_proto_dot_exec__pb2.GetLoginDetailsRequest.FromString,
120
+ response_serializer=flwr_dot_proto_dot_exec__pb2.GetLoginDetailsResponse.SerializeToString,
121
+ ),
122
+ 'GetAuthTokens': grpc.unary_unary_rpc_method_handler(
123
+ servicer.GetAuthTokens,
124
+ request_deserializer=flwr_dot_proto_dot_exec__pb2.GetAuthTokensRequest.FromString,
125
+ response_serializer=flwr_dot_proto_dot_exec__pb2.GetAuthTokensResponse.SerializeToString,
126
+ ),
93
127
  }
94
128
  generic_handler = grpc.method_handlers_generic_handler(
95
129
  'flwr.proto.Exec', rpc_method_handlers)
@@ -167,3 +201,37 @@ class Exec(object):
167
201
  flwr_dot_proto_dot_exec__pb2.ListRunsResponse.FromString,
168
202
  options, channel_credentials,
169
203
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
204
+
205
+ @staticmethod
206
+ def GetLoginDetails(request,
207
+ target,
208
+ options=(),
209
+ channel_credentials=None,
210
+ call_credentials=None,
211
+ insecure=False,
212
+ compression=None,
213
+ wait_for_ready=None,
214
+ timeout=None,
215
+ metadata=None):
216
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.Exec/GetLoginDetails',
217
+ flwr_dot_proto_dot_exec__pb2.GetLoginDetailsRequest.SerializeToString,
218
+ flwr_dot_proto_dot_exec__pb2.GetLoginDetailsResponse.FromString,
219
+ options, channel_credentials,
220
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
221
+
222
+ @staticmethod
223
+ def GetAuthTokens(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.Exec/GetAuthTokens',
234
+ flwr_dot_proto_dot_exec__pb2.GetAuthTokensRequest.SerializeToString,
235
+ flwr_dot_proto_dot_exec__pb2.GetAuthTokensResponse.FromString,
236
+ options, channel_credentials,
237
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -29,6 +29,16 @@ class ExecStub:
29
29
  flwr.proto.exec_pb2.ListRunsResponse]
30
30
  """flwr ls command"""
31
31
 
32
+ GetLoginDetails: grpc.UnaryUnaryMultiCallable[
33
+ flwr.proto.exec_pb2.GetLoginDetailsRequest,
34
+ flwr.proto.exec_pb2.GetLoginDetailsResponse]
35
+ """Get login details upon request"""
36
+
37
+ GetAuthTokens: grpc.UnaryUnaryMultiCallable[
38
+ flwr.proto.exec_pb2.GetAuthTokensRequest,
39
+ flwr.proto.exec_pb2.GetAuthTokensResponse]
40
+ """Get auth tokens upon request"""
41
+
32
42
 
33
43
  class ExecServicer(metaclass=abc.ABCMeta):
34
44
  @abc.abstractmethod
@@ -63,5 +73,21 @@ class ExecServicer(metaclass=abc.ABCMeta):
63
73
  """flwr ls command"""
64
74
  pass
65
75
 
76
+ @abc.abstractmethod
77
+ def GetLoginDetails(self,
78
+ request: flwr.proto.exec_pb2.GetLoginDetailsRequest,
79
+ context: grpc.ServicerContext,
80
+ ) -> flwr.proto.exec_pb2.GetLoginDetailsResponse:
81
+ """Get login details upon request"""
82
+ pass
83
+
84
+ @abc.abstractmethod
85
+ def GetAuthTokens(self,
86
+ request: flwr.proto.exec_pb2.GetAuthTokensRequest,
87
+ context: grpc.ServicerContext,
88
+ ) -> flwr.proto.exec_pb2.GetAuthTokensResponse:
89
+ """Get auth tokens upon request"""
90
+ pass
91
+
66
92
 
67
93
  def add_ExecServicer_to_server(servicer: ExecServicer, server: grpc.Server) -> None: ...
@@ -18,7 +18,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
18
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"\x1d\n\x1bPullSimulationInputsRequest\"\x80\x01\n\x1cPullSimulationInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"T\n\x1cPushSimulationOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1f\n\x1dPushSimulationOutputsResponse2\xff\x03\n\x0cSimulationIo\x12k\n\x14PullSimulationInputs\x12\'.flwr.proto.PullSimulationInputsRequest\x1a(.flwr.proto.PullSimulationInputsResponse\"\x00\x12n\n\x15PushSimulationOutputs\x12(.flwr.proto.PushSimulationOutputsRequest\x1a).flwr.proto.PushSimulationOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"\x1d\n\x1bPullSimulationInputsRequest\"\x80\x01\n\x1cPullSimulationInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"T\n\x1cPushSimulationOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1f\n\x1dPushSimulationOutputsResponse2\xd4\x04\n\x0cSimulationIo\x12k\n\x14PullSimulationInputs\x12\'.flwr.proto.PullSimulationInputsRequest\x1a(.flwr.proto.PullSimulationInputsResponse\"\x00\x12n\n\x15PushSimulationOutputs\x12(.flwr.proto.PushSimulationOutputsRequest\x1a).flwr.proto.PushSimulationOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -34,5 +34,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
34
34
  _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_start=385
35
35
  _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_end=416
36
36
  _globals['_SIMULATIONIO']._serialized_start=419
37
- _globals['_SIMULATIONIO']._serialized_end=930
37
+ _globals['_SIMULATIONIO']._serialized_end=1015
38
38
  # @@protoc_insertion_point(module_scope)
@@ -41,6 +41,11 @@ class SimulationIoStub(object):
41
41
  request_serializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsRequest.SerializeToString,
42
42
  response_deserializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.FromString,
43
43
  )
44
+ self.GetRunStatus = channel.unary_unary(
45
+ '/flwr.proto.SimulationIo/GetRunStatus',
46
+ request_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
47
+ response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
48
+ )
44
49
 
45
50
 
46
51
  class SimulationIoServicer(object):
@@ -81,6 +86,13 @@ class SimulationIoServicer(object):
81
86
  context.set_details('Method not implemented!')
82
87
  raise NotImplementedError('Method not implemented!')
83
88
 
89
+ def GetRunStatus(self, request, context):
90
+ """Get Run Status
91
+ """
92
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
93
+ context.set_details('Method not implemented!')
94
+ raise NotImplementedError('Method not implemented!')
95
+
84
96
 
85
97
  def add_SimulationIoServicer_to_server(servicer, server):
86
98
  rpc_method_handlers = {
@@ -109,6 +121,11 @@ def add_SimulationIoServicer_to_server(servicer, server):
109
121
  request_deserializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsRequest.FromString,
110
122
  response_serializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.SerializeToString,
111
123
  ),
124
+ 'GetRunStatus': grpc.unary_unary_rpc_method_handler(
125
+ servicer.GetRunStatus,
126
+ request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.FromString,
127
+ response_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.SerializeToString,
128
+ ),
112
129
  }
113
130
  generic_handler = grpc.method_handlers_generic_handler(
114
131
  'flwr.proto.SimulationIo', rpc_method_handlers)
@@ -203,3 +220,20 @@ class SimulationIo(object):
203
220
  flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.FromString,
204
221
  options, channel_credentials,
205
222
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
223
+
224
+ @staticmethod
225
+ def GetRunStatus(request,
226
+ target,
227
+ options=(),
228
+ channel_credentials=None,
229
+ call_credentials=None,
230
+ insecure=False,
231
+ compression=None,
232
+ wait_for_ready=None,
233
+ timeout=None,
234
+ metadata=None):
235
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/GetRunStatus',
236
+ flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
237
+ flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
238
+ options, channel_credentials,
239
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -35,6 +35,11 @@ class SimulationIoStub:
35
35
  flwr.proto.run_pb2.GetFederationOptionsResponse]
36
36
  """Get Federation Options"""
37
37
 
38
+ GetRunStatus: grpc.UnaryUnaryMultiCallable[
39
+ flwr.proto.run_pb2.GetRunStatusRequest,
40
+ flwr.proto.run_pb2.GetRunStatusResponse]
41
+ """Get Run Status"""
42
+
38
43
 
39
44
  class SimulationIoServicer(metaclass=abc.ABCMeta):
40
45
  @abc.abstractmethod
@@ -77,5 +82,13 @@ class SimulationIoServicer(metaclass=abc.ABCMeta):
77
82
  """Get Federation Options"""
78
83
  pass
79
84
 
85
+ @abc.abstractmethod
86
+ def GetRunStatus(self,
87
+ request: flwr.proto.run_pb2.GetRunStatusRequest,
88
+ context: grpc.ServicerContext,
89
+ ) -> flwr.proto.run_pb2.GetRunStatusResponse:
90
+ """Get Run Status"""
91
+ pass
92
+
80
93
 
81
94
  def add_SimulationIoServicer_to_server(servicer: SimulationIoServicer, server: grpc.Server) -> None: ...