flwr-nightly 1.11.0.dev20240809__tar.gz → 1.11.0.dev20240812__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 (287) hide show
  1. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/PKG-INFO +2 -2
  2. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/pyproject.toml +3 -2
  3. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/run/run.py +9 -6
  4. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/supernode/__init__.py +2 -0
  5. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/supernode/app.py +25 -0
  6. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/clientappio_pb2.py +41 -0
  7. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/clientappio_pb2.pyi +110 -0
  8. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/clientappio_pb2_grpc.py +101 -0
  9. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/clientappio_pb2_grpc.pyi +40 -0
  10. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/message_pb2.py +41 -0
  11. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/message_pb2.pyi +122 -0
  12. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/task_pb2_grpc.py +4 -0
  13. flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/task_pb2_grpc.pyi +4 -0
  14. flwr_nightly-1.11.0.dev20240812/src/py/flwr/server/superlink/ffs/__init__.py +24 -0
  15. flwr_nightly-1.11.0.dev20240812/src/py/flwr/server/superlink/ffs/disk_ffs.py +104 -0
  16. flwr_nightly-1.11.0.dev20240812/src/py/flwr/server/superlink/ffs/ffs.py +79 -0
  17. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/LICENSE +0 -0
  18. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/README.md +0 -0
  19. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/__init__.py +0 -0
  20. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/__init__.py +0 -0
  21. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/app.py +0 -0
  22. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/build.py +0 -0
  23. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/config_utils.py +0 -0
  24. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/example.py +0 -0
  25. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/install.py +0 -0
  26. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/__init__.py +0 -0
  27. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/new.py +0 -0
  28. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  29. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  30. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  31. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  32. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  33. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  34. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  35. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  36. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  37. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  38. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  39. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  40. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  41. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  42. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  43. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +0 -0
  44. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +0 -0
  45. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +0 -0
  46. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  47. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  48. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +0 -0
  49. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +0 -0
  50. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  51. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  52. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  53. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  54. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  55. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  56. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  57. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  58. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  59. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  60. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  61. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  62. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  63. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  64. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  65. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  66. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  67. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  68. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  69. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  70. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/run/__init__.py +0 -0
  71. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/cli/utils.py +0 -0
  72. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/__init__.py +0 -0
  73. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/app.py +0 -0
  74. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/client.py +0 -0
  75. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/client_app.py +0 -0
  76. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  77. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  78. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  79. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  80. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_client/connection.py +0 -0
  81. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  82. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  83. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  84. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  85. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/heartbeat.py +0 -0
  86. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/message_handler/__init__.py +0 -0
  87. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  88. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  89. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/__init__.py +0 -0
  90. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  91. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/comms_mods.py +0 -0
  92. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  93. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  94. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  95. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  96. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/mod/utils.py +0 -0
  97. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/node_state.py +0 -0
  98. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/node_state_tests.py +0 -0
  99. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/numpy_client.py +0 -0
  100. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/rest_client/__init__.py +0 -0
  101. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/rest_client/connection.py +0 -0
  102. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/client/typing.py +0 -0
  103. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/__init__.py +0 -0
  104. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/address.py +0 -0
  105. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/config.py +0 -0
  106. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/constant.py +0 -0
  107. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/context.py +0 -0
  108. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/date.py +0 -0
  109. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/differential_privacy.py +0 -0
  110. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  111. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/dp.py +0 -0
  112. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/exit_handlers.py +0 -0
  113. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/grpc.py +0 -0
  114. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/logger.py +0 -0
  115. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/message.py +0 -0
  116. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/object_ref.py +0 -0
  117. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/parameter.py +0 -0
  118. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/pyproject.py +0 -0
  119. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/__init__.py +0 -0
  120. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/configsrecord.py +0 -0
  121. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/conversion_utils.py +0 -0
  122. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/metricsrecord.py +0 -0
  123. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/parametersrecord.py +0 -0
  124. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/recordset.py +0 -0
  125. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/record/typeddict.py +0 -0
  126. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/recordset_compat.py +0 -0
  127. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/retry_invoker.py +0 -0
  128. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  129. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  130. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  131. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  132. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  133. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  134. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  135. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  136. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/serde.py +0 -0
  137. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/telemetry.py +0 -0
  138. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/typing.py +0 -0
  139. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/common/version.py +0 -0
  140. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/__init__.py +0 -0
  141. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/common_pb2.py +0 -0
  142. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/common_pb2.pyi +0 -0
  143. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
  144. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
  145. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/driver_pb2.py +0 -0
  146. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  147. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  148. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  149. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/error_pb2.py +0 -0
  150. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/error_pb2.pyi +0 -0
  151. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  152. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  153. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/exec_pb2.py +0 -0
  154. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  155. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  156. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  157. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fab_pb2.py +0 -0
  158. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  159. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  160. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  161. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fleet_pb2.py +0 -0
  162. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  163. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  164. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  165. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  166. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  167. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  168. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  169. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/node_pb2_grpc.py → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  170. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/node_pb2_grpc.pyi → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  171. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/node_pb2.py +0 -0
  172. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/node_pb2.pyi +0 -0
  173. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/recordset_pb2_grpc.py → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  174. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/recordset_pb2_grpc.pyi → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  175. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/recordset_pb2.py +0 -0
  176. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  177. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/run_pb2_grpc.py → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  178. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/run_pb2_grpc.pyi → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  179. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/run_pb2.py +0 -0
  180. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/run_pb2.pyi +0 -0
  181. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/task_pb2_grpc.py → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  182. /flwr_nightly-1.11.0.dev20240809/src/py/flwr/proto/task_pb2_grpc.pyi → /flwr_nightly-1.11.0.dev20240812/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  183. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/task_pb2.py +0 -0
  184. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/task_pb2.pyi +0 -0
  185. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/transport_pb2.py +0 -0
  186. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  187. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  188. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  189. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/py.typed +0 -0
  190. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/__init__.py +0 -0
  191. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/app.py +0 -0
  192. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/client_manager.py +0 -0
  193. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/client_proxy.py +0 -0
  194. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/compat/__init__.py +0 -0
  195. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/compat/app.py +0 -0
  196. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/compat/app_utils.py +0 -0
  197. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  198. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/compat/legacy_context.py +0 -0
  199. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/criterion.py +0 -0
  200. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/driver/__init__.py +0 -0
  201. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/driver/driver.py +0 -0
  202. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  203. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  204. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/history.py +0 -0
  205. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/run_serverapp.py +0 -0
  206. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/server.py +0 -0
  207. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/server_app.py +0 -0
  208. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/server_config.py +0 -0
  209. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/serverapp_components.py +0 -0
  210. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/__init__.py +0 -0
  211. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/aggregate.py +0 -0
  212. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/bulyan.py +0 -0
  213. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  214. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  215. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  216. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  217. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  218. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  219. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedadam.py +0 -0
  220. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedavg.py +0 -0
  221. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  222. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  223. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  224. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedopt.py +0 -0
  225. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedprox.py +0 -0
  226. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  227. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  228. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  229. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  230. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  231. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/krum.py +0 -0
  232. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  233. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/strategy/strategy.py +0 -0
  234. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/__init__.py +0 -0
  235. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  236. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  237. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  238. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  239. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  240. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  241. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  242. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  243. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  244. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  245. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  246. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  247. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  248. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  249. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  250. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  251. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  252. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  253. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  254. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  255. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  256. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  257. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  258. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  259. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  260. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  261. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/state.py +0 -0
  262. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  263. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/superlink/state/utils.py +0 -0
  264. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/typing.py +0 -0
  265. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/utils/__init__.py +0 -0
  266. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/utils/tensorboard.py +0 -0
  267. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/utils/validator.py +0 -0
  268. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/__init__.py +0 -0
  269. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/constant.py +0 -0
  270. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  271. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  272. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  273. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  274. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/__init__.py +0 -0
  275. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/app.py +0 -0
  276. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  277. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  278. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  279. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  280. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/simulation/run_simulation.py +0 -0
  281. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/__init__.py +0 -0
  282. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/app.py +0 -0
  283. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/deployment.py +0 -0
  284. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/exec_grpc.py +0 -0
  285. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/exec_servicer.py +0 -0
  286. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/src/py/flwr/superexec/executor.py +0 -0
  287. {flwr_nightly-1.11.0.dev20240809 → flwr_nightly-1.11.0.dev20240812}/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.11.0.dev20240809
3
+ Version: 1.11.0.dev20240812
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -33,7 +33,7 @@ Classifier: Typing :: Typed
33
33
  Provides-Extra: rest
34
34
  Provides-Extra: simulation
35
35
  Requires-Dist: cryptography (>=42.0.4,<43.0.0)
36
- Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2,!=1.65.1)
36
+ Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2,!=1.65.1,!=1.65.2,!=1.65.4)
37
37
  Requires-Dist: iterators (>=0.0.2,<0.0.3)
38
38
  Requires-Dist: numpy (>=1.21.0,<2.0.0)
39
39
  Requires-Dist: pathspec (>=0.12.1,<0.13.0)
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.11.0.dev20240809"
7
+ version = "1.11.0.dev20240812"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -59,12 +59,13 @@ flower-supernode = "flwr.client:run_supernode"
59
59
  flower-client-app = "flwr.client:run_client_app"
60
60
  flower-server-app = "flwr.server:run_server_app"
61
61
  flower-simulation = "flwr.simulation.run_simulation:run_simulation_from_cli"
62
+ flwr-clientapp = "flwr.client.supernode:flwr_clientapp"
62
63
 
63
64
  [tool.poetry.dependencies]
64
65
  python = "^3.8"
65
66
  # Mandatory dependencies
66
67
  numpy = "^1.21.0"
67
- grpcio = "^1.60.0,!=1.64.2,!=1.65.1"
68
+ grpcio = "^1.60.0,!=1.64.2,!=1.65.1,!=1.65.2,!=1.65.4"
68
69
  protobuf = "^4.25.2"
69
70
  cryptography = "^42.0.4"
70
71
  pycryptodome = "^3.18.0"
@@ -109,14 +109,14 @@ def run(
109
109
  raise typer.Exit(code=1)
110
110
 
111
111
  if "address" in federation_config:
112
- _run_with_superexec(federation_config, app, config_overrides)
112
+ _run_with_superexec(app, federation_config, config_overrides)
113
113
  else:
114
- _run_without_superexec(app, federation_config, federation, config_overrides)
114
+ _run_without_superexec(app, federation_config, config_overrides, federation)
115
115
 
116
116
 
117
117
  def _run_with_superexec(
118
- federation_config: Dict[str, Any],
119
118
  app: Optional[Path],
119
+ federation_config: Dict[str, Any],
120
120
  config_overrides: Optional[List[str]],
121
121
  ) -> None:
122
122
 
@@ -162,10 +162,10 @@ def _run_with_superexec(
162
162
  channel.subscribe(on_channel_state_change)
163
163
  stub = ExecStub(channel)
164
164
 
165
- fab_path = build(app)
165
+ fab_path = Path(build(app))
166
166
 
167
167
  req = StartRunRequest(
168
- fab_file=Path(fab_path).read_bytes(),
168
+ fab_file=fab_path.read_bytes(),
169
169
  override_config=user_config_to_proto(
170
170
  parse_config_args(config_overrides, separator=",")
171
171
  ),
@@ -174,14 +174,17 @@ def _run_with_superexec(
174
174
  ),
175
175
  )
176
176
  res = stub.StartRun(req)
177
+
178
+ # Delete FAB file once it has been sent to the SuperExec
179
+ fab_path.unlink()
177
180
  typer.secho(f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN)
178
181
 
179
182
 
180
183
  def _run_without_superexec(
181
184
  app: Optional[Path],
182
185
  federation_config: Dict[str, Any],
183
- federation: str,
184
186
  config_overrides: Optional[List[str]],
187
+ federation: str,
185
188
  ) -> None:
186
189
  try:
187
190
  num_supernodes = federation_config["options"]["num-supernodes"]
@@ -15,10 +15,12 @@
15
15
  """Flower SuperNode."""
16
16
 
17
17
 
18
+ from .app import flwr_clientapp as flwr_clientapp
18
19
  from .app import run_client_app as run_client_app
19
20
  from .app import run_supernode as run_supernode
20
21
 
21
22
  __all__ = [
23
+ "flwr_clientapp",
22
24
  "run_client_app",
23
25
  "run_supernode",
24
26
  ]
@@ -120,6 +120,31 @@ def run_client_app() -> None:
120
120
  register_exit_handlers(event_type=EventType.RUN_CLIENT_APP_LEAVE)
121
121
 
122
122
 
123
+ def flwr_clientapp() -> None:
124
+ """Run process-isolated Flower ClientApp."""
125
+ log(INFO, "Starting Flower ClientApp")
126
+
127
+ parser = argparse.ArgumentParser(
128
+ description="Run a Flower ClientApp",
129
+ )
130
+ parser.add_argument(
131
+ "--address",
132
+ help="Address of SuperNode ClientAppIo gRPC servicer",
133
+ )
134
+ parser.add_argument(
135
+ "--token",
136
+ help="Unique token generated by SuperNode for each ClientApp execution",
137
+ )
138
+ args = parser.parse_args()
139
+ log(
140
+ DEBUG,
141
+ "Staring isolated `ClientApp` connected to SuperNode ClientAppIo at %s "
142
+ "with the token %s",
143
+ args.address,
144
+ args.token,
145
+ )
146
+
147
+
123
148
  def _warn_deprecated_server_arg(args: argparse.Namespace) -> None:
124
149
  """Warn about the deprecated argument `--server`."""
125
150
  if args.server != ADDRESS_FLEET_API_GRPC_RERE:
@@ -0,0 +1,41 @@
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.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
+ 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
+
19
+
20
+ 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\"W\n\x15\x43lientAppOutputStatus\x12-\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1f.flwr.proto.ClientAppOutputCode\x12\x0f\n\x07message\x18\x02 \x01(\t\"+\n\x1aPullClientAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\x12\"\x87\x01\n\x1bPullClientAppInputsResponse\x12$\n\x07message\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Run\"x\n\x1bPushClientAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\x12\x12$\n\x07message\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x13.flwr.proto.Context\"Q\n\x1cPushClientAppOutputsResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32!.flwr.proto.ClientAppOutputStatus*L\n\x13\x43lientAppOutputCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x01\x12\x11\n\rUNKNOWN_ERROR\x10\x02\x32\xe4\x01\n\x0b\x43lientAppIo\x12h\n\x13PullClientAppInputs\x12&.flwr.proto.PullClientAppInputsRequest\x1a\'.flwr.proto.PullClientAppInputsResponse\"\x00\x12k\n\x14PushClientAppOutputs\x12\'.flwr.proto.PushClientAppOutputsRequest\x1a(.flwr.proto.PushClientAppOutputsResponse\"\x00\x62\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_start=591
28
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_end=667
29
+ _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_start=114
30
+ _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_end=201
31
+ _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_start=203
32
+ _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_end=246
33
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_start=249
34
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_end=384
35
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_start=386
36
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_end=506
37
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_start=508
38
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_end=589
39
+ _globals['_CLIENTAPPIO']._serialized_start=670
40
+ _globals['_CLIENTAPPIO']._serialized_end=898
41
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,110 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.message_pb2
7
+ import flwr.proto.run_pb2
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.internal.enum_type_wrapper
10
+ import google.protobuf.message
11
+ import typing
12
+ import typing_extensions
13
+
14
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
15
+
16
+ class _ClientAppOutputCode:
17
+ ValueType = typing.NewType('ValueType', builtins.int)
18
+ V: typing_extensions.TypeAlias = ValueType
19
+ class _ClientAppOutputCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ClientAppOutputCode.ValueType], builtins.type):
20
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
21
+ SUCCESS: _ClientAppOutputCode.ValueType # 0
22
+ DEADLINE_EXCEEDED: _ClientAppOutputCode.ValueType # 1
23
+ UNKNOWN_ERROR: _ClientAppOutputCode.ValueType # 2
24
+ class ClientAppOutputCode(_ClientAppOutputCode, metaclass=_ClientAppOutputCodeEnumTypeWrapper):
25
+ pass
26
+
27
+ SUCCESS: ClientAppOutputCode.ValueType # 0
28
+ DEADLINE_EXCEEDED: ClientAppOutputCode.ValueType # 1
29
+ UNKNOWN_ERROR: ClientAppOutputCode.ValueType # 2
30
+ global___ClientAppOutputCode = ClientAppOutputCode
31
+
32
+
33
+ class ClientAppOutputStatus(google.protobuf.message.Message):
34
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
35
+ CODE_FIELD_NUMBER: builtins.int
36
+ MESSAGE_FIELD_NUMBER: builtins.int
37
+ code: global___ClientAppOutputCode.ValueType
38
+ message: typing.Text
39
+ def __init__(self,
40
+ *,
41
+ code: global___ClientAppOutputCode.ValueType = ...,
42
+ message: typing.Text = ...,
43
+ ) -> None: ...
44
+ def ClearField(self, field_name: typing_extensions.Literal["code",b"code","message",b"message"]) -> None: ...
45
+ global___ClientAppOutputStatus = ClientAppOutputStatus
46
+
47
+ class PullClientAppInputsRequest(google.protobuf.message.Message):
48
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
49
+ TOKEN_FIELD_NUMBER: builtins.int
50
+ token: builtins.int
51
+ def __init__(self,
52
+ *,
53
+ token: builtins.int = ...,
54
+ ) -> None: ...
55
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
56
+ global___PullClientAppInputsRequest = PullClientAppInputsRequest
57
+
58
+ class PullClientAppInputsResponse(google.protobuf.message.Message):
59
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
60
+ MESSAGE_FIELD_NUMBER: builtins.int
61
+ CONTEXT_FIELD_NUMBER: builtins.int
62
+ RUN_FIELD_NUMBER: builtins.int
63
+ @property
64
+ def message(self) -> flwr.proto.message_pb2.Message: ...
65
+ @property
66
+ def context(self) -> flwr.proto.message_pb2.Context: ...
67
+ @property
68
+ def run(self) -> flwr.proto.run_pb2.Run: ...
69
+ def __init__(self,
70
+ *,
71
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
72
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
73
+ run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
74
+ ) -> None: ...
75
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","run",b"run"]) -> builtins.bool: ...
76
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","run",b"run"]) -> None: ...
77
+ global___PullClientAppInputsResponse = PullClientAppInputsResponse
78
+
79
+ class PushClientAppOutputsRequest(google.protobuf.message.Message):
80
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
81
+ TOKEN_FIELD_NUMBER: builtins.int
82
+ MESSAGE_FIELD_NUMBER: builtins.int
83
+ CONTEXT_FIELD_NUMBER: builtins.int
84
+ token: builtins.int
85
+ @property
86
+ def message(self) -> flwr.proto.message_pb2.Message: ...
87
+ @property
88
+ def context(self) -> flwr.proto.message_pb2.Context: ...
89
+ def __init__(self,
90
+ *,
91
+ token: builtins.int = ...,
92
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
93
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
94
+ ) -> None: ...
95
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message"]) -> builtins.bool: ...
96
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","token",b"token"]) -> None: ...
97
+ global___PushClientAppOutputsRequest = PushClientAppOutputsRequest
98
+
99
+ class PushClientAppOutputsResponse(google.protobuf.message.Message):
100
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
101
+ STATUS_FIELD_NUMBER: builtins.int
102
+ @property
103
+ def status(self) -> global___ClientAppOutputStatus: ...
104
+ def __init__(self,
105
+ *,
106
+ status: typing.Optional[global___ClientAppOutputStatus] = ...,
107
+ ) -> None: ...
108
+ def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
109
+ def ClearField(self, field_name: typing_extensions.Literal["status",b"status"]) -> None: ...
110
+ global___PushClientAppOutputsResponse = PushClientAppOutputsResponse
@@ -0,0 +1,101 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from flwr.proto import clientappio_pb2 as flwr_dot_proto_dot_clientappio__pb2
6
+
7
+
8
+ class ClientAppIoStub(object):
9
+ """Missing associated documentation comment in .proto file."""
10
+
11
+ def __init__(self, channel):
12
+ """Constructor.
13
+
14
+ Args:
15
+ channel: A grpc.Channel.
16
+ """
17
+ self.PullClientAppInputs = channel.unary_unary(
18
+ '/flwr.proto.ClientAppIo/PullClientAppInputs',
19
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.SerializeToString,
20
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.FromString,
21
+ )
22
+ self.PushClientAppOutputs = channel.unary_unary(
23
+ '/flwr.proto.ClientAppIo/PushClientAppOutputs',
24
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
25
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
26
+ )
27
+
28
+
29
+ class ClientAppIoServicer(object):
30
+ """Missing associated documentation comment in .proto file."""
31
+
32
+ def PullClientAppInputs(self, request, context):
33
+ """Get Message, Context, and Run
34
+ """
35
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
36
+ context.set_details('Method not implemented!')
37
+ raise NotImplementedError('Method not implemented!')
38
+
39
+ def PushClientAppOutputs(self, request, context):
40
+ """Send updated Message and Context
41
+ """
42
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
43
+ context.set_details('Method not implemented!')
44
+ raise NotImplementedError('Method not implemented!')
45
+
46
+
47
+ def add_ClientAppIoServicer_to_server(servicer, server):
48
+ rpc_method_handlers = {
49
+ 'PullClientAppInputs': grpc.unary_unary_rpc_method_handler(
50
+ servicer.PullClientAppInputs,
51
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.FromString,
52
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.SerializeToString,
53
+ ),
54
+ 'PushClientAppOutputs': grpc.unary_unary_rpc_method_handler(
55
+ servicer.PushClientAppOutputs,
56
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.FromString,
57
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.SerializeToString,
58
+ ),
59
+ }
60
+ generic_handler = grpc.method_handlers_generic_handler(
61
+ 'flwr.proto.ClientAppIo', rpc_method_handlers)
62
+ server.add_generic_rpc_handlers((generic_handler,))
63
+
64
+
65
+ # This class is part of an EXPERIMENTAL API.
66
+ class ClientAppIo(object):
67
+ """Missing associated documentation comment in .proto file."""
68
+
69
+ @staticmethod
70
+ def PullClientAppInputs(request,
71
+ target,
72
+ options=(),
73
+ channel_credentials=None,
74
+ call_credentials=None,
75
+ insecure=False,
76
+ compression=None,
77
+ wait_for_ready=None,
78
+ timeout=None,
79
+ metadata=None):
80
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullClientAppInputs',
81
+ flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.SerializeToString,
82
+ flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.FromString,
83
+ options, channel_credentials,
84
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
85
+
86
+ @staticmethod
87
+ def PushClientAppOutputs(request,
88
+ target,
89
+ options=(),
90
+ channel_credentials=None,
91
+ call_credentials=None,
92
+ insecure=False,
93
+ compression=None,
94
+ wait_for_ready=None,
95
+ timeout=None,
96
+ metadata=None):
97
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushClientAppOutputs',
98
+ flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
99
+ flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
100
+ options, channel_credentials,
101
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,40 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import abc
6
+ import flwr.proto.clientappio_pb2
7
+ import grpc
8
+
9
+ class ClientAppIoStub:
10
+ def __init__(self, channel: grpc.Channel) -> None: ...
11
+ PullClientAppInputs: grpc.UnaryUnaryMultiCallable[
12
+ flwr.proto.clientappio_pb2.PullClientAppInputsRequest,
13
+ flwr.proto.clientappio_pb2.PullClientAppInputsResponse]
14
+ """Get Message, Context, and Run"""
15
+
16
+ PushClientAppOutputs: grpc.UnaryUnaryMultiCallable[
17
+ flwr.proto.clientappio_pb2.PushClientAppOutputsRequest,
18
+ flwr.proto.clientappio_pb2.PushClientAppOutputsResponse]
19
+ """Send updated Message and Context"""
20
+
21
+
22
+ class ClientAppIoServicer(metaclass=abc.ABCMeta):
23
+ @abc.abstractmethod
24
+ def PullClientAppInputs(self,
25
+ request: flwr.proto.clientappio_pb2.PullClientAppInputsRequest,
26
+ context: grpc.ServicerContext,
27
+ ) -> flwr.proto.clientappio_pb2.PullClientAppInputsResponse:
28
+ """Get Message, Context, and Run"""
29
+ pass
30
+
31
+ @abc.abstractmethod
32
+ def PushClientAppOutputs(self,
33
+ request: flwr.proto.clientappio_pb2.PushClientAppOutputsRequest,
34
+ context: grpc.ServicerContext,
35
+ ) -> flwr.proto.clientappio_pb2.PushClientAppOutputsResponse:
36
+ """Send updated Message and Context"""
37
+ pass
38
+
39
+
40
+ def add_ClientAppIoServicer_to_server(servicer: ClientAppIoServicer, server: grpc.Server) -> None: ...
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/message.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
+ from flwr.proto import error_pb2 as flwr_dot_proto_dot_error__pb2
16
+ from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
17
+ from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x1a\x66lwr/proto/transport.proto\"{\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12&\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xbf\x02\n\x07\x43ontext\x12\x0f\n\x07node_id\x18\x01 \x01(\x12\x12\x38\n\x0bnode_config\x18\x02 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12$\n\x05state\x18\x03 \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12\x36\n\nrun_config\x18\x04 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xa7\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x12\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x12\x12\x18\n\x10reply_to_message\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\tb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.message_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_CONTEXT_NODECONFIGENTRY']._options = None
28
+ _globals['_CONTEXT_NODECONFIGENTRY']._serialized_options = b'8\001'
29
+ _globals['_CONTEXT_RUNCONFIGENTRY']._options = None
30
+ _globals['_CONTEXT_RUNCONFIGENTRY']._serialized_options = b'8\001'
31
+ _globals['_MESSAGE']._serialized_start=120
32
+ _globals['_MESSAGE']._serialized_end=243
33
+ _globals['_CONTEXT']._serialized_start=246
34
+ _globals['_CONTEXT']._serialized_end=565
35
+ _globals['_CONTEXT_NODECONFIGENTRY']._serialized_start=426
36
+ _globals['_CONTEXT_NODECONFIGENTRY']._serialized_end=495
37
+ _globals['_CONTEXT_RUNCONFIGENTRY']._serialized_start=497
38
+ _globals['_CONTEXT_RUNCONFIGENTRY']._serialized_end=565
39
+ _globals['_METADATA']._serialized_start=568
40
+ _globals['_METADATA']._serialized_end=735
41
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,122 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.error_pb2
7
+ import flwr.proto.recordset_pb2
8
+ import flwr.proto.transport_pb2
9
+ import google.protobuf.descriptor
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.message
12
+ import typing
13
+ import typing_extensions
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ class Message(google.protobuf.message.Message):
18
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
19
+ METADATA_FIELD_NUMBER: builtins.int
20
+ CONTENT_FIELD_NUMBER: builtins.int
21
+ ERROR_FIELD_NUMBER: builtins.int
22
+ @property
23
+ def metadata(self) -> global___Metadata: ...
24
+ @property
25
+ def content(self) -> flwr.proto.recordset_pb2.RecordSet: ...
26
+ @property
27
+ def error(self) -> flwr.proto.error_pb2.Error: ...
28
+ def __init__(self,
29
+ *,
30
+ metadata: typing.Optional[global___Metadata] = ...,
31
+ content: typing.Optional[flwr.proto.recordset_pb2.RecordSet] = ...,
32
+ error: typing.Optional[flwr.proto.error_pb2.Error] = ...,
33
+ ) -> None: ...
34
+ def HasField(self, field_name: typing_extensions.Literal["content",b"content","error",b"error","metadata",b"metadata"]) -> builtins.bool: ...
35
+ def ClearField(self, field_name: typing_extensions.Literal["content",b"content","error",b"error","metadata",b"metadata"]) -> None: ...
36
+ global___Message = Message
37
+
38
+ class Context(google.protobuf.message.Message):
39
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
40
+ class NodeConfigEntry(google.protobuf.message.Message):
41
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
42
+ KEY_FIELD_NUMBER: builtins.int
43
+ VALUE_FIELD_NUMBER: builtins.int
44
+ key: typing.Text
45
+ @property
46
+ def value(self) -> flwr.proto.transport_pb2.Scalar: ...
47
+ def __init__(self,
48
+ *,
49
+ key: typing.Text = ...,
50
+ value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
51
+ ) -> None: ...
52
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
53
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
54
+
55
+ class RunConfigEntry(google.protobuf.message.Message):
56
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
57
+ KEY_FIELD_NUMBER: builtins.int
58
+ VALUE_FIELD_NUMBER: builtins.int
59
+ key: typing.Text
60
+ @property
61
+ def value(self) -> flwr.proto.transport_pb2.Scalar: ...
62
+ def __init__(self,
63
+ *,
64
+ key: typing.Text = ...,
65
+ value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
66
+ ) -> None: ...
67
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
68
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
69
+
70
+ NODE_ID_FIELD_NUMBER: builtins.int
71
+ NODE_CONFIG_FIELD_NUMBER: builtins.int
72
+ STATE_FIELD_NUMBER: builtins.int
73
+ RUN_CONFIG_FIELD_NUMBER: builtins.int
74
+ node_id: builtins.int
75
+ @property
76
+ def node_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
77
+ @property
78
+ def state(self) -> flwr.proto.recordset_pb2.RecordSet: ...
79
+ @property
80
+ def run_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
81
+ def __init__(self,
82
+ *,
83
+ node_id: builtins.int = ...,
84
+ node_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
85
+ state: typing.Optional[flwr.proto.recordset_pb2.RecordSet] = ...,
86
+ run_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
87
+ ) -> None: ...
88
+ def HasField(self, field_name: typing_extensions.Literal["state",b"state"]) -> builtins.bool: ...
89
+ def ClearField(self, field_name: typing_extensions.Literal["node_config",b"node_config","node_id",b"node_id","run_config",b"run_config","state",b"state"]) -> None: ...
90
+ global___Context = Context
91
+
92
+ class Metadata(google.protobuf.message.Message):
93
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
94
+ RUN_ID_FIELD_NUMBER: builtins.int
95
+ MESSAGE_ID_FIELD_NUMBER: builtins.int
96
+ SRC_NODE_ID_FIELD_NUMBER: builtins.int
97
+ DST_NODE_ID_FIELD_NUMBER: builtins.int
98
+ REPLY_TO_MESSAGE_FIELD_NUMBER: builtins.int
99
+ GROUP_ID_FIELD_NUMBER: builtins.int
100
+ TTL_FIELD_NUMBER: builtins.int
101
+ MESSAGE_TYPE_FIELD_NUMBER: builtins.int
102
+ run_id: builtins.int
103
+ message_id: typing.Text
104
+ src_node_id: builtins.int
105
+ dst_node_id: builtins.int
106
+ reply_to_message: typing.Text
107
+ group_id: typing.Text
108
+ ttl: builtins.float
109
+ message_type: typing.Text
110
+ def __init__(self,
111
+ *,
112
+ run_id: builtins.int = ...,
113
+ message_id: typing.Text = ...,
114
+ src_node_id: builtins.int = ...,
115
+ dst_node_id: builtins.int = ...,
116
+ reply_to_message: typing.Text = ...,
117
+ group_id: typing.Text = ...,
118
+ ttl: builtins.float = ...,
119
+ message_type: typing.Text = ...,
120
+ ) -> None: ...
121
+ def ClearField(self, field_name: typing_extensions.Literal["dst_node_id",b"dst_node_id","group_id",b"group_id","message_id",b"message_id","message_type",b"message_type","reply_to_message",b"reply_to_message","run_id",b"run_id","src_node_id",b"src_node_id","ttl",b"ttl"]) -> None: ...
122
+ global___Metadata = Metadata
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -0,0 +1,4 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
@@ -0,0 +1,24 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """Flower File Storage for large objects."""
16
+
17
+
18
+ from .disk_ffs import DiskFfs as DiskFfs
19
+ from .ffs import Ffs as Ffs
20
+
21
+ __all__ = [
22
+ "DiskFfs",
23
+ "Ffs",
24
+ ]