flwr-nightly 1.11.0.dev20240823__tar.gz → 1.11.0.dev20240826__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 (292) hide show
  1. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/PKG-INFO +2 -2
  2. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/README.md +1 -1
  3. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/pyproject.toml +1 -1
  4. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/app.py +0 -2
  5. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/app.py +13 -13
  6. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/run_serverapp.py +15 -1
  7. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +19 -8
  8. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +11 -11
  9. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/in_memory_state.py +15 -15
  10. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/sqlite_state.py +10 -10
  11. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/state.py +8 -8
  12. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/LICENSE +0 -0
  13. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/__init__.py +0 -0
  14. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/__init__.py +0 -0
  15. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/build.py +0 -0
  16. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/config_utils.py +0 -0
  17. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/example.py +0 -0
  18. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/install.py +0 -0
  19. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/__init__.py +0 -0
  20. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/new.py +0 -0
  21. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  22. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  23. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  24. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  25. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  26. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  27. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  28. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  29. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  30. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  31. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  32. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  33. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  34. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  35. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  36. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +0 -0
  37. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +0 -0
  38. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +0 -0
  39. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  40. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  41. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +0 -0
  42. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +0 -0
  43. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  44. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  45. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  46. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  47. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  48. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  49. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  50. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  51. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  52. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  53. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  54. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  55. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  56. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  57. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  58. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  59. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  60. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  61. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  62. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  63. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/run/__init__.py +0 -0
  64. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/run/run.py +0 -0
  65. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/cli/utils.py +0 -0
  66. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/__init__.py +0 -0
  67. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/app.py +0 -0
  68. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/client.py +0 -0
  69. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/client_app.py +0 -0
  70. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/clientapp/__init__.py +0 -0
  71. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/clientapp/app.py +0 -0
  72. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
  73. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/clientapp/utils.py +0 -0
  74. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  75. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  76. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  77. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  78. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_client/connection.py +0 -0
  79. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  80. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  81. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  82. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  83. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/heartbeat.py +0 -0
  84. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/message_handler/__init__.py +0 -0
  85. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  86. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  87. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/__init__.py +0 -0
  88. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  89. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/comms_mods.py +0 -0
  90. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  91. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  92. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  93. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  94. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/mod/utils.py +0 -0
  95. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/node_state.py +0 -0
  96. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/node_state_tests.py +0 -0
  97. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/numpy_client.py +0 -0
  98. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/rest_client/__init__.py +0 -0
  99. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/rest_client/connection.py +0 -0
  100. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/supernode/__init__.py +0 -0
  101. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/supernode/app.py +0 -0
  102. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/client/typing.py +0 -0
  103. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/__init__.py +0 -0
  104. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/address.py +0 -0
  105. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/config.py +0 -0
  106. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/constant.py +0 -0
  107. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/context.py +0 -0
  108. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/date.py +0 -0
  109. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/differential_privacy.py +0 -0
  110. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  111. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/dp.py +0 -0
  112. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/exit_handlers.py +0 -0
  113. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/grpc.py +0 -0
  114. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/logger.py +0 -0
  115. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/message.py +0 -0
  116. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/object_ref.py +0 -0
  117. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/parameter.py +0 -0
  118. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/pyproject.py +0 -0
  119. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/__init__.py +0 -0
  120. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/configsrecord.py +0 -0
  121. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/conversion_utils.py +0 -0
  122. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/metricsrecord.py +0 -0
  123. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/parametersrecord.py +0 -0
  124. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/recordset.py +0 -0
  125. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/record/typeddict.py +0 -0
  126. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/recordset_compat.py +0 -0
  127. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/retry_invoker.py +0 -0
  128. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  129. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  130. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  131. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  132. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  133. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  134. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  135. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  136. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/serde.py +0 -0
  137. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/telemetry.py +0 -0
  138. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/typing.py +0 -0
  139. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/common/version.py +0 -0
  140. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/__init__.py +0 -0
  141. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/clientappio_pb2.py +0 -0
  142. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
  143. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  144. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  145. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/common_pb2.py +0 -0
  146. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/common_pb2.pyi +0 -0
  147. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
  148. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
  149. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/driver_pb2.py +0 -0
  150. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  151. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  152. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  153. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/error_pb2.py +0 -0
  154. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/error_pb2.pyi +0 -0
  155. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  156. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  157. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/exec_pb2.py +0 -0
  158. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/exec_pb2.pyi +0 -0
  159. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
  160. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
  161. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fab_pb2.py +0 -0
  162. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fab_pb2.pyi +0 -0
  163. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
  164. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  165. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fleet_pb2.py +0 -0
  166. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  167. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  168. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  169. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  170. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  171. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  172. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  173. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/message_pb2.py +0 -0
  174. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/message_pb2.pyi +0 -0
  175. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
  176. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  177. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/node_pb2.py +0 -0
  178. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/node_pb2.pyi +0 -0
  179. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  180. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  181. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/recordset_pb2.py +0 -0
  182. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  183. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  184. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  185. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/run_pb2.py +0 -0
  186. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/run_pb2.pyi +0 -0
  187. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
  188. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  189. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/task_pb2.py +0 -0
  190. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/task_pb2.pyi +0 -0
  191. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  192. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  193. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/transport_pb2.py +0 -0
  194. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  195. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  196. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  197. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/py.typed +0 -0
  198. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/__init__.py +0 -0
  199. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/client_manager.py +0 -0
  200. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/client_proxy.py +0 -0
  201. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/compat/__init__.py +0 -0
  202. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/compat/app.py +0 -0
  203. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/compat/app_utils.py +0 -0
  204. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  205. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/compat/legacy_context.py +0 -0
  206. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/criterion.py +0 -0
  207. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/driver/__init__.py +0 -0
  208. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/driver/driver.py +0 -0
  209. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  210. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  211. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/history.py +0 -0
  212. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/server.py +0 -0
  213. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/server_app.py +0 -0
  214. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/server_config.py +0 -0
  215. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/serverapp_components.py +0 -0
  216. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/__init__.py +0 -0
  217. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/aggregate.py +0 -0
  218. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/bulyan.py +0 -0
  219. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  220. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  221. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  222. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  223. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  224. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  225. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedadam.py +0 -0
  226. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedavg.py +0 -0
  227. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  228. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  229. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  230. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedopt.py +0 -0
  231. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedprox.py +0 -0
  232. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  233. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  234. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  235. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  236. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  237. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/krum.py +0 -0
  238. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  239. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/strategy/strategy.py +0 -0
  240. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/__init__.py +0 -0
  241. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  242. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  243. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  244. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
  245. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
  246. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
  247. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
  248. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  249. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  250. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  251. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  252. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  253. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  254. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  255. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  256. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  257. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  258. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  259. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  260. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  261. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  262. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  263. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  264. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  265. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  266. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  267. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  268. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/superlink/state/utils.py +0 -0
  269. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/typing.py +0 -0
  270. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/utils/__init__.py +0 -0
  271. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/utils/tensorboard.py +0 -0
  272. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/utils/validator.py +0 -0
  273. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/__init__.py +0 -0
  274. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/constant.py +0 -0
  275. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  276. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  277. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  278. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  279. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/__init__.py +0 -0
  280. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/app.py +0 -0
  281. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  282. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  283. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  284. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  285. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/simulation/run_simulation.py +0 -0
  286. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/__init__.py +0 -0
  287. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/app.py +0 -0
  288. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/deployment.py +0 -0
  289. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/exec_grpc.py +0 -0
  290. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/exec_servicer.py +0 -0
  291. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/src/py/flwr/superexec/executor.py +0 -0
  292. {flwr_nightly-1.11.0.dev20240823 → flwr_nightly-1.11.0.dev20240826}/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.dev20240823
3
+ Version: 1.11.0.dev20240826
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -196,7 +196,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
196
196
  - [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
197
197
  - [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
198
198
  - [Federated Finetuning of Large Language Model](https://github.com/adap/flower/tree/main/examples/llm-flowertune)
199
- - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/vit-finetune)
199
+ - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/flowertune-vit)
200
200
  - [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
201
201
  - [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
202
202
  - Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
@@ -144,7 +144,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
144
144
  - [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
145
145
  - [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
146
146
  - [Federated Finetuning of Large Language Model](https://github.com/adap/flower/tree/main/examples/llm-flowertune)
147
- - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/vit-finetune)
147
+ - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/flowertune-vit)
148
148
  - [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
149
149
  - [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
150
150
  - Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
@@ -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.dev20240823"
7
+ version = "1.11.0.dev20240826"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -18,7 +18,6 @@ import typer
18
18
  from typer.main import get_command
19
19
 
20
20
  from .build import build
21
- from .example import example
22
21
  from .install import install
23
22
  from .new import new
24
23
  from .run import run
@@ -33,7 +32,6 @@ app = typer.Typer(
33
32
  )
34
33
 
35
34
  app.command()(new)
36
- app.command()(example)
37
35
  app.command()(run)
38
36
  app.command()(build)
39
37
  app.command()(install)
@@ -278,24 +278,24 @@ def run_superlink() -> None:
278
278
  fleet_thread.start()
279
279
  bckg_threads.append(fleet_thread)
280
280
  elif args.fleet_api_type == TRANSPORT_TYPE_GRPC_RERE:
281
- maybe_keys = _try_setup_client_authentication(args, certificates)
281
+ maybe_keys = _try_setup_node_authentication(args, certificates)
282
282
  interceptors: Optional[Sequence[grpc.ServerInterceptor]] = None
283
283
  if maybe_keys is not None:
284
284
  (
285
- client_public_keys,
285
+ node_public_keys,
286
286
  server_private_key,
287
287
  server_public_key,
288
288
  ) = maybe_keys
289
289
  state = state_factory.state()
290
- state.store_client_public_keys(client_public_keys)
290
+ state.store_node_public_keys(node_public_keys)
291
291
  state.store_server_private_public_key(
292
292
  private_key_to_bytes(server_private_key),
293
293
  public_key_to_bytes(server_public_key),
294
294
  )
295
295
  log(
296
296
  INFO,
297
- "Client authentication enabled with %d known public keys",
298
- len(client_public_keys),
297
+ "Node authentication enabled with %d known public keys",
298
+ len(node_public_keys),
299
299
  )
300
300
  interceptors = [AuthenticateServerInterceptor(state)]
301
301
 
@@ -344,7 +344,7 @@ def _format_address(address: str) -> Tuple[str, str, int]:
344
344
  return (f"[{host}]:{port}" if is_v6 else f"{host}:{port}", host, port)
345
345
 
346
346
 
347
- def _try_setup_client_authentication(
347
+ def _try_setup_node_authentication(
348
348
  args: argparse.Namespace,
349
349
  certificates: Optional[Tuple[bytes, bytes, bytes]],
350
350
  ) -> Optional[Tuple[Set[bytes], ec.EllipticCurvePrivateKey, ec.EllipticCurvePublicKey]]:
@@ -373,16 +373,16 @@ def _try_setup_client_authentication(
373
373
  "`--ssl-keyfile`, and `—-ssl-ca-certfile` and try again."
374
374
  )
375
375
 
376
- client_keys_file_path = Path(args.auth_list_public_keys)
377
- if not client_keys_file_path.exists():
376
+ node_keys_file_path = Path(args.auth_list_public_keys)
377
+ if not node_keys_file_path.exists():
378
378
  sys.exit(
379
379
  "The provided path to the known public keys CSV file does not exist: "
380
- f"{client_keys_file_path}. "
380
+ f"{node_keys_file_path}. "
381
381
  "Please provide the CSV file path containing known public keys "
382
382
  "to '--auth-list-public-keys'."
383
383
  )
384
384
 
385
- client_public_keys: Set[bytes] = set()
385
+ node_public_keys: Set[bytes] = set()
386
386
 
387
387
  try:
388
388
  ssh_private_key = load_ssh_private_key(
@@ -413,13 +413,13 @@ def _try_setup_client_authentication(
413
413
  "path points to a valid public key file and try again."
414
414
  )
415
415
 
416
- with open(client_keys_file_path, newline="", encoding="utf-8") as csvfile:
416
+ with open(node_keys_file_path, newline="", encoding="utf-8") as csvfile:
417
417
  reader = csv.reader(csvfile)
418
418
  for row in reader:
419
419
  for element in row:
420
420
  public_key = load_ssh_public_key(element.encode())
421
421
  if isinstance(public_key, ec.EllipticCurvePublicKey):
422
- client_public_keys.add(public_key_to_bytes(public_key))
422
+ node_public_keys.add(public_key_to_bytes(public_key))
423
423
  else:
424
424
  sys.exit(
425
425
  "Error: Unable to parse the public keys in the CSV "
@@ -427,7 +427,7 @@ def _try_setup_client_authentication(
427
427
  "known SSH public keys files and try again."
428
428
  )
429
429
  return (
430
- client_public_keys,
430
+ node_public_keys,
431
431
  ssh_private_key,
432
432
  ssh_public_key,
433
433
  )
@@ -97,6 +97,21 @@ def run_server_app() -> None:
97
97
 
98
98
  args = _parse_args_run_server_app().parse_args()
99
99
 
100
+ # Check if the server app reference is passed.
101
+ # Since Flower 1.11, passing a reference is not allowed.
102
+ app_path: Optional[str] = args.app
103
+ # If the provided app_path doesn't exist, and contains a ":",
104
+ # it is likely to be a server app reference instead of a path.
105
+ if app_path is not None and not Path(app_path).exists() and ":" in app_path:
106
+ sys.exit(
107
+ "It appears you've passed a reference like `server:app`.\n\n"
108
+ "Note that since version `1.11.0`, `flower-server-app` no longer supports "
109
+ "passing a reference to a `ServerApp` attribute. Instead, you need to pass "
110
+ "the path to Flower app via the argument `--app`. This is the path to a "
111
+ "directory containing a `pyproject.toml`. You can create a valid Flower "
112
+ "app by executing `flwr new` and following the prompt."
113
+ )
114
+
100
115
  if args.server != ADDRESS_DRIVER_API:
101
116
  warn = "Passing flag --server is deprecated. Use --superlink instead."
102
117
  warn_deprecated_feature(warn)
@@ -151,7 +166,6 @@ def run_server_app() -> None:
151
166
  cert_path,
152
167
  )
153
168
 
154
- app_path: Optional[str] = args.app
155
169
  if not (app_path is None) ^ (args.run_id is None):
156
170
  raise sys.exit(
157
171
  "Please provide either a Flower App path or a Run ID, but not both. "
@@ -51,19 +51,22 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
51
51
  self, request: CreateNodeRequest, context: grpc.ServicerContext
52
52
  ) -> CreateNodeResponse:
53
53
  """."""
54
- log(INFO, "FleetServicer.CreateNode")
54
+ log(INFO, "[Fleet.CreateNode] Request ping_interval=%s", request.ping_interval)
55
+ log(DEBUG, "[Fleet.CreateNode] Request: %s", request)
55
56
  response = message_handler.create_node(
56
57
  request=request,
57
58
  state=self.state_factory.state(),
58
59
  )
59
- log(INFO, "FleetServicer: Created node_id=%s", response.node.node_id)
60
+ log(INFO, "[Fleet.CreateNode] Created node_id=%s", response.node.node_id)
61
+ log(DEBUG, "[Fleet.CreateNode] Response: %s", response)
60
62
  return response
61
63
 
62
64
  def DeleteNode(
63
65
  self, request: DeleteNodeRequest, context: grpc.ServicerContext
64
66
  ) -> DeleteNodeResponse:
65
67
  """."""
66
- log(INFO, "FleetServicer.DeleteNode")
68
+ log(INFO, "[Fleet.DeleteNode] Delete node_id=%s", request.node.node_id)
69
+ log(DEBUG, "[Fleet.DeleteNode] Request: %s", request)
67
70
  return message_handler.delete_node(
68
71
  request=request,
69
72
  state=self.state_factory.state(),
@@ -71,7 +74,7 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
71
74
 
72
75
  def Ping(self, request: PingRequest, context: grpc.ServicerContext) -> PingResponse:
73
76
  """."""
74
- log(DEBUG, "FleetServicer.Ping")
77
+ log(DEBUG, "[Fleet.Ping] Request: %s", request)
75
78
  return message_handler.ping(
76
79
  request=request,
77
80
  state=self.state_factory.state(),
@@ -81,7 +84,8 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
81
84
  self, request: PullTaskInsRequest, context: grpc.ServicerContext
82
85
  ) -> PullTaskInsResponse:
83
86
  """Pull TaskIns."""
84
- log(INFO, "FleetServicer.PullTaskIns")
87
+ log(INFO, "[Fleet.PullTaskIns] node_id=%s", request.node.node_id)
88
+ log(DEBUG, "[Fleet.PullTaskIns] Request: %s", request)
85
89
  return message_handler.pull_task_ins(
86
90
  request=request,
87
91
  state=self.state_factory.state(),
@@ -91,7 +95,14 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
91
95
  self, request: PushTaskResRequest, context: grpc.ServicerContext
92
96
  ) -> PushTaskResResponse:
93
97
  """Push TaskRes."""
94
- log(INFO, "FleetServicer.PushTaskRes")
98
+ if request.task_res_list:
99
+ log(
100
+ INFO,
101
+ "[Fleet.PushTaskRes] Push results from node_id=%s",
102
+ request.task_res_list[0].task.producer.node_id,
103
+ )
104
+ else:
105
+ log(INFO, "[Fleet.PushTaskRes] No task results to push")
95
106
  return message_handler.push_task_res(
96
107
  request=request,
97
108
  state=self.state_factory.state(),
@@ -101,7 +112,7 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
101
112
  self, request: GetRunRequest, context: grpc.ServicerContext
102
113
  ) -> GetRunResponse:
103
114
  """Get run information."""
104
- log(INFO, "FleetServicer.GetRun")
115
+ log(INFO, "[Fleet.GetRun] Requesting `Run` for run_id=%s", request.run_id)
105
116
  return message_handler.get_run(
106
117
  request=request,
107
118
  state=self.state_factory.state(),
@@ -111,7 +122,7 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
111
122
  self, request: GetFabRequest, context: grpc.ServicerContext
112
123
  ) -> GetFabResponse:
113
124
  """Get FAB."""
114
- log(DEBUG, "DriverServicer.GetFab")
125
+ log(INFO, "[Fleet.GetFab] Requesting FAB for fab_hash=%s", request.hash_str)
115
126
  return message_handler.get_fab(
116
127
  request=request,
117
128
  ffs=self.ffs_factory.ffs(),
@@ -78,13 +78,13 @@ def _get_value_from_tuples(
78
78
 
79
79
 
80
80
  class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
81
- """Server interceptor for client authentication."""
81
+ """Server interceptor for node authentication."""
82
82
 
83
83
  def __init__(self, state: State):
84
84
  self.state = state
85
85
 
86
- self.client_public_keys = state.get_client_public_keys()
87
- if len(self.client_public_keys) == 0:
86
+ self.node_public_keys = state.get_node_public_keys()
87
+ if len(self.node_public_keys) == 0:
88
88
  log(WARNING, "Authentication enabled, but no known public keys configured")
89
89
 
90
90
  private_key = self.state.get_server_private_key()
@@ -103,9 +103,9 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
103
103
  ) -> grpc.RpcMethodHandler:
104
104
  """Flower server interceptor authentication logic.
105
105
 
106
- Intercept all unary calls from clients and authenticate clients by validating
107
- auth metadata sent by the client. Continue RPC call if client is authenticated,
108
- else, terminate RPC call by setting context to abort.
106
+ Intercept all unary calls from nodes and authenticate nodes by validating auth
107
+ metadata sent by the node. Continue RPC call if node is authenticated, else,
108
+ terminate RPC call by setting context to abort.
109
109
  """
110
110
  # One of the method handlers in
111
111
  # `flwr.server.superlink.fleet.grpc_rere.fleet_server.FleetServicer`
@@ -119,17 +119,17 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
119
119
  request: Request,
120
120
  context: grpc.ServicerContext,
121
121
  ) -> Response:
122
- client_public_key_bytes = base64.urlsafe_b64decode(
122
+ node_public_key_bytes = base64.urlsafe_b64decode(
123
123
  _get_value_from_tuples(
124
124
  _PUBLIC_KEY_HEADER, context.invocation_metadata()
125
125
  )
126
126
  )
127
- if client_public_key_bytes not in self.client_public_keys:
127
+ if node_public_key_bytes not in self.node_public_keys:
128
128
  context.abort(grpc.StatusCode.UNAUTHENTICATED, "Access denied")
129
129
 
130
130
  if isinstance(request, CreateNodeRequest):
131
131
  response = self._create_authenticated_node(
132
- client_public_key_bytes, request, context
132
+ node_public_key_bytes, request, context
133
133
  )
134
134
  log(
135
135
  INFO,
@@ -144,13 +144,13 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
144
144
  _AUTH_TOKEN_HEADER, context.invocation_metadata()
145
145
  )
146
146
  )
147
- public_key = bytes_to_public_key(client_public_key_bytes)
147
+ public_key = bytes_to_public_key(node_public_key_bytes)
148
148
 
149
149
  if not self._verify_hmac(public_key, request, hmac_value):
150
150
  context.abort(grpc.StatusCode.UNAUTHENTICATED, "Access denied")
151
151
 
152
152
  # Verify node_id
153
- node_id = self.state.get_node_id(client_public_key_bytes)
153
+ node_id = self.state.get_node_id(node_public_key_bytes)
154
154
 
155
155
  if not self._verify_node_id(node_id, request):
156
156
  context.abort(grpc.StatusCode.UNAUTHENTICATED, "Access denied")
@@ -45,7 +45,7 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
45
45
  self.task_ins_store: Dict[UUID, TaskIns] = {}
46
46
  self.task_res_store: Dict[UUID, TaskRes] = {}
47
47
 
48
- self.client_public_keys: Set[bytes] = set()
48
+ self.node_public_keys: Set[bytes] = set()
49
49
  self.server_public_key: Optional[bytes] = None
50
50
  self.server_private_key: Optional[bytes] = None
51
51
 
@@ -237,7 +237,7 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
237
237
  return node_id
238
238
 
239
239
  def delete_node(self, node_id: int, public_key: Optional[bytes] = None) -> None:
240
- """Delete a client node."""
240
+ """Delete a node."""
241
241
  with self.lock:
242
242
  if node_id not in self.node_ids:
243
243
  raise ValueError(f"Node {node_id} not found")
@@ -254,7 +254,7 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
254
254
  del self.node_ids[node_id]
255
255
 
256
256
  def get_nodes(self, run_id: int) -> Set[int]:
257
- """Return all available client nodes.
257
+ """Return all available nodes.
258
258
 
259
259
  Constraints
260
260
  -----------
@@ -271,9 +271,9 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
271
271
  if online_until > current_time
272
272
  }
273
273
 
274
- def get_node_id(self, client_public_key: bytes) -> Optional[int]:
275
- """Retrieve stored `node_id` filtered by `client_public_keys`."""
276
- return self.public_key_to_node_id.get(client_public_key)
274
+ def get_node_id(self, node_public_key: bytes) -> Optional[int]:
275
+ """Retrieve stored `node_id` filtered by `node_public_keys`."""
276
+ return self.public_key_to_node_id.get(node_public_key)
277
277
 
278
278
  def create_run(
279
279
  self,
@@ -318,19 +318,19 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
318
318
  """Retrieve `server_public_key` in urlsafe bytes."""
319
319
  return self.server_public_key
320
320
 
321
- def store_client_public_keys(self, public_keys: Set[bytes]) -> None:
322
- """Store a set of `client_public_keys` in state."""
321
+ def store_node_public_keys(self, public_keys: Set[bytes]) -> None:
322
+ """Store a set of `node_public_keys` in state."""
323
323
  with self.lock:
324
- self.client_public_keys = public_keys
324
+ self.node_public_keys = public_keys
325
325
 
326
- def store_client_public_key(self, public_key: bytes) -> None:
327
- """Store a `client_public_key` in state."""
326
+ def store_node_public_key(self, public_key: bytes) -> None:
327
+ """Store a `node_public_key` in state."""
328
328
  with self.lock:
329
- self.client_public_keys.add(public_key)
329
+ self.node_public_keys.add(public_key)
330
330
 
331
- def get_client_public_keys(self) -> Set[bytes]:
332
- """Retrieve all currently stored `client_public_keys` as a set."""
333
- return self.client_public_keys
331
+ def get_node_public_keys(self) -> Set[bytes]:
332
+ """Retrieve all currently stored `node_public_keys` as a set."""
333
+ return self.node_public_keys
334
334
 
335
335
  def get_run(self, run_id: int) -> Optional[Run]:
336
336
  """Retrieve information about the run with the specified `run_id`."""
@@ -569,7 +569,7 @@ class SqliteState(State): # pylint: disable=R0904
569
569
  return node_id
570
570
 
571
571
  def delete_node(self, node_id: int, public_key: Optional[bytes] = None) -> None:
572
- """Delete a client node."""
572
+ """Delete a node."""
573
573
  query = "DELETE FROM node WHERE node_id = ?"
574
574
  params = (node_id,)
575
575
 
@@ -607,10 +607,10 @@ class SqliteState(State): # pylint: disable=R0904
607
607
  result: Set[int] = {row["node_id"] for row in rows}
608
608
  return result
609
609
 
610
- def get_node_id(self, client_public_key: bytes) -> Optional[int]:
611
- """Retrieve stored `node_id` filtered by `client_public_keys`."""
610
+ def get_node_id(self, node_public_key: bytes) -> Optional[int]:
611
+ """Retrieve stored `node_id` filtered by `node_public_keys`."""
612
612
  query = "SELECT node_id FROM node WHERE public_key = :public_key;"
613
- row = self.query(query, {"public_key": client_public_key})
613
+ row = self.query(query, {"public_key": node_public_key})
614
614
  if len(row) > 0:
615
615
  node_id: int = row[0]["node_id"]
616
616
  return node_id
@@ -684,19 +684,19 @@ class SqliteState(State): # pylint: disable=R0904
684
684
  public_key = None
685
685
  return public_key
686
686
 
687
- def store_client_public_keys(self, public_keys: Set[bytes]) -> None:
688
- """Store a set of `client_public_keys` in state."""
687
+ def store_node_public_keys(self, public_keys: Set[bytes]) -> None:
688
+ """Store a set of `node_public_keys` in state."""
689
689
  query = "INSERT INTO public_key (public_key) VALUES (?)"
690
690
  data = [(key,) for key in public_keys]
691
691
  self.query(query, data)
692
692
 
693
- def store_client_public_key(self, public_key: bytes) -> None:
694
- """Store a `client_public_key` in state."""
693
+ def store_node_public_key(self, public_key: bytes) -> None:
694
+ """Store a `node_public_key` in state."""
695
695
  query = "INSERT INTO public_key (public_key) VALUES (:public_key)"
696
696
  self.query(query, {"public_key": public_key})
697
697
 
698
- def get_client_public_keys(self) -> Set[bytes]:
699
- """Retrieve all currently stored `client_public_keys` as a set."""
698
+ def get_node_public_keys(self) -> Set[bytes]:
699
+ """Retrieve all currently stored `node_public_keys` as a set."""
700
700
  query = "SELECT public_key FROM public_key"
701
701
  rows = self.query(query)
702
702
  result: Set[bytes] = {row["public_key"] for row in rows}
@@ -153,8 +153,8 @@ class State(abc.ABC): # pylint: disable=R0904
153
153
  """
154
154
 
155
155
  @abc.abstractmethod
156
- def get_node_id(self, client_public_key: bytes) -> Optional[int]:
157
- """Retrieve stored `node_id` filtered by `client_public_keys`."""
156
+ def get_node_id(self, node_public_key: bytes) -> Optional[int]:
157
+ """Retrieve stored `node_id` filtered by `node_public_keys`."""
158
158
 
159
159
  @abc.abstractmethod
160
160
  def create_run(
@@ -199,16 +199,16 @@ class State(abc.ABC): # pylint: disable=R0904
199
199
  """Retrieve `server_public_key` in urlsafe bytes."""
200
200
 
201
201
  @abc.abstractmethod
202
- def store_client_public_keys(self, public_keys: Set[bytes]) -> None:
203
- """Store a set of `client_public_keys` in state."""
202
+ def store_node_public_keys(self, public_keys: Set[bytes]) -> None:
203
+ """Store a set of `node_public_keys` in state."""
204
204
 
205
205
  @abc.abstractmethod
206
- def store_client_public_key(self, public_key: bytes) -> None:
207
- """Store a `client_public_key` in state."""
206
+ def store_node_public_key(self, public_key: bytes) -> None:
207
+ """Store a `node_public_key` in state."""
208
208
 
209
209
  @abc.abstractmethod
210
- def get_client_public_keys(self) -> Set[bytes]:
211
- """Retrieve all currently stored `client_public_keys` as a set."""
210
+ def get_node_public_keys(self) -> Set[bytes]:
211
+ """Retrieve all currently stored `node_public_keys` as a set."""
212
212
 
213
213
  @abc.abstractmethod
214
214
  def acknowledge_ping(self, node_id: int, ping_interval: float) -> bool: