flwr-nightly 1.21.0.dev20250904__tar.gz → 1.21.0.dev20250907__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.
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/PKG-INFO +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/app/__init__.py +19 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.pytorch_msg_api.py.tpl +2 -2
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.pytorch_msg_api.py.tpl +2 -2
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/clientapp/__init__.py +9 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/serverapp/app.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/__init__.py +6 -0
- flwr_nightly-1.21.0.dev20250907/py/flwr/serverapp/exception.py +38 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/fedadagrad.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/fedadam.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/fedopt.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/fedyogi.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/strategy.py +11 -7
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/strategy_utils.py +1 -20
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/strategy_utils_tests.py +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/pyproject.toml +1 -1
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/README.md +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/app/error.py +0 -0
- {flwr_nightly-1.21.0.dev20250904/py/flwr/common → flwr_nightly-1.21.0.dev20250907/py/flwr/app}/exception.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/app/metadata.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/constant.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/log.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/login/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/login/login.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/ls.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/__init__.pytorch_msg_api.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.pytorch_msg_api.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.pytorch_msg_api.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/stop.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/clientapp/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/clientapp/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/run_info_store.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/clientapp/centraldp_mods.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/args.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/event_log_plugin/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/exit/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/exit/exit.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/exit/exit_code.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/exit/exit_handler.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/exit/signal_handler.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/heartbeat.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/inflatable.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/inflatable_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/array.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/arraychunk.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/arrayrecord.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/configrecord.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/metricrecord.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/recorddict.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/recorddict_compat.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/serde_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/client/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/common/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/server/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/server/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/compat/simulation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/appio_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/appio_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/appio_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/clientappio_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/clientappio_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/control_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/control_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/control_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/control_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/heartbeat_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/log_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/log_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/log_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/message_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/message_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/message_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/recorddict_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/recorddict_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/run_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/run_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/serverappio_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/serverappio_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/simulationio_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/simulationio_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/py.typed +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/compat/grid_client_proxy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/grid/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/grid/grid.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/grid/grpc_grid.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/grid/inmemory_grid.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/serverapp/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/linkstate/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/simulation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/superlink/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/fedavg.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/strategy/result.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/legacy_app.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/simulation/simulationio_connection.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/app_utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/cli/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/cli/flower_superexec.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/corestate/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/corestate/corestate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/ffs/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/ffs/ffs.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/grpc_health/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/grpc_health/health_server.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/license_plugin/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/object_store/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/object_store/object_store.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/object_store/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/base_exec_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/clientapp_exec_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/exec_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/serverapp_exec_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/plugin/simulation_exec_plugin.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/superexec/run_superexec.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supercore/utils.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/control_event_log_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/control_grpc.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/control_license_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/control_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/superlink/servicer/control/control_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/cli/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/cli/flower_supernode.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/nodestate/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/nodestate/nodestate.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/runtime/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/servicer/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
- {flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/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.21.0.
|
3
|
+
Version: 1.21.0.dev20250907
|
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
|
@@ -13,3 +13,22 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
15
|
"""Public Flower App APIs."""
|
16
|
+
|
17
|
+
|
18
|
+
from flwr.common.context import Context
|
19
|
+
from flwr.common.message import Message
|
20
|
+
from flwr.common.record import ArrayRecord, ConfigRecord, MetricRecord, RecordDict
|
21
|
+
|
22
|
+
from .error import Error
|
23
|
+
from .metadata import Metadata
|
24
|
+
|
25
|
+
__all__ = [
|
26
|
+
"ArrayRecord",
|
27
|
+
"ConfigRecord",
|
28
|
+
"Context",
|
29
|
+
"Error",
|
30
|
+
"Message",
|
31
|
+
"Metadata",
|
32
|
+
"MetricRecord",
|
33
|
+
"RecordDict",
|
34
|
+
]
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"""$project_name: A Flower / $framework_str app."""
|
2
2
|
|
3
3
|
import torch
|
4
|
-
from flwr.
|
5
|
-
from flwr.
|
4
|
+
from flwr.app import ArrayRecord, Context, Message, MetricRecord, RecordDict
|
5
|
+
from flwr.clientapp import ClientApp
|
6
6
|
|
7
7
|
from $import_name.task import Net, load_data
|
8
8
|
from $import_name.task import test as test_fn
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"""$project_name: A Flower / $framework_str app."""
|
2
2
|
|
3
3
|
import torch
|
4
|
-
from flwr.
|
5
|
-
from flwr.
|
4
|
+
from flwr.app import ArrayRecord, ConfigRecord, Context
|
5
|
+
from flwr.serverapp import Grid, ServerApp
|
6
6
|
from flwr.serverapp.strategy import FedAvg
|
7
7
|
|
8
8
|
from $import_name.task import Net
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/clientapp/__init__.py
RENAMED
@@ -14,6 +14,14 @@
|
|
14
14
|
# ==============================================================================
|
15
15
|
"""Public Flower ClientApp APIs."""
|
16
16
|
|
17
|
+
|
18
|
+
from flwr.client import mod
|
19
|
+
from flwr.client.client_app import ClientApp
|
20
|
+
|
17
21
|
from .centraldp_mods import fixedclipping_mod
|
18
22
|
|
19
|
-
__all__ = [
|
23
|
+
__all__ = [
|
24
|
+
"ClientApp",
|
25
|
+
"fixedclipping_mod",
|
26
|
+
"mod",
|
27
|
+
]
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/server/serverapp/app.py
RENAMED
@@ -21,6 +21,7 @@ from pathlib import Path
|
|
21
21
|
from queue import Queue
|
22
22
|
from typing import Optional
|
23
23
|
|
24
|
+
from flwr.app.exception import AppExitException
|
24
25
|
from flwr.cli.config_utils import get_fab_metadata
|
25
26
|
from flwr.cli.install import install_from_fab
|
26
27
|
from flwr.cli.utils import get_sha256_hash
|
@@ -37,7 +38,6 @@ from flwr.common.constant import (
|
|
37
38
|
Status,
|
38
39
|
SubStatus,
|
39
40
|
)
|
40
|
-
from flwr.common.exception import AppExitException
|
41
41
|
from flwr.common.exit import ExitCode, add_exit_handler, flwr_exit
|
42
42
|
from flwr.common.heartbeat import HeartbeatSender, get_grpc_app_heartbeat_fn
|
43
43
|
from flwr.common.logger import (
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/serverapp/__init__.py
RENAMED
@@ -14,8 +14,14 @@
|
|
14
14
|
# ==============================================================================
|
15
15
|
"""Public Flower ServerApp APIs."""
|
16
16
|
|
17
|
+
|
18
|
+
from flwr.server.grid import Grid
|
19
|
+
from flwr.server.server_app import ServerApp
|
20
|
+
|
17
21
|
from . import strategy
|
18
22
|
|
19
23
|
__all__ = [
|
24
|
+
"Grid",
|
25
|
+
"ServerApp",
|
20
26
|
"strategy",
|
21
27
|
]
|
@@ -0,0 +1,38 @@
|
|
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 ServerApp exceptions."""
|
16
|
+
|
17
|
+
|
18
|
+
from flwr.app.exception import AppExitException
|
19
|
+
from flwr.common.exit import ExitCode
|
20
|
+
|
21
|
+
|
22
|
+
class InconsistentMessageReplies(AppExitException):
|
23
|
+
"""Exception triggered when replies are inconsistent and therefore aggregation must
|
24
|
+
be skipped."""
|
25
|
+
|
26
|
+
exit_code = ExitCode.SERVERAPP_STRATEGY_PRECONDITION_UNMET
|
27
|
+
|
28
|
+
def __init__(self, reason: str):
|
29
|
+
super().__init__(reason)
|
30
|
+
|
31
|
+
|
32
|
+
class AggregationError(AppExitException):
|
33
|
+
"""Exception triggered when aggregation fails."""
|
34
|
+
|
35
|
+
exit_code = ExitCode.SERVERAPP_STRATEGY_AGGREGATION_ERROR
|
36
|
+
|
37
|
+
def __init__(self, reason: str):
|
38
|
+
super().__init__(reason)
|
@@ -27,8 +27,8 @@ import numpy as np
|
|
27
27
|
|
28
28
|
from flwr.common import Array, ArrayRecord, Message, MetricRecord, RecordDict
|
29
29
|
|
30
|
+
from ..exception import AggregationError
|
30
31
|
from .fedopt import FedOpt
|
31
|
-
from .strategy_utils import AggregationError
|
32
32
|
|
33
33
|
|
34
34
|
# pylint: disable=line-too-long
|
@@ -27,8 +27,8 @@ import numpy as np
|
|
27
27
|
|
28
28
|
from flwr.common import Array, ArrayRecord, Message, MetricRecord, RecordDict
|
29
29
|
|
30
|
+
from ..exception import AggregationError
|
30
31
|
from .fedopt import FedOpt
|
31
|
-
from .strategy_utils import AggregationError
|
32
32
|
|
33
33
|
|
34
34
|
# pylint: disable=line-too-long
|
@@ -26,8 +26,8 @@ import numpy as np
|
|
26
26
|
|
27
27
|
from flwr.common import Array, ArrayRecord, Message, MetricRecord, RecordDict
|
28
28
|
|
29
|
+
from ..exception import AggregationError
|
29
30
|
from .fedopt import FedOpt
|
30
|
-
from .strategy_utils import AggregationError
|
31
31
|
|
32
32
|
|
33
33
|
# pylint: disable=line-too-long
|
@@ -140,7 +140,9 @@ class Strategy(ABC):
|
|
140
140
|
timeout: float = 3600,
|
141
141
|
train_config: Optional[ConfigRecord] = None,
|
142
142
|
evaluate_config: Optional[ConfigRecord] = None,
|
143
|
-
evaluate_fn: Optional[
|
143
|
+
evaluate_fn: Optional[
|
144
|
+
Callable[[int, ArrayRecord], Optional[MetricRecord]]
|
145
|
+
] = None,
|
144
146
|
) -> Result:
|
145
147
|
"""Execute the federated learning strategy.
|
146
148
|
|
@@ -164,11 +166,11 @@ class Strategy(ABC):
|
|
164
166
|
evaluate_config : ConfigRecord, optional
|
165
167
|
Configuration to be sent to nodes during evaluation rounds.
|
166
168
|
If unset, an empty ConfigRecord will be used.
|
167
|
-
evaluate_fn : Callable[[int, ArrayRecord], MetricRecord], optional
|
169
|
+
evaluate_fn : Callable[[int, ArrayRecord], Optional[MetricRecord]], optional
|
168
170
|
Optional function for centralized evaluation of the global model. Takes
|
169
|
-
server round number and array record, returns a MetricRecord. If
|
170
|
-
will be called before the first round and after each round.
|
171
|
-
None.
|
171
|
+
server round number and array record, returns a MetricRecord or None. If
|
172
|
+
provided, will be called before the first round and after each round.
|
173
|
+
Defaults to None.
|
172
174
|
|
173
175
|
Returns
|
174
176
|
-------
|
@@ -193,7 +195,8 @@ class Strategy(ABC):
|
|
193
195
|
if evaluate_fn:
|
194
196
|
res = evaluate_fn(0, initial_arrays)
|
195
197
|
log(INFO, "Initial global evaluation results: %s", res)
|
196
|
-
|
198
|
+
if res is not None:
|
199
|
+
result.evaluate_metrics_serverapp[0] = res
|
197
200
|
|
198
201
|
arrays = initial_arrays
|
199
202
|
|
@@ -267,7 +270,8 @@ class Strategy(ABC):
|
|
267
270
|
log(INFO, "Global evaluation")
|
268
271
|
res = evaluate_fn(current_round, arrays)
|
269
272
|
log(INFO, "\t└──> MetricRecord: %s", res)
|
270
|
-
|
273
|
+
if res is not None:
|
274
|
+
result.evaluate_metrics_serverapp[current_round] = res
|
271
275
|
|
272
276
|
log(INFO, "")
|
273
277
|
log(INFO, "Strategy execution finished in %.2fs", time.time() - t_start)
|
@@ -30,28 +30,9 @@ from flwr.common import (
|
|
30
30
|
RecordDict,
|
31
31
|
log,
|
32
32
|
)
|
33
|
-
from flwr.common.exception import AppExitException
|
34
|
-
from flwr.common.exit import ExitCode
|
35
33
|
from flwr.server import Grid
|
36
34
|
|
37
|
-
|
38
|
-
class InconsistentMessageReplies(AppExitException):
|
39
|
-
"""Exception triggered when replies are inconsistent and therefore aggregation must
|
40
|
-
be skipped."""
|
41
|
-
|
42
|
-
exit_code = ExitCode.SERVERAPP_STRATEGY_PRECONDITION_UNMET
|
43
|
-
|
44
|
-
def __init__(self, reason: str):
|
45
|
-
super().__init__(reason)
|
46
|
-
|
47
|
-
|
48
|
-
class AggregationError(AppExitException):
|
49
|
-
"""Exception triggered when aggregation fails."""
|
50
|
-
|
51
|
-
exit_code = ExitCode.SERVERAPP_STRATEGY_AGGREGATION_ERROR
|
52
|
-
|
53
|
-
def __init__(self, reason: str):
|
54
|
-
super().__init__(reason)
|
35
|
+
from ..exception import InconsistentMessageReplies
|
55
36
|
|
56
37
|
|
57
38
|
def config_to_str(config: ConfigRecord) -> str:
|
@@ -23,8 +23,8 @@ from parameterized import parameterized
|
|
23
23
|
|
24
24
|
from flwr.common import Array, ArrayRecord, ConfigRecord, MetricRecord, RecordDict
|
25
25
|
|
26
|
+
from ..exception import InconsistentMessageReplies
|
26
27
|
from .strategy_utils import (
|
27
|
-
InconsistentMessageReplies,
|
28
28
|
aggregate_arrayrecords,
|
29
29
|
aggregate_metricrecords,
|
30
30
|
config_to_str,
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "flwr-nightly"
|
7
|
-
version = "1.21.0.
|
7
|
+
version = "1.21.0.dev20250907"
|
8
8
|
description = "Flower: A Friendly Federated AI Framework"
|
9
9
|
license = "Apache-2.0"
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/config_utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/login/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/login/login.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/new/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/cli/run/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/client.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/client_app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/comms_mods.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/mod/utils.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/numpy_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/run_info_store.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/client/typing.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/address.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/config.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/constant.py
RENAMED
File without changes
|
{flwr_nightly-1.21.0.dev20250904 → flwr_nightly-1.21.0.dev20250907}/py/flwr/common/context.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|