flwr-nightly 1.12.0.dev20240924__tar.gz → 1.12.0.dev20240927__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 (307) hide show
  1. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/PKG-INFO +2 -1
  2. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/README.md +1 -0
  3. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/pyproject.toml +10 -1
  4. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/log.py +57 -19
  5. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +1 -1
  6. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/run/run.py +17 -1
  7. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +3 -0
  8. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_rere_client/connection.py +3 -3
  9. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/rest_client/connection.py +3 -3
  10. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +4 -4
  11. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/serde.py +22 -7
  12. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fab_pb2.py +8 -7
  13. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fab_pb2.pyi +7 -1
  14. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fleet_pb2.py +10 -10
  15. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fleet_pb2.pyi +6 -1
  16. flwr_nightly-1.12.0.dev20240927/src/py/flwr/proto/recordset_pb2.py +70 -0
  17. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/recordset_pb2.pyi +40 -14
  18. flwr_nightly-1.12.0.dev20240927/src/py/flwr/proto/run_pb2.py +59 -0
  19. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/run_pb2.pyi +13 -2
  20. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/transport_pb2.py +8 -8
  21. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/transport_pb2.pyi +9 -6
  22. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +4 -0
  23. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/in_memory_state.py +17 -0
  24. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/sqlite_state.py +39 -1
  25. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/utils/validator.py +6 -0
  26. flwr_nightly-1.12.0.dev20240924/src/py/flwr/proto/recordset_pb2.py +0 -68
  27. flwr_nightly-1.12.0.dev20240924/src/py/flwr/proto/run_pb2.py +0 -58
  28. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/LICENSE +0 -0
  29. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/__init__.py +0 -0
  30. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/__init__.py +0 -0
  31. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/app.py +0 -0
  32. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/build.py +0 -0
  33. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/config_utils.py +0 -0
  34. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/example.py +0 -0
  35. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/install.py +0 -0
  36. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/__init__.py +0 -0
  37. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/new.py +0 -0
  38. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  39. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  40. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  41. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  42. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  43. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  44. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  45. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  46. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  47. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  48. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  49. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  50. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  51. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  52. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  53. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  54. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  55. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  56. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  57. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  58. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  59. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  60. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  61. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  62. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  63. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  64. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  65. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  66. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  67. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  68. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  69. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  70. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  71. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  72. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  73. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  74. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  75. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  76. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  77. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  78. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  79. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  80. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  81. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  82. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  83. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  84. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  85. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  86. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  87. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/run/__init__.py +0 -0
  88. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/cli/utils.py +0 -0
  89. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/__init__.py +0 -0
  90. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/app.py +0 -0
  91. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/client.py +0 -0
  92. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/client_app.py +0 -0
  93. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/clientapp/__init__.py +0 -0
  94. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/clientapp/app.py +0 -0
  95. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
  96. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/clientapp/utils.py +0 -0
  97. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  98. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  99. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  100. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  101. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_client/connection.py +0 -0
  102. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  103. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  104. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/heartbeat.py +0 -0
  105. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/message_handler/__init__.py +0 -0
  106. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  107. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  108. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/__init__.py +0 -0
  109. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  110. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/comms_mods.py +0 -0
  111. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  112. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  113. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  114. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  115. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/mod/utils.py +0 -0
  116. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/node_state.py +0 -0
  117. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/node_state_tests.py +0 -0
  118. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/numpy_client.py +0 -0
  119. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/rest_client/__init__.py +0 -0
  120. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/supernode/__init__.py +0 -0
  121. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/supernode/app.py +0 -0
  122. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/client/typing.py +0 -0
  123. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/__init__.py +0 -0
  124. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/address.py +0 -0
  125. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/config.py +0 -0
  126. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/constant.py +0 -0
  127. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/context.py +0 -0
  128. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/date.py +0 -0
  129. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/differential_privacy.py +0 -0
  130. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  131. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/dp.py +0 -0
  132. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/exit_handlers.py +0 -0
  133. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/grpc.py +0 -0
  134. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/logger.py +0 -0
  135. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/message.py +0 -0
  136. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/object_ref.py +0 -0
  137. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/parameter.py +0 -0
  138. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/pyproject.py +0 -0
  139. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/__init__.py +0 -0
  140. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/configsrecord.py +0 -0
  141. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/conversion_utils.py +0 -0
  142. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/metricsrecord.py +0 -0
  143. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/parametersrecord.py +0 -0
  144. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/recordset.py +0 -0
  145. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/record/typeddict.py +0 -0
  146. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/recordset_compat.py +0 -0
  147. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/retry_invoker.py +0 -0
  148. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  149. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  150. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  151. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  152. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  153. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  154. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  155. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/telemetry.py +0 -0
  156. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/typing.py +0 -0
  157. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/common/version.py +0 -0
  158. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/__init__.py +0 -0
  159. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/clientappio_pb2.py +0 -0
  160. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
  161. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  162. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  163. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/common_pb2.py +0 -0
  164. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/common_pb2.pyi +0 -0
  165. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
  166. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
  167. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/control_pb2.py +0 -0
  168. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/control_pb2.pyi +0 -0
  169. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/control_pb2_grpc.py +0 -0
  170. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/control_pb2_grpc.pyi +0 -0
  171. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/driver_pb2.py +0 -0
  172. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  173. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  174. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  175. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/error_pb2.py +0 -0
  176. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/error_pb2.pyi +0 -0
  177. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  178. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  179. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/exec_pb2.py +0 -0
  180. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  181. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  182. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  183. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  184. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  185. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  186. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  187. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  188. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  189. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  191. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/message_pb2.py +0 -0
  192. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/message_pb2.pyi +0 -0
  193. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  194. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  195. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/node_pb2.py +0 -0
  196. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/node_pb2.pyi +0 -0
  197. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  198. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  199. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  200. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  201. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  202. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  203. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/task_pb2.py +0 -0
  204. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/task_pb2.pyi +0 -0
  205. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  206. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  207. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  208. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  209. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/py.typed +0 -0
  210. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/__init__.py +0 -0
  211. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/app.py +0 -0
  212. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/client_manager.py +0 -0
  213. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/client_proxy.py +0 -0
  214. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/compat/__init__.py +0 -0
  215. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/compat/app.py +0 -0
  216. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/compat/app_utils.py +0 -0
  217. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  218. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/compat/legacy_context.py +0 -0
  219. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/criterion.py +0 -0
  220. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/driver/__init__.py +0 -0
  221. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/driver/driver.py +0 -0
  222. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  223. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  224. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/history.py +0 -0
  225. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/run_serverapp.py +0 -0
  226. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/server.py +0 -0
  227. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/server_app.py +0 -0
  228. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/server_config.py +0 -0
  229. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/serverapp_components.py +0 -0
  230. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/__init__.py +0 -0
  231. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/aggregate.py +0 -0
  232. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/bulyan.py +0 -0
  233. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  234. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  235. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  236. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  237. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  238. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  239. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedadam.py +0 -0
  240. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedavg.py +0 -0
  241. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  242. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  243. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  244. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedopt.py +0 -0
  245. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedprox.py +0 -0
  246. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  247. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  248. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  249. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  250. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  251. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/krum.py +0 -0
  252. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  253. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/strategy/strategy.py +0 -0
  254. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/__init__.py +0 -0
  255. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  256. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  257. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  258. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
  259. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
  260. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
  261. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
  262. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  263. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  264. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  265. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  266. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  267. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  268. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  269. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  270. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  271. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  272. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  273. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  274. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  275. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  276. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  277. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  278. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  279. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  280. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  281. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  282. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/state.py +0 -0
  283. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  284. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/superlink/state/utils.py +0 -0
  285. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/typing.py +0 -0
  286. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/utils/__init__.py +0 -0
  287. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/utils/tensorboard.py +0 -0
  288. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/__init__.py +0 -0
  289. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/constant.py +0 -0
  290. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  291. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  292. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  293. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  294. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/__init__.py +0 -0
  295. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/app.py +0 -0
  296. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  297. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  298. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  299. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  300. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/simulation/run_simulation.py +0 -0
  301. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/__init__.py +0 -0
  302. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/app.py +0 -0
  303. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/deployment.py +0 -0
  304. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/exec_grpc.py +0 -0
  305. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/exec_servicer.py +0 -0
  306. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/src/py/flwr/superexec/executor.py +0 -0
  307. {flwr_nightly-1.12.0.dev20240924 → flwr_nightly-1.12.0.dev20240927}/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.12.0.dev20240924
3
+ Version: 1.12.0.dev20240927
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -69,6 +69,7 @@ Description-Content-Type: text/markdown
69
69
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/adap/flower/blob/main/CONTRIBUTING.md)
70
70
  ![Build](https://github.com/adap/flower/actions/workflows/framework.yml/badge.svg)
71
71
  [![Downloads](https://static.pepy.tech/badge/flwr)](https://pepy.tech/project/flwr)
72
+ [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-flwr-blue)](https://hub.docker.com/u/flwr)
72
73
  [![Slack](https://img.shields.io/badge/Chat-Slack-red)](https://flower.ai/join-slack)
73
74
 
74
75
  Flower (`flwr`) is a framework for building federated learning systems. The
@@ -18,6 +18,7 @@
18
18
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/adap/flower/blob/main/CONTRIBUTING.md)
19
19
  ![Build](https://github.com/adap/flower/actions/workflows/framework.yml/badge.svg)
20
20
  [![Downloads](https://static.pepy.tech/badge/flwr)](https://pepy.tech/project/flwr)
21
+ [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-flwr-blue)](https://hub.docker.com/u/flwr)
21
22
  [![Slack](https://img.shields.io/badge/Chat-Slack-red)](https://flower.ai/join-slack)
22
23
 
23
24
  Flower (`flwr`) is a framework for building federated learning systems. The
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.12.0.dev20240924"
7
+ version = "1.12.0.dev20240927"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -136,6 +136,15 @@ licensecheck = "==2024"
136
136
  pre-commit = "==3.5.0"
137
137
  sphinx-substitution-extensions = "2022.02.16"
138
138
  sphinxext-opengraph = "==0.9.1"
139
+ docstrfmt = { git = "https://github.com/charlesbvll/docstrfmt.git", branch = "patch-1" }
140
+
141
+ [tool.docstrfmt]
142
+ extend_exclude = [
143
+ "doc/source/conf.py",
144
+ "doc/source/tutorial-quickstart-huggingface.rst",
145
+ "doc/source/_templates/autosummary/*",
146
+ "doc/source/ref-api/*",
147
+ ]
139
148
 
140
149
  [tool.isort]
141
150
  profile = "black"
@@ -26,18 +26,71 @@ import typer
26
26
  from flwr.cli.config_utils import load_and_validate
27
27
  from flwr.common.grpc import GRPC_MAX_MESSAGE_LENGTH, create_channel
28
28
  from flwr.common.logger import log as logger
29
+ from flwr.proto.exec_pb2 import StreamLogsRequest # pylint: disable=E0611
30
+ from flwr.proto.exec_pb2_grpc import ExecStub
29
31
 
30
32
  CONN_REFRESH_PERIOD = 60 # Connection refresh period for log streaming (seconds)
31
33
 
32
34
 
33
- # pylint: disable=unused-argument
34
- def stream_logs(run_id: int, channel: grpc.Channel, period: int) -> None:
35
+ def start_stream(
36
+ run_id: int, channel: grpc.Channel, refresh_period: int = CONN_REFRESH_PERIOD
37
+ ) -> None:
38
+ """Start log streaming for a given run ID."""
39
+ try:
40
+ while True:
41
+ logger(INFO, "Starting logstream for run_id `%s`", run_id)
42
+ stream_logs(run_id, channel, refresh_period)
43
+ time.sleep(2)
44
+ logger(DEBUG, "Reconnecting to logstream")
45
+ except KeyboardInterrupt:
46
+ logger(INFO, "Exiting logstream")
47
+ except grpc.RpcError as e:
48
+ # pylint: disable=E1101
49
+ if e.code() == grpc.StatusCode.NOT_FOUND:
50
+ logger(ERROR, "Invalid run_id `%s`, exiting", run_id)
51
+ if e.code() == grpc.StatusCode.CANCELLED:
52
+ pass
53
+ finally:
54
+ channel.close()
55
+
56
+
57
+ def stream_logs(run_id: int, channel: grpc.Channel, duration: int) -> None:
35
58
  """Stream logs from the beginning of a run with connection refresh."""
59
+ start_time = time.time()
60
+ stub = ExecStub(channel)
61
+ req = StreamLogsRequest(run_id=run_id)
62
+
63
+ for res in stub.StreamLogs(req):
64
+ print(res.log_output)
65
+ if time.time() - start_time > duration:
66
+ break
36
67
 
37
68
 
38
- # pylint: disable=unused-argument
39
69
  def print_logs(run_id: int, channel: grpc.Channel, timeout: int) -> None:
40
70
  """Print logs from the beginning of a run."""
71
+ stub = ExecStub(channel)
72
+ req = StreamLogsRequest(run_id=run_id)
73
+
74
+ try:
75
+ while True:
76
+ try:
77
+ # Enforce timeout for graceful exit
78
+ for res in stub.StreamLogs(req, timeout=timeout):
79
+ print(res.log_output)
80
+ except grpc.RpcError as e:
81
+ # pylint: disable=E1101
82
+ if e.code() == grpc.StatusCode.DEADLINE_EXCEEDED:
83
+ break
84
+ if e.code() == grpc.StatusCode.NOT_FOUND:
85
+ logger(ERROR, "Invalid run_id `%s`, exiting", run_id)
86
+ break
87
+ if e.code() == grpc.StatusCode.CANCELLED:
88
+ break
89
+ except KeyboardInterrupt:
90
+ logger(DEBUG, "Stream interrupted by user")
91
+ finally:
92
+ channel.close()
93
+ logger(DEBUG, "Channel closed")
41
94
 
42
95
 
43
96
  def on_channel_state_change(channel_connectivity: str) -> None:
@@ -175,22 +228,7 @@ def _log_with_superexec(
175
228
  channel.subscribe(on_channel_state_change)
176
229
 
177
230
  if stream:
178
- try:
179
- while True:
180
- logger(INFO, "Starting logstream for run_id `%s`", run_id)
181
- stream_logs(run_id, channel, CONN_REFRESH_PERIOD)
182
- time.sleep(2)
183
- logger(DEBUG, "Reconnecting to logstream")
184
- except KeyboardInterrupt:
185
- logger(INFO, "Exiting logstream")
186
- except grpc.RpcError as e:
187
- # pylint: disable=E1101
188
- if e.code() == grpc.StatusCode.NOT_FOUND:
189
- logger(ERROR, "Invalid run_id `%s`, exiting", run_id)
190
- if e.code() == grpc.StatusCode.CANCELLED:
191
- pass
192
- finally:
193
- channel.close()
231
+ start_stream(run_id, channel, CONN_REFRESH_PERIOD)
194
232
  else:
195
233
  logger(INFO, "Printing logstream for run_id `%s`", run_id)
196
234
  print_logs(run_id, channel, timeout=5)
@@ -55,7 +55,7 @@ We use Mistral-7B model with 4-bit quantization as default. The estimated VRAM c
55
55
  | :--------: | :--------: | :--------: | :--------: | :--------: |
56
56
  | VRAM | ~25.50 GB | ~17.30 GB | ~22.80 GB | ~17.40 GB |
57
57
 
58
- You can adjust the CPU/GPU resources you assign to each of the clients based on your device, which are specified with `options.backend.clientapp-cpus` and `options.backend.clientapp-gpus` under `[tool.flwr.federations.local-simulation]` entry in `pyproject.toml`.
58
+ You can adjust the CPU/GPU resources you assign to each of the clients based on your device, which are specified with `options.backend.client-resources.num-cpus` and `options.backend.client-resources.num-gpus` under `[tool.flwr.federations.local-simulation]` entry in `pyproject.toml`.
59
59
 
60
60
 
61
61
  ## Model saving
@@ -34,6 +34,10 @@ from flwr.common.typing import Fab
34
34
  from flwr.proto.exec_pb2 import StartRunRequest # pylint: disable=E0611
35
35
  from flwr.proto.exec_pb2_grpc import ExecStub
36
36
 
37
+ from ..log import start_stream
38
+
39
+ CONN_REFRESH_PERIOD = 60 # Connection refresh period for log streaming (seconds)
40
+
37
41
 
38
42
  def on_channel_state_change(channel_connectivity: str) -> None:
39
43
  """Log channel connectivity."""
@@ -62,6 +66,14 @@ def run(
62
66
  "inside the `pyproject.toml` in order to be properly overriden.",
63
67
  ),
64
68
  ] = None,
69
+ stream: Annotated[
70
+ bool,
71
+ typer.Option(
72
+ "--stream",
73
+ help="Use `--stream` with `flwr run` to display logs;\n "
74
+ "logs are not streamed by default.",
75
+ ),
76
+ ] = False,
65
77
  ) -> None:
66
78
  """Run Flower App."""
67
79
  typer.secho("Loading project configuration... ", fg=typer.colors.BLUE)
@@ -117,7 +129,7 @@ def run(
117
129
  raise typer.Exit(code=1)
118
130
 
119
131
  if "address" in federation_config:
120
- _run_with_superexec(app, federation_config, config_overrides)
132
+ _run_with_superexec(app, federation_config, config_overrides, stream)
121
133
  else:
122
134
  _run_without_superexec(app, federation_config, config_overrides, federation)
123
135
 
@@ -126,6 +138,7 @@ def _run_with_superexec(
126
138
  app: Path,
127
139
  federation_config: dict[str, Any],
128
140
  config_overrides: Optional[list[str]],
141
+ stream: bool,
129
142
  ) -> None:
130
143
 
131
144
  insecure_str = federation_config.get("insecure")
@@ -183,6 +196,9 @@ def _run_with_superexec(
183
196
  fab_path.unlink()
184
197
  typer.secho(f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN)
185
198
 
199
+ if stream:
200
+ start_stream(res.run_id, channel, CONN_REFRESH_PERIOD)
201
+
186
202
 
187
203
  def _run_without_superexec(
188
204
  app: Optional[Path],
@@ -31,6 +31,7 @@ from flwr.common.secure_aggregation.crypto.symmetric_encryption import (
31
31
  generate_shared_key,
32
32
  public_key_to_bytes,
33
33
  )
34
+ from flwr.proto.fab_pb2 import GetFabRequest # pylint: disable=E0611
34
35
  from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
35
36
  CreateNodeRequest,
36
37
  DeleteNodeRequest,
@@ -50,6 +51,7 @@ Request = Union[
50
51
  PushTaskResRequest,
51
52
  GetRunRequest,
52
53
  PingRequest,
54
+ GetFabRequest,
53
55
  ]
54
56
 
55
57
 
@@ -126,6 +128,7 @@ class AuthenticateClientInterceptor(grpc.UnaryUnaryClientInterceptor): # type:
126
128
  PushTaskResRequest,
127
129
  GetRunRequest,
128
130
  PingRequest,
131
+ GetFabRequest,
129
132
  ),
130
133
  ):
131
134
  if self.shared_secret is None:
@@ -269,7 +269,7 @@ def grpc_request_response( # pylint: disable=R0913, R0914, R0915
269
269
  task_res = message_to_taskres(message)
270
270
 
271
271
  # Serialize ProtoBuf to bytes
272
- request = PushTaskResRequest(task_res_list=[task_res])
272
+ request = PushTaskResRequest(node=node, task_res_list=[task_res])
273
273
  _ = retry_invoker.invoke(stub.PushTaskRes, request)
274
274
 
275
275
  # Cleanup
@@ -277,7 +277,7 @@ def grpc_request_response( # pylint: disable=R0913, R0914, R0915
277
277
 
278
278
  def get_run(run_id: int) -> Run:
279
279
  # Call FleetAPI
280
- get_run_request = GetRunRequest(run_id=run_id)
280
+ get_run_request = GetRunRequest(node=node, run_id=run_id)
281
281
  get_run_response: GetRunResponse = retry_invoker.invoke(
282
282
  stub.GetRun,
283
283
  request=get_run_request,
@@ -294,7 +294,7 @@ def grpc_request_response( # pylint: disable=R0913, R0914, R0915
294
294
 
295
295
  def get_fab(fab_hash: str) -> Fab:
296
296
  # Call FleetAPI
297
- get_fab_request = GetFabRequest(hash_str=fab_hash)
297
+ get_fab_request = GetFabRequest(node=node, hash_str=fab_hash)
298
298
  get_fab_response: GetFabResponse = retry_invoker.invoke(
299
299
  stub.GetFab,
300
300
  request=get_fab_request,
@@ -340,7 +340,7 @@ def http_request_response( # pylint: disable=,R0913, R0914, R0915
340
340
  task_res = message_to_taskres(message)
341
341
 
342
342
  # Serialize ProtoBuf to bytes
343
- req = PushTaskResRequest(task_res_list=[task_res])
343
+ req = PushTaskResRequest(node=node, task_res_list=[task_res])
344
344
 
345
345
  # Send the request
346
346
  res = _request(req, PushTaskResResponse, PATH_PUSH_TASK_RES)
@@ -356,7 +356,7 @@ def http_request_response( # pylint: disable=,R0913, R0914, R0915
356
356
 
357
357
  def get_run(run_id: int) -> Run:
358
358
  # Construct the request
359
- req = GetRunRequest(run_id=run_id)
359
+ req = GetRunRequest(node=node, run_id=run_id)
360
360
 
361
361
  # Send the request
362
362
  res = _request(req, GetRunResponse, PATH_GET_RUN)
@@ -373,7 +373,7 @@ def http_request_response( # pylint: disable=,R0913, R0914, R0915
373
373
 
374
374
  def get_fab(fab_hash: str) -> Fab:
375
375
  # Construct the request
376
- req = GetFabRequest(hash_str=fab_hash)
376
+ req = GetFabRequest(node=node, hash_str=fab_hash)
377
377
 
378
378
  # Send the request
379
379
  res = _request(req, GetFabResponse, PATH_GET_FAB)
@@ -43,8 +43,8 @@ def share_keys_plaintext_concat(
43
43
  """
44
44
  return b"".join(
45
45
  [
46
- int.to_bytes(src_node_id, 8, "little", signed=True),
47
- int.to_bytes(dst_node_id, 8, "little", signed=True),
46
+ int.to_bytes(src_node_id, 8, "little", signed=False),
47
+ int.to_bytes(dst_node_id, 8, "little", signed=False),
48
48
  int.to_bytes(len(b_share), 4, "little"),
49
49
  b_share,
50
50
  sk_share,
@@ -72,8 +72,8 @@ def share_keys_plaintext_separate(plaintext: bytes) -> tuple[int, int, bytes, by
72
72
  the secret key share of the source sent to the destination.
73
73
  """
74
74
  src, dst, mark = (
75
- int.from_bytes(plaintext[:8], "little", signed=True),
76
- int.from_bytes(plaintext[8:16], "little", signed=True),
75
+ int.from_bytes(plaintext[:8], "little", signed=False),
76
+ int.from_bytes(plaintext[8:16], "little", signed=False),
77
77
  int.from_bytes(plaintext[16:20], "little"),
78
78
  )
79
79
  ret = (src, dst, plaintext[20 : 20 + mark], plaintext[20 + mark :])
@@ -38,7 +38,7 @@ from flwr.proto.recordset_pb2 import MetricsRecord as ProtoMetricsRecord
38
38
  from flwr.proto.recordset_pb2 import MetricsRecordValue as ProtoMetricsRecordValue
39
39
  from flwr.proto.recordset_pb2 import ParametersRecord as ProtoParametersRecord
40
40
  from flwr.proto.recordset_pb2 import RecordSet as ProtoRecordSet
41
- from flwr.proto.recordset_pb2 import Sint64List, StringList
41
+ from flwr.proto.recordset_pb2 import SintList, StringList, UintList
42
42
  from flwr.proto.run_pb2 import Run as ProtoRun
43
43
  from flwr.proto.task_pb2 import Task, TaskIns, TaskRes
44
44
  from flwr.proto.transport_pb2 import (
@@ -340,6 +340,7 @@ def metrics_from_proto(proto: Any) -> typing.Metrics:
340
340
 
341
341
 
342
342
  # === Scalar messages ===
343
+ INT64_MAX_VALUE = 9223372036854775807 # (1 << 63) - 1
343
344
 
344
345
 
345
346
  def scalar_to_proto(scalar: typing.Scalar) -> Scalar:
@@ -354,6 +355,9 @@ def scalar_to_proto(scalar: typing.Scalar) -> Scalar:
354
355
  return Scalar(double=scalar)
355
356
 
356
357
  if isinstance(scalar, int):
358
+ # Use uint64 for integers larger than the maximum value of sint64
359
+ if scalar > INT64_MAX_VALUE:
360
+ return Scalar(uint64=scalar)
357
361
  return Scalar(sint64=scalar)
358
362
 
359
363
  if isinstance(scalar, str):
@@ -374,16 +378,16 @@ def scalar_from_proto(scalar_msg: Scalar) -> typing.Scalar:
374
378
  # === Record messages ===
375
379
 
376
380
 
377
- _type_to_field = {
381
+ _type_to_field: dict[type, str] = {
378
382
  float: "double",
379
383
  int: "sint64",
380
384
  bool: "bool",
381
385
  str: "string",
382
386
  bytes: "bytes",
383
387
  }
384
- _list_type_to_class_and_field = {
388
+ _list_type_to_class_and_field: dict[type, tuple[type[GrpcMessage], str]] = {
385
389
  float: (DoubleList, "double_list"),
386
- int: (Sint64List, "sint64_list"),
390
+ int: (SintList, "sint_list"),
387
391
  bool: (BoolList, "bool_list"),
388
392
  str: (StringList, "string_list"),
389
393
  bytes: (BytesList, "bytes_list"),
@@ -391,6 +395,11 @@ _list_type_to_class_and_field = {
391
395
  T = TypeVar("T")
392
396
 
393
397
 
398
+ def _is_uint64(value: Any) -> bool:
399
+ """Check if a value is uint64."""
400
+ return isinstance(value, int) and value > INT64_MAX_VALUE
401
+
402
+
394
403
  def _record_value_to_proto(
395
404
  value: Any, allowed_types: list[type], proto_class: type[T]
396
405
  ) -> T:
@@ -403,12 +412,18 @@ def _record_value_to_proto(
403
412
  # Single element
404
413
  # Note: `isinstance(False, int) == True`.
405
414
  if isinstance(value, t):
406
- arg[_type_to_field[t]] = value
415
+ fld = _type_to_field[t]
416
+ if t is int and _is_uint64(value):
417
+ fld = "uint64"
418
+ arg[fld] = value
407
419
  return proto_class(**arg)
408
420
  # List
409
421
  if isinstance(value, list) and all(isinstance(item, t) for item in value):
410
- list_class, field_name = _list_type_to_class_and_field[t]
411
- arg[field_name] = list_class(vals=value)
422
+ list_class, fld = _list_type_to_class_and_field[t]
423
+ # Use UintList if any element is of type `uint64`.
424
+ if t is int and any(_is_uint64(v) for v in value):
425
+ list_class, fld = UintList, "uint_list"
426
+ arg[fld] = list_class(vals=value)
412
427
  return proto_class(**arg)
413
428
  # Invalid types
414
429
  raise TypeError(
@@ -12,19 +12,20 @@ from google.protobuf.internal import builder as _builder
12
12
  _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
+ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
15
16
 
16
17
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/fab.proto\x12\nflwr.proto\"(\n\x03\x46\x61\x62\x12\x10\n\x08hash_str\x18\x01 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\"!\n\rGetFabRequest\x12\x10\n\x08hash_str\x18\x01 \x01(\t\".\n\x0eGetFabResponse\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fabb\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/fab.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\"(\n\x03\x46\x61\x62\x12\x10\n\x08hash_str\x18\x01 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\"A\n\rGetFabRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08hash_str\x18\x02 \x01(\t\".\n\x0eGetFabResponse\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fabb\x06proto3')
18
19
 
19
20
  _globals = globals()
20
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
22
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.fab_pb2', _globals)
22
23
  if _descriptor._USE_C_DESCRIPTORS == False:
23
24
  DESCRIPTOR._options = None
24
- _globals['_FAB']._serialized_start=36
25
- _globals['_FAB']._serialized_end=76
26
- _globals['_GETFABREQUEST']._serialized_start=78
27
- _globals['_GETFABREQUEST']._serialized_end=111
28
- _globals['_GETFABRESPONSE']._serialized_start=113
29
- _globals['_GETFABRESPONSE']._serialized_end=159
25
+ _globals['_FAB']._serialized_start=59
26
+ _globals['_FAB']._serialized_end=99
27
+ _globals['_GETFABREQUEST']._serialized_start=101
28
+ _globals['_GETFABREQUEST']._serialized_end=166
29
+ _globals['_GETFABRESPONSE']._serialized_start=168
30
+ _globals['_GETFABRESPONSE']._serialized_end=214
30
31
  # @@protoc_insertion_point(module_scope)
@@ -3,6 +3,7 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
+ import flwr.proto.node_pb2
6
7
  import google.protobuf.descriptor
7
8
  import google.protobuf.message
8
9
  import typing
@@ -33,13 +34,18 @@ global___Fab = Fab
33
34
 
34
35
  class GetFabRequest(google.protobuf.message.Message):
35
36
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
37
+ NODE_FIELD_NUMBER: builtins.int
36
38
  HASH_STR_FIELD_NUMBER: builtins.int
39
+ @property
40
+ def node(self) -> flwr.proto.node_pb2.Node: ...
37
41
  hash_str: typing.Text
38
42
  def __init__(self,
39
43
  *,
44
+ node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
40
45
  hash_str: typing.Text = ...,
41
46
  ) -> None: ...
42
- def ClearField(self, field_name: typing_extensions.Literal["hash_str",b"hash_str"]) -> None: ...
47
+ def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
48
+ def ClearField(self, field_name: typing_extensions.Literal["hash_str",b"hash_str","node",b"node"]) -> None: ...
43
49
  global___GetFabRequest = GetFabRequest
44
50
 
45
51
  class GetFabResponse(google.protobuf.message.Message):
@@ -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\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.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\x8c\x04\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\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x62\x06proto3')
21
+ 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\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.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\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rtask_res_list\x18\x02 \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\x8c\x04\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\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -44,13 +44,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
44
44
  _globals['_PULLTASKINSRESPONSE']._serialized_start=476
45
45
  _globals['_PULLTASKINSRESPONSE']._serialized_end=583
46
46
  _globals['_PUSHTASKRESREQUEST']._serialized_start=585
47
- _globals['_PUSHTASKRESREQUEST']._serialized_end=649
48
- _globals['_PUSHTASKRESRESPONSE']._serialized_start=652
49
- _globals['_PUSHTASKRESRESPONSE']._serialized_end=826
50
- _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=780
51
- _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=826
52
- _globals['_RECONNECT']._serialized_start=828
53
- _globals['_RECONNECT']._serialized_end=858
54
- _globals['_FLEET']._serialized_start=861
55
- _globals['_FLEET']._serialized_end=1385
47
+ _globals['_PUSHTASKRESREQUEST']._serialized_end=681
48
+ _globals['_PUSHTASKRESRESPONSE']._serialized_start=684
49
+ _globals['_PUSHTASKRESRESPONSE']._serialized_end=858
50
+ _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=812
51
+ _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=858
52
+ _globals['_RECONNECT']._serialized_start=860
53
+ _globals['_RECONNECT']._serialized_end=890
54
+ _globals['_FLEET']._serialized_start=893
55
+ _globals['_FLEET']._serialized_end=1417
56
56
  # @@protoc_insertion_point(module_scope)
@@ -124,14 +124,19 @@ global___PullTaskInsResponse = PullTaskInsResponse
124
124
  class PushTaskResRequest(google.protobuf.message.Message):
125
125
  """PushTaskRes messages"""
126
126
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
127
+ NODE_FIELD_NUMBER: builtins.int
127
128
  TASK_RES_LIST_FIELD_NUMBER: builtins.int
128
129
  @property
130
+ def node(self) -> flwr.proto.node_pb2.Node: ...
131
+ @property
129
132
  def task_res_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.task_pb2.TaskRes]: ...
130
133
  def __init__(self,
131
134
  *,
135
+ node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
132
136
  task_res_list: typing.Optional[typing.Iterable[flwr.proto.task_pb2.TaskRes]] = ...,
133
137
  ) -> None: ...
134
- def ClearField(self, field_name: typing_extensions.Literal["task_res_list",b"task_res_list"]) -> None: ...
138
+ def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
139
+ def ClearField(self, field_name: typing_extensions.Literal["node",b"node","task_res_list",b"task_res_list"]) -> None: ...
135
140
  global___PushTaskResRequest = PushTaskResRequest
136
141
 
137
142
  class PushTaskResResponse(google.protobuf.message.Message):
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/recordset.proto
4
+ # Protobuf Python Version: 4.25.0
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lwr/proto/recordset.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x18\n\x08SintList\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08UintList\x12\x0c\n\x04vals\x18\x01 \x03(\x04\"\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\"\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\"\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\"B\n\x05\x41rray\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05stype\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xd8\x01\n\x12MetricsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x42\x07\n\x05value\"\x92\x03\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12\x0e\n\x04\x62ool\x18\x04 \x01(\x08H\x00\x12\x10\n\x06string\x18\x05 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x06 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x12)\n\tbool_list\x18\x18 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x19 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x1a \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"M\n\x10ParametersRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8f\x01\n\rMetricsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.MetricsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.MetricsRecordValue:\x02\x38\x01\"\x8f\x01\n\rConfigsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.ConfigsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.ConfigsRecordValue:\x02\x38\x01\"\x97\x03\n\tRecordSet\x12\x39\n\nparameters\x18\x01 \x03(\x0b\x32%.flwr.proto.RecordSet.ParametersEntry\x12\x33\n\x07metrics\x18\x02 \x03(\x0b\x32\".flwr.proto.RecordSet.MetricsEntry\x12\x33\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32\".flwr.proto.RecordSet.ConfigsEntry\x1aO\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.flwr.proto.ParametersRecord:\x02\x38\x01\x1aI\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.MetricsRecord:\x02\x38\x01\x1aI\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord:\x02\x38\x01\x62\x06proto3')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.recordset_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ DESCRIPTOR._options = None
24
+ _globals['_METRICSRECORD_DATAENTRY']._options = None
25
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_options = b'8\001'
26
+ _globals['_CONFIGSRECORD_DATAENTRY']._options = None
27
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_options = b'8\001'
28
+ _globals['_RECORDSET_PARAMETERSENTRY']._options = None
29
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_options = b'8\001'
30
+ _globals['_RECORDSET_METRICSENTRY']._options = None
31
+ _globals['_RECORDSET_METRICSENTRY']._serialized_options = b'8\001'
32
+ _globals['_RECORDSET_CONFIGSENTRY']._options = None
33
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_options = b'8\001'
34
+ _globals['_DOUBLELIST']._serialized_start=42
35
+ _globals['_DOUBLELIST']._serialized_end=68
36
+ _globals['_SINTLIST']._serialized_start=70
37
+ _globals['_SINTLIST']._serialized_end=94
38
+ _globals['_UINTLIST']._serialized_start=96
39
+ _globals['_UINTLIST']._serialized_end=120
40
+ _globals['_BOOLLIST']._serialized_start=122
41
+ _globals['_BOOLLIST']._serialized_end=146
42
+ _globals['_STRINGLIST']._serialized_start=148
43
+ _globals['_STRINGLIST']._serialized_end=174
44
+ _globals['_BYTESLIST']._serialized_start=176
45
+ _globals['_BYTESLIST']._serialized_end=201
46
+ _globals['_ARRAY']._serialized_start=203
47
+ _globals['_ARRAY']._serialized_end=269
48
+ _globals['_METRICSRECORDVALUE']._serialized_start=272
49
+ _globals['_METRICSRECORDVALUE']._serialized_end=488
50
+ _globals['_CONFIGSRECORDVALUE']._serialized_start=491
51
+ _globals['_CONFIGSRECORDVALUE']._serialized_end=893
52
+ _globals['_PARAMETERSRECORD']._serialized_start=895
53
+ _globals['_PARAMETERSRECORD']._serialized_end=972
54
+ _globals['_METRICSRECORD']._serialized_start=975
55
+ _globals['_METRICSRECORD']._serialized_end=1118
56
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_start=1043
57
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_end=1118
58
+ _globals['_CONFIGSRECORD']._serialized_start=1121
59
+ _globals['_CONFIGSRECORD']._serialized_end=1264
60
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=1189
61
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=1264
62
+ _globals['_RECORDSET']._serialized_start=1267
63
+ _globals['_RECORDSET']._serialized_end=1674
64
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_start=1445
65
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_end=1524
66
+ _globals['_RECORDSET_METRICSENTRY']._serialized_start=1526
67
+ _globals['_RECORDSET_METRICSENTRY']._serialized_end=1599
68
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_start=1601
69
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_end=1674
70
+ # @@protoc_insertion_point(module_scope)