flwr-nightly 1.23.0.dev20251007__tar.gz → 1.23.0.dev20251009__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/PKG-INFO +1 -1
  2. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/auth_plugin/__init__.py +7 -3
  3. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/log.py +2 -2
  4. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/login/login.py +4 -13
  5. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/ls.py +2 -2
  6. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/pull.py +2 -2
  7. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/run/run.py +2 -2
  8. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/stop.py +2 -2
  9. flwr_nightly-1.23.0.dev20251009/py/flwr/cli/supernode/create.py +184 -0
  10. flwr_nightly-1.23.0.dev20251009/py/flwr/cli/supernode/delete.py +136 -0
  11. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/supernode/ls.py +2 -2
  12. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/utils.py +65 -55
  13. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/grpc_rere_client/connection.py +6 -4
  14. flwr_nightly-1.23.0.dev20251007/py/flwr/client/grpc_rere_client/client_interceptor.py → flwr_nightly-1.23.0.dev20251009/py/flwr/client/grpc_rere_client/node_auth_client_interceptor.py +2 -2
  15. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/rest_client/connection.py +7 -1
  16. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/constant.py +13 -0
  17. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/control_pb2.py +1 -1
  18. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/control_pb2.pyi +2 -2
  19. flwr_nightly-1.23.0.dev20251009/py/flwr/proto/fleet_pb2.py +53 -0
  20. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fleet_pb2.pyi +4 -1
  21. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/node_pb2.py +2 -2
  22. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/node_pb2.pyi +4 -1
  23. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/app.py +32 -31
  24. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +8 -4
  25. flwr_nightly-1.23.0.dev20251007/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py → flwr_nightly-1.23.0.dev20251009/py/flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +18 -37
  26. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +5 -3
  27. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/vce/vce_api.py +10 -1
  28. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +52 -54
  29. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/linkstate.py +20 -10
  30. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +54 -61
  31. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/utils/validator.py +2 -3
  32. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/primitives/asymmetric.py +8 -0
  33. flwr_nightly-1.23.0.dev20251009/py/flwr/superlink/auth_plugin/__init__.py +55 -0
  34. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/control_grpc.py +9 -7
  35. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/control_servicer.py +89 -48
  36. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/pyproject.toml +1 -1
  37. flwr_nightly-1.23.0.dev20251007/py/flwr/cli/supernode/create.py +0 -58
  38. flwr_nightly-1.23.0.dev20251007/py/flwr/cli/supernode/delete.py +0 -58
  39. flwr_nightly-1.23.0.dev20251007/py/flwr/proto/fleet_pb2.py +0 -53
  40. flwr_nightly-1.23.0.dev20251007/py/flwr/superlink/auth_plugin/__init__.py +0 -26
  41. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/README.md +0 -0
  42. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/__init__.py +0 -0
  43. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/app/__init__.py +0 -0
  44. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/app/error.py +0 -0
  45. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/app/exception.py +0 -0
  46. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/app/metadata.py +0 -0
  47. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/__init__.py +0 -0
  48. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/app.py +0 -0
  49. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/auth_plugin/auth_plugin.py +0 -0
  50. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/auth_plugin/noop_auth_plugin.py +0 -0
  51. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
  52. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/build.py +0 -0
  53. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/cli_account_auth_interceptor.py +0 -0
  54. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/config_utils.py +0 -0
  55. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/constant.py +0 -0
  56. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/example.py +0 -0
  57. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/install.py +0 -0
  58. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/login/__init__.py +0 -0
  59. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/__init__.py +0 -0
  60. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/new.py +0 -0
  61. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/__init__.py +0 -0
  62. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  63. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
  64. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
  65. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
  66. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  67. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/__init__.py +0 -0
  68. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
  69. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  70. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  71. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/__init__.pytorch_legacy_api.py.tpl +0 -0
  72. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
  73. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
  74. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  75. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  76. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  77. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  78. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.pytorch_legacy_api.py.tpl +0 -0
  79. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  80. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  81. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/client.xgboost.py.tpl +0 -0
  82. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
  83. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
  84. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
  85. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
  86. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
  87. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
  88. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
  89. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
  90. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
  91. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
  92. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  93. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  94. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  95. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  96. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.pytorch_legacy_api.py.tpl +0 -0
  97. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  98. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  99. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/server.xgboost.py.tpl +0 -0
  100. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
  101. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
  102. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  103. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  104. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
  105. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  106. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.pytorch_legacy_api.py.tpl +0 -0
  107. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
  108. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  109. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/task.xgboost.py.tpl +0 -0
  110. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
  111. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
  112. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
  113. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
  114. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  115. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  116. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  117. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  118. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +0 -0
  119. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  120. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  121. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +0 -0
  122. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/run/__init__.py +0 -0
  123. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/cli/supernode/__init__.py +0 -0
  124. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/__init__.py +0 -0
  125. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/client.py +0 -0
  126. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  127. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
  128. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
  129. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  130. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
  131. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/message_handler/__init__.py +0 -0
  132. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/message_handler/message_handler.py +0 -0
  133. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/__init__.py +0 -0
  134. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/centraldp_mods.py +0 -0
  135. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/comms_mods.py +0 -0
  136. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/localdp_mod.py +0 -0
  137. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  138. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  139. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  140. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/mod/utils.py +0 -0
  141. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/numpy_client.py +0 -0
  142. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/rest_client/__init__.py +0 -0
  143. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/run_info_store.py +0 -0
  144. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/client/typing.py +0 -0
  145. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/__init__.py +0 -0
  146. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/client_app.py +0 -0
  147. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/mod/__init__.py +0 -0
  148. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/mod/centraldp_mods.py +0 -0
  149. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/mod/localdp_mod.py +0 -0
  150. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/typing.py +0 -0
  151. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/clientapp/utils.py +0 -0
  152. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/__init__.py +0 -0
  153. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/address.py +0 -0
  154. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/args.py +0 -0
  155. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/config.py +0 -0
  156. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/context.py +0 -0
  157. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/date.py +0 -0
  158. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/differential_privacy.py +0 -0
  159. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/differential_privacy_constants.py +0 -0
  160. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/dp.py +0 -0
  161. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/event_log_plugin/__init__.py +0 -0
  162. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
  163. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/exit/__init__.py +0 -0
  164. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/exit/exit.py +0 -0
  165. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/exit/exit_code.py +0 -0
  166. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/exit/exit_handler.py +0 -0
  167. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/exit/signal_handler.py +0 -0
  168. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/grpc.py +0 -0
  169. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/heartbeat.py +0 -0
  170. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/inflatable.py +0 -0
  171. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
  172. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/inflatable_utils.py +0 -0
  173. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/logger.py +0 -0
  174. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/message.py +0 -0
  175. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/object_ref.py +0 -0
  176. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/parameter.py +0 -0
  177. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/pyproject.py +0 -0
  178. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/__init__.py +0 -0
  179. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/array.py +0 -0
  180. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/arraychunk.py +0 -0
  181. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/arrayrecord.py +0 -0
  182. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/configrecord.py +0 -0
  183. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/conversion_utils.py +0 -0
  184. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/metricrecord.py +0 -0
  185. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/recorddict.py +0 -0
  186. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/record/typeddict.py +0 -0
  187. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/recorddict_compat.py +0 -0
  188. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/retry_invoker.py +0 -0
  189. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/__init__.py +0 -0
  190. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  191. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  192. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  193. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  194. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/quantization.py +0 -0
  195. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  196. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  197. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/serde.py +0 -0
  198. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/serde_utils.py +0 -0
  199. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/telemetry.py +0 -0
  200. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/typing.py +0 -0
  201. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/common/version.py +0 -0
  202. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/__init__.py +0 -0
  203. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/client/__init__.py +0 -0
  204. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/client/app.py +0 -0
  205. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
  206. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/client/grpc_client/connection.py +0 -0
  207. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/common/__init__.py +0 -0
  208. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/server/__init__.py +0 -0
  209. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/server/app.py +0 -0
  210. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/compat/simulation/__init__.py +0 -0
  211. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/__init__.py +0 -0
  212. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/appio_pb2.py +0 -0
  213. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/appio_pb2.pyi +0 -0
  214. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/appio_pb2_grpc.py +0 -0
  215. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
  216. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/clientappio_pb2.py +0 -0
  217. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/clientappio_pb2.pyi +0 -0
  218. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
  219. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
  220. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/control_pb2_grpc.py +0 -0
  221. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/control_pb2_grpc.pyi +0 -0
  222. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/error_pb2.py +0 -0
  223. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/error_pb2.pyi +0 -0
  224. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/error_pb2_grpc.py +0 -0
  225. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  226. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fab_pb2.py +0 -0
  227. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fab_pb2.pyi +0 -0
  228. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fab_pb2_grpc.py +0 -0
  229. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
  230. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  231. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  232. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/grpcadapter_pb2.py +0 -0
  233. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  234. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  235. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  236. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/heartbeat_pb2.py +0 -0
  237. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
  238. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
  239. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
  240. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/log_pb2.py +0 -0
  241. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/log_pb2.pyi +0 -0
  242. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/log_pb2_grpc.py +0 -0
  243. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
  244. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/message_pb2.py +0 -0
  245. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/message_pb2.pyi +0 -0
  246. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/message_pb2_grpc.py +0 -0
  247. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
  248. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/node_pb2_grpc.py +0 -0
  249. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  250. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/recorddict_pb2.py +0 -0
  251. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/recorddict_pb2.pyi +0 -0
  252. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
  253. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
  254. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/run_pb2.py +0 -0
  255. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/run_pb2.pyi +0 -0
  256. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/run_pb2_grpc.py +0 -0
  257. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
  258. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/serverappio_pb2.py +0 -0
  259. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/serverappio_pb2.pyi +0 -0
  260. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
  261. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
  262. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/simulationio_pb2.py +0 -0
  263. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/simulationio_pb2.pyi +0 -0
  264. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
  265. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
  266. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/transport_pb2.py +0 -0
  267. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/transport_pb2.pyi +0 -0
  268. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/transport_pb2_grpc.py +0 -0
  269. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  270. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/py.typed +0 -0
  271. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/__init__.py +0 -0
  272. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/client_manager.py +0 -0
  273. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/client_proxy.py +0 -0
  274. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/compat/__init__.py +0 -0
  275. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/compat/app.py +0 -0
  276. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/compat/app_utils.py +0 -0
  277. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/compat/grid_client_proxy.py +0 -0
  278. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/compat/legacy_context.py +0 -0
  279. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/criterion.py +0 -0
  280. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
  281. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/grid/__init__.py +0 -0
  282. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/grid/grid.py +0 -0
  283. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/grid/grpc_grid.py +0 -0
  284. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/grid/inmemory_grid.py +0 -0
  285. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/history.py +0 -0
  286. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/run_serverapp.py +0 -0
  287. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/server.py +0 -0
  288. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/server_app.py +0 -0
  289. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/server_config.py +0 -0
  290. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/serverapp/__init__.py +0 -0
  291. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/serverapp/app.py +0 -0
  292. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/serverapp_components.py +0 -0
  293. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/__init__.py +0 -0
  294. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/aggregate.py +0 -0
  295. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/bulyan.py +0 -0
  296. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  297. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  298. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  299. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  300. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  301. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedadagrad.py +0 -0
  302. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedadam.py +0 -0
  303. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedavg.py +0 -0
  304. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedavg_android.py +0 -0
  305. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedavgm.py +0 -0
  306. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedmedian.py +0 -0
  307. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedopt.py +0 -0
  308. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedprox.py +0 -0
  309. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  310. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  311. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  312. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  313. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/fedyogi.py +0 -0
  314. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/krum.py +0 -0
  315. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/qfedavg.py +0 -0
  316. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/strategy/strategy.py +0 -0
  317. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/__init__.py +0 -0
  318. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/__init__.py +0 -0
  319. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
  320. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
  321. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  322. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  323. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  324. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  325. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  326. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  327. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  328. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  329. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  330. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  331. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  332. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  333. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  334. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
  335. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
  336. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/linkstate/utils.py +0 -0
  337. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
  338. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
  339. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
  340. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/simulation/__init__.py +0 -0
  341. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
  342. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
  343. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/superlink/utils.py +0 -0
  344. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/typing.py +0 -0
  345. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/utils/__init__.py +0 -0
  346. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/utils/tensorboard.py +0 -0
  347. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/__init__.py +0 -0
  348. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/constant.py +0 -0
  349. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/default_workflows.py +0 -0
  350. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  351. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  352. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  353. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/__init__.py +0 -0
  354. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/exception.py +0 -0
  355. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/__init__.py +0 -0
  356. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/bulyan.py +0 -0
  357. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/dp_adaptive_clipping.py +0 -0
  358. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/dp_fixed_clipping.py +0 -0
  359. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedadagrad.py +0 -0
  360. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedadam.py +0 -0
  361. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedavg.py +0 -0
  362. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedavgm.py +0 -0
  363. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedmedian.py +0 -0
  364. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedopt.py +0 -0
  365. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedprox.py +0 -0
  366. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedtrimmedavg.py +0 -0
  367. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedxgb_bagging.py +0 -0
  368. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedxgb_cyclic.py +0 -0
  369. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/fedyogi.py +0 -0
  370. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/krum.py +0 -0
  371. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/multikrum.py +0 -0
  372. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/qfedavg.py +0 -0
  373. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/result.py +0 -0
  374. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/strategy.py +0 -0
  375. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/serverapp/strategy/strategy_utils.py +0 -0
  376. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/__init__.py +0 -0
  377. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/app.py +0 -0
  378. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/legacy_app.py +0 -0
  379. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/ray_transport/__init__.py +0 -0
  380. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  381. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  382. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/ray_transport/utils.py +0 -0
  383. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/run_simulation.py +0 -0
  384. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/simulation/simulationio_connection.py +0 -0
  385. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/__init__.py +0 -0
  386. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/app_utils.py +0 -0
  387. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/cli/__init__.py +0 -0
  388. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/cli/flower_superexec.py +0 -0
  389. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/constant.py +0 -0
  390. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/corestate/__init__.py +0 -0
  391. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/corestate/corestate.py +0 -0
  392. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/ffs/__init__.py +0 -0
  393. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
  394. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/ffs/ffs.py +0 -0
  395. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
  396. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/grpc_health/__init__.py +0 -0
  397. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/grpc_health/health_server.py +0 -0
  398. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
  399. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/license_plugin/__init__.py +0 -0
  400. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
  401. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/object_store/__init__.py +0 -0
  402. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
  403. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/object_store/object_store.py +0 -0
  404. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
  405. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/object_store/utils.py +0 -0
  406. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/primitives/__init__.py +0 -0
  407. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/__init__.py +0 -0
  408. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/__init__.py +0 -0
  409. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/base_exec_plugin.py +0 -0
  410. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/clientapp_exec_plugin.py +0 -0
  411. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/exec_plugin.py +0 -0
  412. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/serverapp_exec_plugin.py +0 -0
  413. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/plugin/simulation_exec_plugin.py +0 -0
  414. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/superexec/run_superexec.py +0 -0
  415. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supercore/utils.py +0 -0
  416. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/__init__.py +0 -0
  417. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/artifact_provider/__init__.py +0 -0
  418. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/artifact_provider/artifact_provider.py +0 -0
  419. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/auth_plugin/auth_plugin.py +0 -0
  420. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/auth_plugin/noop_auth_plugin.py +0 -0
  421. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/__init__.py +0 -0
  422. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/__init__.py +0 -0
  423. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/control_account_auth_interceptor.py +0 -0
  424. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/control_event_log_interceptor.py +0 -0
  425. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/superlink/servicer/control/control_license_interceptor.py +0 -0
  426. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/__init__.py +0 -0
  427. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/cli/__init__.py +0 -0
  428. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/cli/flower_supernode.py +0 -0
  429. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
  430. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/nodestate/__init__.py +0 -0
  431. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
  432. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/nodestate/nodestate.py +0 -0
  433. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
  434. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/runtime/__init__.py +0 -0
  435. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
  436. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/servicer/__init__.py +0 -0
  437. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
  438. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
  439. {flwr_nightly-1.23.0.dev20251007 → flwr_nightly-1.23.0.dev20251009}/py/flwr/supernode/start_client_internal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.23.0.dev20251007
3
+ Version: 1.23.0.dev20251009
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  License: Apache-2.0
6
6
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -22,9 +22,13 @@ from .noop_auth_plugin import NoOpCliAuthPlugin
22
22
  from .oidc_cli_plugin import OidcCliPlugin
23
23
 
24
24
 
25
- def get_cli_auth_plugins() -> dict[str, type[CliAuthPlugin]]:
25
+ def get_cli_plugin_class(authn_type: str) -> type[CliAuthPlugin]:
26
26
  """Return all CLI authentication plugins."""
27
- return {AuthnType.NOOP: NoOpCliAuthPlugin, AuthnType.OIDC: OidcCliPlugin}
27
+ if authn_type == AuthnType.NOOP:
28
+ return NoOpCliAuthPlugin
29
+ if authn_type == AuthnType.OIDC:
30
+ return OidcCliPlugin
31
+ raise ValueError(f"Unsupported authentication type: {authn_type}")
28
32
 
29
33
 
30
34
  __all__ = [
@@ -32,5 +36,5 @@ __all__ = [
32
36
  "LoginError",
33
37
  "NoOpCliAuthPlugin",
34
38
  "OidcCliPlugin",
35
- "get_cli_auth_plugins",
39
+ "get_cli_plugin_class",
36
40
  ]
@@ -35,7 +35,7 @@ from flwr.common.logger import log as logger
35
35
  from flwr.proto.control_pb2 import StreamLogsRequest # pylint: disable=E0611
36
36
  from flwr.proto.control_pb2_grpc import ControlStub
37
37
 
38
- from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
38
+ from .utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
39
39
 
40
40
 
41
41
  class AllLogsRetrieved(BaseException):
@@ -186,7 +186,7 @@ def _log_with_control_api(
186
186
  run_id: int,
187
187
  stream: bool,
188
188
  ) -> None:
189
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
189
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
190
190
  channel = init_channel(app, federation_config, auth_plugin)
191
191
 
192
192
  if stream:
@@ -20,7 +20,7 @@ from typing import Annotated, Optional
20
20
 
21
21
  import typer
22
22
 
23
- from flwr.cli.auth_plugin import LoginError
23
+ from flwr.cli.auth_plugin import LoginError, NoOpCliAuthPlugin
24
24
  from flwr.cli.config_utils import (
25
25
  exit_if_no_address,
26
26
  get_insecure_flag,
@@ -40,7 +40,7 @@ from ..utils import (
40
40
  account_auth_enabled,
41
41
  flwr_cli_grpc_exc_handler,
42
42
  init_channel,
43
- try_obtain_cli_auth_plugin,
43
+ load_cli_auth_plugin,
44
44
  )
45
45
 
46
46
 
@@ -95,7 +95,7 @@ def login( # pylint: disable=R0914
95
95
  )
96
96
  raise typer.Exit(code=1)
97
97
 
98
- channel = init_channel(app, federation_config, None)
98
+ channel = init_channel(app, federation_config, NoOpCliAuthPlugin(Path()))
99
99
  stub = ControlStub(channel)
100
100
 
101
101
  login_request = GetLoginDetailsRequest()
@@ -104,16 +104,7 @@ def login( # pylint: disable=R0914
104
104
 
105
105
  # Get the auth plugin
106
106
  authn_type = login_response.authn_type
107
- auth_plugin = try_obtain_cli_auth_plugin(
108
- app, federation, federation_config, authn_type
109
- )
110
- if auth_plugin is None:
111
- typer.secho(
112
- f'❌ Authentication type "{authn_type}" not found',
113
- fg=typer.colors.RED,
114
- bold=True,
115
- )
116
- raise typer.Exit(code=1)
107
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config, authn_type)
117
108
 
118
109
  # Login
119
110
  details = AccountAuthLoginDetails(
@@ -44,7 +44,7 @@ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
44
44
  )
45
45
  from flwr.proto.control_pb2_grpc import ControlStub
46
46
 
47
- from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
47
+ from .utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
48
48
 
49
49
  _RunListType = tuple[int, str, str, str, str, str, str, str, str]
50
50
 
@@ -127,7 +127,7 @@ def ls( # pylint: disable=too-many-locals, too-many-branches, R0913, R0917
127
127
  raise ValueError(
128
128
  "The options '--runs' and '--run-id' are mutually exclusive."
129
129
  )
130
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
130
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
131
131
  channel = init_channel(app, federation_config, auth_plugin)
132
132
  stub = ControlStub(channel)
133
133
 
@@ -34,7 +34,7 @@ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
34
34
  )
35
35
  from flwr.proto.control_pb2_grpc import ControlStub
36
36
 
37
- from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
37
+ from .utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
38
38
 
39
39
 
40
40
  def pull( # pylint: disable=R0914
@@ -74,7 +74,7 @@ def pull( # pylint: disable=R0914
74
74
  channel = None
75
75
  try:
76
76
 
77
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
77
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
78
78
  channel = init_channel(app, federation_config, auth_plugin)
79
79
  stub = ControlStub(channel)
80
80
  with flwr_cli_grpc_exc_handler():
@@ -45,7 +45,7 @@ from flwr.proto.control_pb2 import StartRunRequest # pylint: disable=E0611
45
45
  from flwr.proto.control_pb2_grpc import ControlStub
46
46
 
47
47
  from ..log import start_stream
48
- from ..utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
48
+ from ..utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
49
49
 
50
50
  CONN_REFRESH_PERIOD = 60 # Connection refresh period for log streaming (seconds)
51
51
 
@@ -148,7 +148,7 @@ def _run_with_control_api(
148
148
  ) -> None:
149
149
  channel = None
150
150
  try:
151
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
151
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
152
152
  channel = init_channel(app, federation_config, auth_plugin)
153
153
  stub = ControlStub(channel)
154
154
 
@@ -38,7 +38,7 @@ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
38
38
  )
39
39
  from flwr.proto.control_pb2_grpc import ControlStub
40
40
 
41
- from .utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
41
+ from .utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
42
42
 
43
43
 
44
44
  def stop( # pylint: disable=R0914
@@ -89,7 +89,7 @@ def stop( # pylint: disable=R0914
89
89
  exit_if_no_address(federation_config, "stop")
90
90
  channel = None
91
91
  try:
92
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
92
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
93
93
  channel = init_channel(app, federation_config, auth_plugin)
94
94
  stub = ControlStub(channel) # pylint: disable=unused-variable # noqa: F841
95
95
 
@@ -0,0 +1,184 @@
1
+ # Copyright 2025 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 command line interface `supernode create` command."""
16
+
17
+
18
+ import io
19
+ import json
20
+ from pathlib import Path
21
+ from typing import Annotated, Optional
22
+
23
+ import typer
24
+ from cryptography.hazmat.primitives import serialization
25
+ from cryptography.hazmat.primitives.asymmetric import ec
26
+ from rich.console import Console
27
+
28
+ from flwr.cli.config_utils import (
29
+ exit_if_no_address,
30
+ load_and_validate,
31
+ process_loaded_project_config,
32
+ validate_federation_in_project_config,
33
+ )
34
+ from flwr.common.constant import FAB_CONFIG_FILE, CliOutputFormat
35
+ from flwr.common.logger import print_json_error, redirect_output, restore_output
36
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
37
+ CreateNodeCliRequest,
38
+ CreateNodeCliResponse,
39
+ )
40
+ from flwr.proto.control_pb2_grpc import ControlStub
41
+ from flwr.supercore.primitives.asymmetric import public_key_to_bytes, uses_nist_ec_curve
42
+
43
+ from ..utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
44
+
45
+
46
+ def create( # pylint: disable=R0914
47
+ public_key: Annotated[
48
+ Path,
49
+ typer.Argument(
50
+ help="Path to a P-384 (or any other NIST EC curve) public key file.",
51
+ ),
52
+ ],
53
+ app: Annotated[
54
+ Path,
55
+ typer.Argument(help="Path of the Flower project"),
56
+ ] = Path("."),
57
+ federation: Annotated[
58
+ Optional[str],
59
+ typer.Argument(help="Name of the federation"),
60
+ ] = None,
61
+ output_format: Annotated[
62
+ str,
63
+ typer.Option(
64
+ "--format",
65
+ case_sensitive=False,
66
+ help="Format output using 'default' view or 'json'",
67
+ ),
68
+ ] = CliOutputFormat.DEFAULT,
69
+ ) -> None:
70
+ """Add a SuperNode to the federation."""
71
+ suppress_output = output_format == CliOutputFormat.JSON
72
+ captured_output = io.StringIO()
73
+
74
+ # Load public key
75
+ public_key_path = Path(public_key)
76
+ public_key_bytes = try_load_public_key(public_key_path)
77
+
78
+ try:
79
+ if suppress_output:
80
+ redirect_output(captured_output)
81
+
82
+ # Load and validate federation config
83
+ typer.secho("Loading project configuration... ", fg=typer.colors.BLUE)
84
+
85
+ pyproject_path = app / FAB_CONFIG_FILE if app else None
86
+ config, errors, warnings = load_and_validate(path=pyproject_path)
87
+ config = process_loaded_project_config(config, errors, warnings)
88
+ federation, federation_config = validate_federation_in_project_config(
89
+ federation, config
90
+ )
91
+ exit_if_no_address(federation_config, "supernode create")
92
+
93
+ channel = None
94
+ try:
95
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
96
+ channel = init_channel(app, federation_config, auth_plugin)
97
+ stub = ControlStub(channel) # pylint: disable=unused-variable # noqa: F841
98
+
99
+ _create_node(
100
+ stub=stub, public_key=public_key_bytes, output_format=output_format
101
+ )
102
+
103
+ except ValueError as err:
104
+ typer.secho(
105
+ f"❌ {err}",
106
+ fg=typer.colors.RED,
107
+ bold=True,
108
+ )
109
+ raise typer.Exit(code=1) from err
110
+ finally:
111
+ if channel:
112
+ channel.close()
113
+
114
+ except (typer.Exit, Exception) as err: # pylint: disable=broad-except
115
+ if suppress_output:
116
+ restore_output()
117
+ e_message = captured_output.getvalue()
118
+ print_json_error(e_message, err)
119
+ else:
120
+ typer.secho(
121
+ f"{err}",
122
+ fg=typer.colors.RED,
123
+ bold=True,
124
+ )
125
+ finally:
126
+ if suppress_output:
127
+ restore_output()
128
+ captured_output.close()
129
+
130
+
131
+ def _create_node(stub: ControlStub, public_key: bytes, output_format: str) -> None:
132
+ """Create a node."""
133
+ with flwr_cli_grpc_exc_handler():
134
+ response: CreateNodeCliResponse = stub.CreateNodeCli(
135
+ request=CreateNodeCliRequest(public_key=public_key)
136
+ )
137
+ if response.node_id:
138
+ typer.secho(
139
+ f"✅ Node {response.node_id} created successfully.", fg=typer.colors.GREEN
140
+ )
141
+ if output_format == CliOutputFormat.JSON:
142
+ run_output = json.dumps(
143
+ {
144
+ "success": True,
145
+ "node-id": response.node_id,
146
+ }
147
+ )
148
+ restore_output()
149
+ Console().print_json(run_output)
150
+ else:
151
+ typer.secho("❌ Node couldn't be created.", fg=typer.colors.RED)
152
+
153
+
154
+ def try_load_public_key(public_key_path: Path) -> bytes:
155
+ """Try to load a public key from a file."""
156
+ if not public_key_path.exists():
157
+ typer.secho(
158
+ f"❌ Public key file '{public_key_path}' does not exist.",
159
+ fg=typer.colors.RED,
160
+ bold=True,
161
+ )
162
+ raise typer.Exit(code=1)
163
+
164
+ with open(public_key_path, "rb") as key_file:
165
+ try:
166
+ public_key = serialization.load_pem_public_key(key_file.read())
167
+
168
+ if not isinstance(public_key, ec.EllipticCurvePublicKey):
169
+ raise ValueError(f"Not an EC public key, got {type(public_key)}")
170
+
171
+ # Verify it's one of the approved NIST curves
172
+ if not uses_nist_ec_curve(public_key):
173
+ raise ValueError(
174
+ f"EC curve {public_key.curve.name} is not an approved NIST curve"
175
+ )
176
+
177
+ except ValueError as err:
178
+ typer.secho(
179
+ f"❌ Unable to load public key from '{public_key_path}': {err}",
180
+ fg=typer.colors.RED,
181
+ bold=True,
182
+ )
183
+ raise typer.Exit(code=1) from err
184
+ return public_key_to_bytes(public_key)
@@ -0,0 +1,136 @@
1
+ # Copyright 2025 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 command line interface `supernode delete` command."""
16
+
17
+
18
+ import io
19
+ import json
20
+ from pathlib import Path
21
+ from typing import Annotated, Optional
22
+
23
+ import typer
24
+ from rich.console import Console
25
+
26
+ from flwr.cli.config_utils import (
27
+ exit_if_no_address,
28
+ load_and_validate,
29
+ process_loaded_project_config,
30
+ validate_federation_in_project_config,
31
+ )
32
+ from flwr.common.constant import FAB_CONFIG_FILE, CliOutputFormat
33
+ from flwr.common.logger import print_json_error, redirect_output, restore_output
34
+ from flwr.proto.control_pb2 import DeleteNodeCliRequest # pylint: disable=E0611
35
+ from flwr.proto.control_pb2_grpc import ControlStub
36
+
37
+ from ..utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
38
+
39
+
40
+ def delete( # pylint: disable=R0914
41
+ node_id: Annotated[
42
+ int,
43
+ typer.Argument(
44
+ help="ID of the SuperNode to remove.",
45
+ ),
46
+ ],
47
+ app: Annotated[
48
+ Path,
49
+ typer.Argument(help="Path of the Flower project"),
50
+ ] = Path("."),
51
+ federation: Annotated[
52
+ Optional[str],
53
+ typer.Argument(help="Name of the federation"),
54
+ ] = None,
55
+ output_format: Annotated[
56
+ str,
57
+ typer.Option(
58
+ "--format",
59
+ case_sensitive=False,
60
+ help="Format output using 'default' view or 'json'",
61
+ ),
62
+ ] = CliOutputFormat.DEFAULT,
63
+ ) -> None:
64
+ """Remove a SuperNode from the federation."""
65
+ suppress_output = output_format == CliOutputFormat.JSON
66
+ captured_output = io.StringIO()
67
+
68
+ try:
69
+ if suppress_output:
70
+ redirect_output(captured_output)
71
+
72
+ # Load and validate federation config
73
+ typer.secho("Loading project configuration... ", fg=typer.colors.BLUE)
74
+
75
+ pyproject_path = app / FAB_CONFIG_FILE if app else None
76
+ config, errors, warnings = load_and_validate(path=pyproject_path)
77
+ config = process_loaded_project_config(config, errors, warnings)
78
+ federation, federation_config = validate_federation_in_project_config(
79
+ federation, config
80
+ )
81
+ exit_if_no_address(federation_config, "supernode remove")
82
+
83
+ channel = None
84
+ try:
85
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
86
+ channel = init_channel(app, federation_config, auth_plugin)
87
+ stub = ControlStub(channel) # pylint: disable=unused-variable # noqa: F841
88
+
89
+ _delete_node(stub=stub, node_id=node_id, output_format=output_format)
90
+
91
+ except ValueError as err:
92
+ typer.secho(
93
+ f"❌ {err}",
94
+ fg=typer.colors.RED,
95
+ bold=True,
96
+ )
97
+ raise typer.Exit(code=1) from err
98
+ finally:
99
+ if channel:
100
+ channel.close()
101
+
102
+ except (typer.Exit, Exception) as err: # pylint: disable=broad-except
103
+ if suppress_output:
104
+ restore_output()
105
+ e_message = captured_output.getvalue()
106
+ print_json_error(e_message, err)
107
+ else:
108
+ typer.secho(
109
+ f"{err}",
110
+ fg=typer.colors.RED,
111
+ bold=True,
112
+ )
113
+ finally:
114
+ if suppress_output:
115
+ restore_output()
116
+ captured_output.close()
117
+
118
+
119
+ def _delete_node(
120
+ stub: ControlStub,
121
+ node_id: int,
122
+ output_format: str,
123
+ ) -> None:
124
+ """Delete a SuperNode from the federation."""
125
+ with flwr_cli_grpc_exc_handler():
126
+ stub.DeleteNodeCli(request=DeleteNodeCliRequest(node_id=node_id))
127
+ typer.secho(f"✅ SuperNode {node_id} deleted successfully.", fg=typer.colors.GREEN)
128
+ if output_format == CliOutputFormat.JSON:
129
+ run_output = json.dumps(
130
+ {
131
+ "success": True,
132
+ "node-id": node_id,
133
+ }
134
+ )
135
+ restore_output()
136
+ Console().print_json(run_output)
@@ -42,7 +42,7 @@ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
42
42
  from flwr.proto.control_pb2_grpc import ControlStub
43
43
  from flwr.proto.node_pb2 import NodeInfo # pylint: disable=E0611
44
44
 
45
- from ..utils import flwr_cli_grpc_exc_handler, init_channel, try_obtain_cli_auth_plugin
45
+ from ..utils import flwr_cli_grpc_exc_handler, init_channel, load_cli_auth_plugin
46
46
 
47
47
  _NodeListType = tuple[int, str, str, str, str, str, str, str]
48
48
 
@@ -94,7 +94,7 @@ def ls( # pylint: disable=R0914
94
94
  exit_if_no_address(federation_config, f"supernode {command_name}")
95
95
  channel = None
96
96
  try:
97
- auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
97
+ auth_plugin = load_cli_auth_plugin(app, federation, federation_config)
98
98
  channel = init_channel(app, federation_config, auth_plugin)
99
99
  stub = ControlStub(channel)
100
100
  typer.echo("📄 Listing all nodes...")