flwr-nightly 1.20.0.dev20250715__tar.gz → 1.20.0.dev20250717__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.
Files changed (378) hide show
  1. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/PKG-INFO +1 -1
  2. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_rere_client/connection.py +7 -7
  3. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/rest_client/connection.py +8 -7
  4. flwr_nightly-1.20.0.dev20250715/py/flwr/common/inflatable_grpc_utils.py → flwr_nightly-1.20.0.dev20250717/py/flwr/common/inflatable_protobuf_utils.py +12 -10
  5. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/array.py +2 -2
  6. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/serde.py +0 -28
  7. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/client/app.py +14 -31
  8. flwr_nightly-1.20.0.dev20250717/py/flwr/proto/appio_pb2.py +47 -0
  9. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/appio_pb2.pyi +21 -22
  10. flwr_nightly-1.20.0.dev20250717/py/flwr/proto/clientappio_pb2.py +38 -0
  11. flwr_nightly-1.20.0.dev20250717/py/flwr/proto/clientappio_pb2.pyi +54 -0
  12. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/clientappio_pb2_grpc.py +128 -24
  13. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/clientappio_pb2_grpc.pyi +57 -16
  14. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/fleet_event_log_interceptor.py +4 -0
  15. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/grid/grpc_grid.py +12 -9
  16. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
  17. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +5 -9
  18. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/exec_event_log_interceptor.py +4 -0
  19. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/exec_license_interceptor.py +4 -0
  20. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/exec_user_auth_interceptor.py +4 -0
  21. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/runtime/run_clientapp.py +21 -15
  22. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +94 -25
  23. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/pyproject.toml +1 -1
  24. flwr_nightly-1.20.0.dev20250715/py/flwr/common/inflatable_rest_utils.py +0 -99
  25. flwr_nightly-1.20.0.dev20250715/py/flwr/proto/appio_pb2.py +0 -51
  26. flwr_nightly-1.20.0.dev20250715/py/flwr/proto/clientappio_pb2.py +0 -57
  27. flwr_nightly-1.20.0.dev20250715/py/flwr/proto/clientappio_pb2.pyi +0 -196
  28. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/README.md +0 -0
  29. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/__init__.py +0 -0
  30. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/app/__init__.py +0 -0
  31. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/app/error.py +0 -0
  32. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/app/metadata.py +0 -0
  33. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/__init__.py +0 -0
  34. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/app.py +0 -0
  35. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/auth_plugin/__init__.py +0 -0
  36. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  37. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/build.py +0 -0
  38. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
  39. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/config_utils.py +0 -0
  40. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/constant.py +0 -0
  41. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/example.py +0 -0
  42. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/install.py +0 -0
  43. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/log.py +0 -0
  44. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/login/__init__.py +0 -0
  45. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/login/login.py +0 -0
  46. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/ls.py +0 -0
  47. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/__init__.py +0 -0
  48. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/new.py +0 -0
  49. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/__init__.py +0 -0
  50. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  51. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  52. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  53. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  54. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  55. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  56. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  57. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  58. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  59. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  60. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  61. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  62. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  63. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  64. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  65. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  66. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  67. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  68. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  69. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  70. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  71. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  72. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  73. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  74. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  75. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  76. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  77. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  78. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  79. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  80. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  81. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  82. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  83. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  84. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  85. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  86. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  87. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  88. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  89. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  90. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  91. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  92. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  93. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  94. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  95. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  96. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  97. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  98. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  99. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  100. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  101. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/run/__init__.py +0 -0
  102. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/run/run.py +0 -0
  103. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/stop.py +0 -0
  104. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/cli/utils.py +0 -0
  105. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/__init__.py +0 -0
  106. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/client.py +0 -0
  107. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/client_app.py +0 -0
  108. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/clientapp/__init__.py +0 -0
  109. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/clientapp/utils.py +0 -0
  110. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  111. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  112. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  113. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  114. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  115. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  116. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/message_handler/__init__.py +0 -0
  117. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/message_handler/message_handler.py +0 -0
  118. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/__init__.py +0 -0
  119. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/centraldp_mods.py +0 -0
  120. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/comms_mods.py +0 -0
  121. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/localdp_mod.py +0 -0
  122. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  123. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  124. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  125. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/mod/utils.py +0 -0
  126. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/numpy_client.py +0 -0
  127. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/rest_client/__init__.py +0 -0
  128. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/run_info_store.py +0 -0
  129. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/client/typing.py +0 -0
  130. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/clientapp/__init__.py +0 -0
  131. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/__init__.py +0 -0
  132. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/address.py +0 -0
  133. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/args.py +0 -0
  134. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/auth_plugin/__init__.py +0 -0
  135. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
  136. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/config.py +0 -0
  137. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/constant.py +0 -0
  138. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/context.py +0 -0
  139. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/date.py +0 -0
  140. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/differential_privacy.py +0 -0
  141. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/differential_privacy_constants.py +0 -0
  142. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/dp.py +0 -0
  143. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  144. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  145. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/exit/__init__.py +0 -0
  146. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/exit/exit.py +0 -0
  147. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/exit/exit_code.py +0 -0
  148. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/exit_handlers.py +0 -0
  149. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/grpc.py +0 -0
  150. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/heartbeat.py +0 -0
  151. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/inflatable.py +0 -0
  152. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/inflatable_utils.py +0 -0
  153. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/logger.py +0 -0
  154. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/message.py +0 -0
  155. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/object_ref.py +0 -0
  156. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/parameter.py +0 -0
  157. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/pyproject.py +0 -0
  158. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/__init__.py +0 -0
  159. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/arraychunk.py +0 -0
  160. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/arrayrecord.py +0 -0
  161. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/configrecord.py +0 -0
  162. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/conversion_utils.py +0 -0
  163. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/metricrecord.py +0 -0
  164. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/recorddict.py +0 -0
  165. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/record/typeddict.py +0 -0
  166. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/recorddict_compat.py +0 -0
  167. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/retry_invoker.py +0 -0
  168. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  169. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  170. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  171. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  172. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  173. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  174. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  175. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  176. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/serde_utils.py +0 -0
  177. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/telemetry.py +0 -0
  178. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/typing.py +0 -0
  179. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/common/version.py +0 -0
  180. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/__init__.py +0 -0
  181. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/client/__init__.py +0 -0
  182. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  183. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  184. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/common/__init__.py +0 -0
  185. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/server/__init__.py +0 -0
  186. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/server/app.py +0 -0
  187. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/compat/simulation/__init__.py +0 -0
  188. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/__init__.py +0 -0
  189. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/appio_pb2_grpc.py +0 -0
  190. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  191. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/error_pb2.py +0 -0
  192. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/error_pb2.pyi +0 -0
  193. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/error_pb2_grpc.py +0 -0
  194. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  195. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/exec_pb2.py +0 -0
  196. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/exec_pb2.pyi +0 -0
  197. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/exec_pb2_grpc.py +0 -0
  198. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  199. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fab_pb2.py +0 -0
  200. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fab_pb2.pyi +0 -0
  201. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  202. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  203. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fleet_pb2.py +0 -0
  204. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fleet_pb2.pyi +0 -0
  205. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  206. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  207. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  208. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  209. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  210. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  211. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/heartbeat_pb2.py +0 -0
  212. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  213. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  214. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  215. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/log_pb2.py +0 -0
  216. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/log_pb2.pyi +0 -0
  217. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/log_pb2_grpc.py +0 -0
  218. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  219. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/message_pb2.py +0 -0
  220. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/message_pb2.pyi +0 -0
  221. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/message_pb2_grpc.py +0 -0
  222. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  223. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/node_pb2.py +0 -0
  224. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/node_pb2.pyi +0 -0
  225. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/node_pb2_grpc.py +0 -0
  226. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  227. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/recorddict_pb2.py +0 -0
  228. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  229. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  230. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  231. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/run_pb2.py +0 -0
  232. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/run_pb2.pyi +0 -0
  233. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/run_pb2_grpc.py +0 -0
  234. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  235. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/serverappio_pb2.py +0 -0
  236. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  237. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  238. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  239. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/simulationio_pb2.py +0 -0
  240. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  241. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  242. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  243. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/transport_pb2.py +0 -0
  244. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/transport_pb2.pyi +0 -0
  245. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  246. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  247. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/py.typed +0 -0
  248. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/__init__.py +0 -0
  249. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/app.py +0 -0
  250. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/client_manager.py +0 -0
  251. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/client_proxy.py +0 -0
  252. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/compat/__init__.py +0 -0
  253. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/compat/app.py +0 -0
  254. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/compat/app_utils.py +0 -0
  255. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  256. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/compat/legacy_context.py +0 -0
  257. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/criterion.py +0 -0
  258. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/grid/__init__.py +0 -0
  259. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/grid/grid.py +0 -0
  260. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/grid/inmemory_grid.py +0 -0
  261. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/history.py +0 -0
  262. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/run_serverapp.py +0 -0
  263. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/server.py +0 -0
  264. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/server_app.py +0 -0
  265. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/server_config.py +0 -0
  266. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/serverapp/__init__.py +0 -0
  267. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/serverapp/app.py +0 -0
  268. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/serverapp_components.py +0 -0
  269. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/__init__.py +0 -0
  270. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/aggregate.py +0 -0
  271. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/bulyan.py +0 -0
  272. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  273. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  274. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  275. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  276. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  277. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedadagrad.py +0 -0
  278. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedadam.py +0 -0
  279. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedavg.py +0 -0
  280. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedavg_android.py +0 -0
  281. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedavgm.py +0 -0
  282. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedmedian.py +0 -0
  283. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedopt.py +0 -0
  284. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedprox.py +0 -0
  285. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  286. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  287. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  288. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  289. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/fedyogi.py +0 -0
  290. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/krum.py +0 -0
  291. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/qfedavg.py +0 -0
  292. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/strategy/strategy.py +0 -0
  293. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/__init__.py +0 -0
  294. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  295. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  296. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  297. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  298. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  299. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  300. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  301. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  302. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  303. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  304. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  305. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  306. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  307. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  308. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  309. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  310. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  311. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  312. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  313. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  314. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
  315. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
  316. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  317. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
  318. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  319. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  320. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  321. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  322. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  323. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  324. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/superlink/utils.py +0 -0
  325. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/typing.py +0 -0
  326. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/utils/__init__.py +0 -0
  327. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/utils/tensorboard.py +0 -0
  328. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/utils/validator.py +0 -0
  329. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/__init__.py +0 -0
  330. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/constant.py +0 -0
  331. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/default_workflows.py +0 -0
  332. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  333. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  334. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  335. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/serverapp/__init__.py +0 -0
  336. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/__init__.py +0 -0
  337. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/app.py +0 -0
  338. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/legacy_app.py +0 -0
  339. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  340. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  341. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  342. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/ray_transport/utils.py +0 -0
  343. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/run_simulation.py +0 -0
  344. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/simulation/simulationio_connection.py +0 -0
  345. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/__init__.py +0 -0
  346. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/ffs/__init__.py +0 -0
  347. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  348. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/ffs/ffs.py +0 -0
  349. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  350. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/grpc_health/__init__.py +0 -0
  351. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
  352. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  353. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  354. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/object_store/__init__.py +0 -0
  355. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  356. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/object_store/object_store.py +0 -0
  357. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  358. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supercore/utils.py +0 -0
  359. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/__init__.py +0 -0
  360. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/app.py +0 -0
  361. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/deployment.py +0 -0
  362. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/exec_grpc.py +0 -0
  363. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/exec_servicer.py +0 -0
  364. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/executor.py +0 -0
  365. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superexec/simulation.py +0 -0
  366. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/superlink/__init__.py +0 -0
  367. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/__init__.py +0 -0
  368. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/cli/__init__.py +0 -0
  369. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  370. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  371. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/nodestate/__init__.py +0 -0
  372. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  373. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  374. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  375. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/runtime/__init__.py +0 -0
  376. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/servicer/__init__.py +0 -0
  377. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  378. {flwr_nightly-1.20.0.dev20250715 → flwr_nightly-1.20.0.dev20250717}/py/flwr/supernode/start_client_internal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.20.0.dev20250715
3
+ Version: 1.20.0.dev20250717
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  License: Apache-2.0
6
6
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -34,9 +34,9 @@ from flwr.common.inflatable import (
34
34
  iterate_object_tree,
35
35
  no_object_id_recompute,
36
36
  )
37
- from flwr.common.inflatable_grpc_utils import (
38
- make_pull_object_fn_grpc,
39
- make_push_object_fn_grpc,
37
+ from flwr.common.inflatable_protobuf_utils import (
38
+ make_pull_object_fn_protobuf,
39
+ make_push_object_fn_protobuf,
40
40
  )
41
41
  from flwr.common.inflatable_utils import (
42
42
  inflate_object_from_contents,
@@ -277,8 +277,8 @@ def grpc_request_response( # pylint: disable=R0913,R0914,R0915,R0917
277
277
  object_tree = response.message_object_trees[0]
278
278
  all_object_contents = pull_objects(
279
279
  [tree.object_id for tree in iterate_object_tree(object_tree)],
280
- pull_object_fn=make_pull_object_fn_grpc(
281
- pull_object_grpc=stub.PullObject,
280
+ pull_object_fn=make_pull_object_fn_protobuf(
281
+ pull_object_protobuf=stub.PullObject,
282
282
  node=node,
283
283
  run_id=run_id,
284
284
  ),
@@ -330,8 +330,8 @@ def grpc_request_response( # pylint: disable=R0913,R0914,R0915,R0917
330
330
  )
331
331
  push_objects(
332
332
  all_objects,
333
- push_object_fn=make_push_object_fn_grpc(
334
- push_object_grpc=stub.PushObject,
333
+ push_object_fn=make_push_object_fn_protobuf(
334
+ push_object_protobuf=stub.PushObject,
335
335
  node=node,
336
336
  run_id=message.metadata.run_id,
337
337
  ),
@@ -14,6 +14,7 @@
14
14
  # ==============================================================================
15
15
  """Contextmanager for a REST request-response channel to the Flower server."""
16
16
 
17
+
17
18
  from collections.abc import Iterator
18
19
  from contextlib import contextmanager
19
20
  from logging import DEBUG, ERROR, INFO, WARN
@@ -33,9 +34,9 @@ from flwr.common.inflatable import (
33
34
  iterate_object_tree,
34
35
  no_object_id_recompute,
35
36
  )
36
- from flwr.common.inflatable_rest_utils import (
37
- make_pull_object_fn_rest,
38
- make_push_object_fn_rest,
37
+ from flwr.common.inflatable_protobuf_utils import (
38
+ make_pull_object_fn_protobuf,
39
+ make_push_object_fn_protobuf,
39
40
  )
40
41
  from flwr.common.inflatable_utils import (
41
42
  inflate_object_from_contents,
@@ -337,8 +338,8 @@ def http_request_response( # pylint: disable=R0913,R0914,R0915,R0917
337
338
  object_tree = res.message_object_trees[0]
338
339
  all_object_contents = pull_objects(
339
340
  [tree.object_id for tree in iterate_object_tree(object_tree)],
340
- pull_object_fn=make_pull_object_fn_rest(
341
- pull_object_rest=fn,
341
+ pull_object_fn=make_pull_object_fn_protobuf(
342
+ pull_object_protobuf=fn,
342
343
  node=node,
343
344
  run_id=run_id,
344
345
  ),
@@ -415,8 +416,8 @@ def http_request_response( # pylint: disable=R0913,R0914,R0915,R0917
415
416
  try:
416
417
  push_objects(
417
418
  all_objects,
418
- push_object_fn=make_push_object_fn_rest(
419
- push_object_rest=fn,
419
+ push_object_fn=make_push_object_fn_protobuf(
420
+ push_object_protobuf=fn,
420
421
  node=node,
421
422
  run_id=message_proto.metadata.run_id,
422
423
  ),
@@ -28,8 +28,8 @@ from flwr.proto.node_pb2 import Node # pylint: disable=E0611
28
28
  from .inflatable_utils import ObjectIdNotPreregisteredError, ObjectUnavailableError
29
29
 
30
30
 
31
- def make_pull_object_fn_grpc(
32
- pull_object_grpc: Callable[[PullObjectRequest], PullObjectResponse],
31
+ def make_pull_object_fn_protobuf(
32
+ pull_object_protobuf: Callable[[PullObjectRequest], PullObjectResponse],
33
33
  node: Node,
34
34
  run_id: int,
35
35
  ) -> Callable[[str], bytes]:
@@ -37,8 +37,9 @@ def make_pull_object_fn_grpc(
37
37
 
38
38
  Parameters
39
39
  ----------
40
- pull_object_grpc : Callable[[PullObjectRequest], PullObjectResponse]
41
- The gRPC function to pull objects, e.g., `FleetStub.PullObject`.
40
+ pull_object_protobuf : Callable[[PullObjectRequest], PullObjectResponse]
41
+ A callable that takes a `PullObjectRequest` and returns a `PullObjectResponse`.
42
+ This function is typically backed by a gRPC client stub.
42
43
  node : Node
43
44
  The node making the request.
44
45
  run_id : int
@@ -54,7 +55,7 @@ def make_pull_object_fn_grpc(
54
55
 
55
56
  def pull_object_fn(object_id: str) -> bytes:
56
57
  request = PullObjectRequest(node=node, run_id=run_id, object_id=object_id)
57
- response: PullObjectResponse = pull_object_grpc(request)
58
+ response: PullObjectResponse = pull_object_protobuf(request)
58
59
  if not response.object_found:
59
60
  raise ObjectIdNotPreregisteredError(object_id)
60
61
  if not response.object_available:
@@ -64,8 +65,8 @@ def make_pull_object_fn_grpc(
64
65
  return pull_object_fn
65
66
 
66
67
 
67
- def make_push_object_fn_grpc(
68
- push_object_grpc: Callable[[PushObjectRequest], PushObjectResponse],
68
+ def make_push_object_fn_protobuf(
69
+ push_object_protobuf: Callable[[PushObjectRequest], PushObjectResponse],
69
70
  node: Node,
70
71
  run_id: int,
71
72
  ) -> Callable[[str, bytes], None]:
@@ -73,8 +74,9 @@ def make_push_object_fn_grpc(
73
74
 
74
75
  Parameters
75
76
  ----------
76
- push_object_grpc : Callable[[PushObjectRequest], PushObjectResponse]
77
- The gRPC function to push objects, e.g., `FleetStub.PushObject`.
77
+ push_object_protobuf : Callable[[PushObjectRequest], PushObjectResponse]
78
+ A callable that takes a `PushObjectRequest` and returns a `PushObjectResponse`.
79
+ This function is typically backed by a gRPC client stub.
78
80
  node : Node
79
81
  The node making the request.
80
82
  run_id : int
@@ -92,7 +94,7 @@ def make_push_object_fn_grpc(
92
94
  request = PushObjectRequest(
93
95
  node=node, run_id=run_id, object_id=object_id, object_content=object_content
94
96
  )
95
- response: PushObjectResponse = push_object_grpc(request)
97
+ response: PushObjectResponse = push_object_protobuf(request)
96
98
  if not response.stored:
97
99
  raise ObjectIdNotPreregisteredError(object_id)
98
100
 
@@ -321,8 +321,8 @@ class Array(InflatableObject):
321
321
  Array
322
322
  The inflated Array.
323
323
  """
324
- if not children:
325
- raise ValueError("`Array` objects must have children.")
324
+ if children is None:
325
+ children = {}
326
326
 
327
327
  obj_body = get_object_body(object_content, cls)
328
328
 
@@ -19,7 +19,6 @@ from collections import OrderedDict
19
19
  from typing import Any, cast
20
20
 
21
21
  # pylint: disable=E0611
22
- from flwr.proto.clientappio_pb2 import ClientAppOutputCode, ClientAppOutputStatus
23
22
  from flwr.proto.fab_pb2 import Fab as ProtoFab
24
23
  from flwr.proto.message_pb2 import Context as ProtoContext
25
24
  from flwr.proto.message_pb2 import Message as ProtoMessage
@@ -653,33 +652,6 @@ def run_from_proto(run_proto: ProtoRun) -> typing.Run:
653
652
  return run
654
653
 
655
654
 
656
- # === ClientApp status messages ===
657
-
658
-
659
- def clientappstatus_to_proto(
660
- status: typing.ClientAppOutputStatus,
661
- ) -> ClientAppOutputStatus:
662
- """Serialize `ClientAppOutputStatus` to ProtoBuf."""
663
- code = ClientAppOutputCode.SUCCESS
664
- if status.code == typing.ClientAppOutputCode.DEADLINE_EXCEEDED:
665
- code = ClientAppOutputCode.DEADLINE_EXCEEDED
666
- if status.code == typing.ClientAppOutputCode.UNKNOWN_ERROR:
667
- code = ClientAppOutputCode.UNKNOWN_ERROR
668
- return ClientAppOutputStatus(code=code, message=status.message)
669
-
670
-
671
- def clientappstatus_from_proto(
672
- msg: ClientAppOutputStatus,
673
- ) -> typing.ClientAppOutputStatus:
674
- """Deserialize `ClientAppOutputStatus` from ProtoBuf."""
675
- code = typing.ClientAppOutputCode.SUCCESS
676
- if msg.code == ClientAppOutputCode.DEADLINE_EXCEEDED:
677
- code = typing.ClientAppOutputCode.DEADLINE_EXCEEDED
678
- if msg.code == ClientAppOutputCode.UNKNOWN_ERROR:
679
- code = typing.ClientAppOutputCode.UNKNOWN_ERROR
680
- return typing.ClientAppOutputStatus(code=code, message=msg.message)
681
-
682
-
683
655
  # === Run status ===
684
656
 
685
657
 
@@ -29,8 +29,6 @@ from flwr.cli.config_utils import get_fab_metadata
29
29
  from flwr.cli.install import install_from_fab
30
30
  from flwr.client.client import Client
31
31
  from flwr.client.client_app import ClientApp, LoadClientAppError
32
- from flwr.client.grpc_adapter_client.connection import grpc_adapter
33
- from flwr.client.grpc_rere_client.connection import grpc_request_response
34
32
  from flwr.client.message_handler.message_handler import handle_control_message
35
33
  from flwr.client.numpy_client import NumPyClient
36
34
  from flwr.client.run_info_store import DeprecatedRunInfoStore
@@ -39,10 +37,7 @@ from flwr.common import GRPC_MAX_MESSAGE_LENGTH, Context, EventType, Message, ev
39
37
  from flwr.common.address import parse_address
40
38
  from flwr.common.constant import (
41
39
  MAX_RETRY_DELAY,
42
- TRANSPORT_TYPE_GRPC_ADAPTER,
43
40
  TRANSPORT_TYPE_GRPC_BIDI,
44
- TRANSPORT_TYPE_GRPC_RERE,
45
- TRANSPORT_TYPE_REST,
46
41
  TRANSPORT_TYPES,
47
42
  ErrorCode,
48
43
  )
@@ -121,10 +116,8 @@ def start_client(
121
116
  Starts an insecure gRPC connection when True. Enables HTTPS connection
122
117
  when False, using system certificates if `root_certificates` is None.
123
118
  transport : Optional[str] (default: None)
124
- Configure the transport layer. Allowed values:
125
- - 'grpc-bidi': gRPC, bidirectional streaming
126
- - 'grpc-rere': gRPC, request-response (experimental)
127
- - 'rest': HTTP (experimental)
119
+ **[Deprecated]** This argument is no longer supported and will be
120
+ removed in a future release.
128
121
  authentication_keys : Optional[Tuple[PrivateKey, PublicKey]] (default: None)
129
122
  Tuple containing the elliptic curve private key and public key for
130
123
  authentication from the cryptography library.
@@ -180,6 +173,12 @@ def start_client(
180
173
  )
181
174
  warn_deprecated_feature(name=msg)
182
175
 
176
+ if transport is not None and transport != "grpc-bidi":
177
+ raise ValueError(
178
+ f"Transport type {transport} is not supported. "
179
+ "Use 'grpc-bidi' or None (default) instead."
180
+ )
181
+
183
182
  event(EventType.START_CLIENT_ENTER)
184
183
  start_client_internal(
185
184
  server_address=server_address,
@@ -429,7 +428,7 @@ def start_client_internal(
429
428
 
430
429
  run: Run = runs[run_id]
431
430
  if get_fab is not None and run.fab_hash:
432
- fab = get_fab(run.fab_hash, run_id)
431
+ fab = get_fab(run.fab_hash, run_id) # pylint: disable=E1102
433
432
  # If `ClientApp` runs in the same process, install the FAB
434
433
  install_from_fab(fab.content, flwr_path, True)
435
434
  fab_id, fab_version = get_fab_metadata(fab.content)
@@ -573,10 +572,8 @@ def start_numpy_client(
573
572
  Starts an insecure gRPC connection when True. Enables HTTPS connection
574
573
  when False, using system certificates if `root_certificates` is None.
575
574
  transport : Optional[str] (default: None)
576
- Configure the transport layer. Allowed values:
577
- - 'grpc-bidi': gRPC, bidirectional streaming
578
- - 'grpc-rere': gRPC, request-response (experimental)
579
- - 'rest': HTTP (experimental)
575
+ **[Deprecated]** This argument is no longer supported and will be
576
+ removed in a future release.
580
577
 
581
578
  Examples
582
579
  --------
@@ -672,23 +669,9 @@ def _init_connection(transport: Optional[str], server_address: str) -> tuple[
672
669
  if transport is None:
673
670
  transport = TRANSPORT_TYPE_GRPC_BIDI
674
671
 
675
- # Use either gRPC bidirectional streaming or REST request/response
676
- if transport == TRANSPORT_TYPE_REST:
677
- try:
678
- from requests.exceptions import ConnectionError as RequestsConnectionError
679
-
680
- from flwr.client.rest_client.connection import http_request_response
681
- except ModuleNotFoundError:
682
- flwr_exit(ExitCode.COMMON_MISSING_EXTRA_REST)
683
- if server_address[:4] != "http":
684
- flwr_exit(ExitCode.SUPERNODE_REST_ADDRESS_INVALID)
685
- connection, error_type = http_request_response, RequestsConnectionError
686
- elif transport == TRANSPORT_TYPE_GRPC_RERE:
687
- connection, error_type = grpc_request_response, RpcError
688
- elif transport == TRANSPORT_TYPE_GRPC_ADAPTER:
689
- connection, error_type = grpc_adapter, RpcError
690
- elif transport == TRANSPORT_TYPE_GRPC_BIDI:
691
- connection, error_type = grpc_connection, RpcError # type: ignore[assignment]
672
+ # Use gRPC bidirectional streaming
673
+ if transport == TRANSPORT_TYPE_GRPC_BIDI:
674
+ connection, error_type = grpc_connection, RpcError
692
675
  else:
693
676
  raise ValueError(
694
677
  f"Unknown transport type: {transport} (possible: {TRANSPORT_TYPES})"
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/appio.proto
4
+ # Protobuf Python Version: 4.25.1
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
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
16
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
17
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/appio.proto\x12\nflwr.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\"\x99\x01\n\x16PushAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x04 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcc\x01\n\x17PushAppMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12O\n\x0fobjects_to_push\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PushAppMessagesResponse.ObjectsToPushEntry\x1aK\n\x12ObjectsToPushEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"L\n\x16PullAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\"{\n\x17PullAppMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x02 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"%\n\x14PullAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"y\n\x15PullAppInputsResponse\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\"\\\n\x15PushAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12$\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x13.flwr.proto.Context\"\x18\n\x16PushAppOutputsResponseb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.appio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
28
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
29
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_start=109
30
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_end=262
31
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_start=265
32
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_end=469
33
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=394
34
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=469
35
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_start=471
36
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_end=547
37
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_start=549
38
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_end=672
39
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_start=674
40
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_end=711
41
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_start=713
42
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_end=834
43
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_start=836
44
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_end=928
45
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_start=930
46
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_end=954
47
+ # @@protoc_insertion_point(module_scope)
@@ -20,9 +20,11 @@ class PushAppMessagesRequest(google.protobuf.message.Message):
20
20
  PushAppMessages messages
21
21
  """
22
22
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
23
+ TOKEN_FIELD_NUMBER: builtins.int
23
24
  MESSAGES_LIST_FIELD_NUMBER: builtins.int
24
25
  RUN_ID_FIELD_NUMBER: builtins.int
25
26
  MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
27
+ token: typing.Text
26
28
  @property
27
29
  def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
28
30
  run_id: builtins.int
@@ -30,11 +32,12 @@ class PushAppMessagesRequest(google.protobuf.message.Message):
30
32
  def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
31
33
  def __init__(self,
32
34
  *,
35
+ token: typing.Text = ...,
33
36
  messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
34
37
  run_id: builtins.int = ...,
35
38
  message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
36
39
  ) -> None: ...
37
- def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
40
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id","token",b"token"]) -> None: ...
38
41
  global___PushAppMessagesRequest = PushAppMessagesRequest
39
42
 
40
43
  class PushAppMessagesResponse(google.protobuf.message.Message):
@@ -71,55 +74,48 @@ global___PushAppMessagesResponse = PushAppMessagesResponse
71
74
  class PullAppMessagesRequest(google.protobuf.message.Message):
72
75
  """PullAppMessages messages"""
73
76
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
77
+ TOKEN_FIELD_NUMBER: builtins.int
74
78
  MESSAGE_IDS_FIELD_NUMBER: builtins.int
75
79
  RUN_ID_FIELD_NUMBER: builtins.int
80
+ token: typing.Text
76
81
  @property
77
82
  def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
78
83
  run_id: builtins.int
79
84
  def __init__(self,
80
85
  *,
86
+ token: typing.Text = ...,
81
87
  message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
82
88
  run_id: builtins.int = ...,
83
89
  ) -> None: ...
84
- def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
90
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id","token",b"token"]) -> None: ...
85
91
  global___PullAppMessagesRequest = PullAppMessagesRequest
86
92
 
87
93
  class PullAppMessagesResponse(google.protobuf.message.Message):
88
94
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
89
- class ObjectsToPullEntry(google.protobuf.message.Message):
90
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
91
- KEY_FIELD_NUMBER: builtins.int
92
- VALUE_FIELD_NUMBER: builtins.int
93
- key: typing.Text
94
- @property
95
- def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
96
- def __init__(self,
97
- *,
98
- key: typing.Text = ...,
99
- value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
100
- ) -> None: ...
101
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
102
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
103
-
104
95
  MESSAGES_LIST_FIELD_NUMBER: builtins.int
105
- OBJECTS_TO_PULL_FIELD_NUMBER: builtins.int
96
+ MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
106
97
  @property
107
98
  def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
108
99
  @property
109
- def objects_to_pull(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
100
+ def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
110
101
  def __init__(self,
111
102
  *,
112
103
  messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
113
- objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
104
+ message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
114
105
  ) -> None: ...
115
- def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull"]) -> None: ...
106
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list"]) -> None: ...
116
107
  global___PullAppMessagesResponse = PullAppMessagesResponse
117
108
 
118
109
  class PullAppInputsRequest(google.protobuf.message.Message):
119
110
  """PullAppInputs messages"""
120
111
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
112
+ TOKEN_FIELD_NUMBER: builtins.int
113
+ token: typing.Text
121
114
  def __init__(self,
115
+ *,
116
+ token: typing.Text = ...,
122
117
  ) -> None: ...
118
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
123
119
  global___PullAppInputsRequest = PullAppInputsRequest
124
120
 
125
121
  class PullAppInputsResponse(google.protobuf.message.Message):
@@ -146,18 +142,21 @@ global___PullAppInputsResponse = PullAppInputsResponse
146
142
  class PushAppOutputsRequest(google.protobuf.message.Message):
147
143
  """PushAppInputs messages"""
148
144
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
145
+ TOKEN_FIELD_NUMBER: builtins.int
149
146
  RUN_ID_FIELD_NUMBER: builtins.int
150
147
  CONTEXT_FIELD_NUMBER: builtins.int
148
+ token: typing.Text
151
149
  run_id: builtins.int
152
150
  @property
153
151
  def context(self) -> flwr.proto.message_pb2.Context: ...
154
152
  def __init__(self,
155
153
  *,
154
+ token: typing.Text = ...,
156
155
  run_id: builtins.int = ...,
157
156
  context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
158
157
  ) -> None: ...
159
158
  def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
160
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
159
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id","token",b"token"]) -> None: ...
161
160
  global___PushAppOutputsRequest = PushAppOutputsRequest
162
161
 
163
162
  class PushAppOutputsResponse(google.protobuf.message.Message):
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/clientappio.proto
4
+ # Protobuf Python Version: 4.25.1
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
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
16
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
17
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x16\x66lwr/proto/appio.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t2\xec\x06\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\\\n\x13PullClientAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12_\n\x14PushClientAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12X\n\x0bPushMessage\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12X\n\x0bPullMessage\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
26
+ if _descriptor._USE_C_DESCRIPTORS == False:
27
+ DESCRIPTOR._options = None
28
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_start=138
29
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_end=175
30
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_start=177
31
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_end=232
32
+ _globals['_REQUESTTOKENREQUEST']._serialized_start=234
33
+ _globals['_REQUESTTOKENREQUEST']._serialized_end=271
34
+ _globals['_REQUESTTOKENRESPONSE']._serialized_start=273
35
+ _globals['_REQUESTTOKENRESPONSE']._serialized_end=310
36
+ _globals['_CLIENTAPPIO']._serialized_start=313
37
+ _globals['_CLIENTAPPIO']._serialized_end=1189
38
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,54 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import google.protobuf.descriptor
7
+ import google.protobuf.internal.containers
8
+ import google.protobuf.message
9
+ import typing
10
+ import typing_extensions
11
+
12
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
13
+
14
+ class GetRunIdsWithPendingMessagesRequest(google.protobuf.message.Message):
15
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
16
+ def __init__(self,
17
+ ) -> None: ...
18
+ global___GetRunIdsWithPendingMessagesRequest = GetRunIdsWithPendingMessagesRequest
19
+
20
+ class GetRunIdsWithPendingMessagesResponse(google.protobuf.message.Message):
21
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
22
+ RUN_IDS_FIELD_NUMBER: builtins.int
23
+ @property
24
+ def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
25
+ """List of run IDs"""
26
+ pass
27
+ def __init__(self,
28
+ *,
29
+ run_ids: typing.Optional[typing.Iterable[builtins.int]] = ...,
30
+ ) -> None: ...
31
+ def ClearField(self, field_name: typing_extensions.Literal["run_ids",b"run_ids"]) -> None: ...
32
+ global___GetRunIdsWithPendingMessagesResponse = GetRunIdsWithPendingMessagesResponse
33
+
34
+ class RequestTokenRequest(google.protobuf.message.Message):
35
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
36
+ RUN_ID_FIELD_NUMBER: builtins.int
37
+ run_id: builtins.int
38
+ def __init__(self,
39
+ *,
40
+ run_id: builtins.int = ...,
41
+ ) -> None: ...
42
+ def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
43
+ global___RequestTokenRequest = RequestTokenRequest
44
+
45
+ class RequestTokenResponse(google.protobuf.message.Message):
46
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
47
+ TOKEN_FIELD_NUMBER: builtins.int
48
+ token: typing.Text
49
+ def __init__(self,
50
+ *,
51
+ token: typing.Text = ...,
52
+ ) -> None: ...
53
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
54
+ global___RequestTokenResponse = RequestTokenResponse