flwr-nightly 1.20.0.dev20250723__tar.gz → 1.20.0.dev20250724__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.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/PKG-INFO +1 -1
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/clientappio_pb2.py +2 -2
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/clientappio_pb2_grpc.py +35 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/clientappio_pb2_grpc.pyi +14 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/grid/grpc_grid.py +42 -12
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/utils.py +0 -27
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +18 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/start_client_internal.py +10 -5
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/pyproject.toml +1 -1
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/README.md +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/app/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/app/error.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/app/metadata.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/constant.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/log.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/login/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/login/login.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/ls.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/stop.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/clientapp/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/clientapp/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/run_info_store.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/clientapp/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/args.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/event_log_plugin/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/exit/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/exit/exit.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/exit/exit_code.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/heartbeat.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/inflatable.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/inflatable_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/array.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/arraychunk.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/arrayrecord.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/configrecord.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/metricrecord.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/recorddict.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/recorddict_compat.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/serde_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/client/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/common/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/server/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/server/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/compat/simulation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/appio_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/appio_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/appio_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/clientappio_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/exec_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/exec_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/exec_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/heartbeat_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/log_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/log_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/log_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/message_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/message_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/message_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/recorddict_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/recorddict_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/run_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/run_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/serverappio_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/serverappio_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/simulationio_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/simulationio_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/py.typed +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/compat/grid_client_proxy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/grid/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/grid/grid.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/grid/inmemory_grid.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/serverapp/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/serverapp/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/linkstate/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/simulation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/serverapp/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/legacy_app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/simulation/simulationio_connection.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/ffs/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/ffs/ffs.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/grpc_health/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/license_plugin/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/object_store/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/object_store/object_store.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/object_store/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/scheduler/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/scheduler/plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supercore/utils.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/app.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/deployment.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/exec_event_log_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/exec_grpc.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/exec_license_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/exec_servicer.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/exec_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/executor.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superexec/simulation.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/superlink/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/cli/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/cli/flower_supernode.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/nodestate/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/nodestate/nodestate.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/runtime/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/scheduler/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/servicer/__init__.py +0 -0
- {flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.20.0.
|
3
|
+
Version: 1.20.0.dev20250724
|
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
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/proto/clientappio_pb2.py
RENAMED
@@ -18,7 +18,7 @@ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
|
18
18
|
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
19
19
|
|
20
20
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x16\x66lwr/proto/appio.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t2\
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x16\x66lwr/proto/appio.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t2\xaf\x07\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\\\n\x13PullClientAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12_\n\x14PushClientAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12X\n\x0bPushMessage\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12X\n\x0bPullMessage\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
|
22
22
|
|
23
23
|
_globals = globals()
|
24
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -34,5 +34,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
34
34
|
_globals['_REQUESTTOKENRESPONSE']._serialized_start=273
|
35
35
|
_globals['_REQUESTTOKENRESPONSE']._serialized_end=310
|
36
36
|
_globals['_CLIENTAPPIO']._serialized_start=313
|
37
|
-
_globals['_CLIENTAPPIO']._serialized_end=
|
37
|
+
_globals['_CLIENTAPPIO']._serialized_end=1256
|
38
38
|
# @@protoc_insertion_point(module_scope)
|
@@ -5,6 +5,7 @@ import grpc
|
|
5
5
|
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
6
6
|
from flwr.proto import clientappio_pb2 as flwr_dot_proto_dot_clientappio__pb2
|
7
7
|
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
8
|
+
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
8
9
|
|
9
10
|
|
10
11
|
class ClientAppIoStub(object):
|
@@ -26,6 +27,11 @@ class ClientAppIoStub(object):
|
|
26
27
|
request_serializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenRequest.SerializeToString,
|
27
28
|
response_deserializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenResponse.FromString,
|
28
29
|
)
|
30
|
+
self.GetRun = channel.unary_unary(
|
31
|
+
'/flwr.proto.ClientAppIo/GetRun',
|
32
|
+
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
33
|
+
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
34
|
+
)
|
29
35
|
self.PullClientAppInputs = channel.unary_unary(
|
30
36
|
'/flwr.proto.ClientAppIo/PullClientAppInputs',
|
31
37
|
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
|
@@ -80,6 +86,13 @@ class ClientAppIoServicer(object):
|
|
80
86
|
context.set_details('Method not implemented!')
|
81
87
|
raise NotImplementedError('Method not implemented!')
|
82
88
|
|
89
|
+
def GetRun(self, request, context):
|
90
|
+
"""Get run details
|
91
|
+
"""
|
92
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
93
|
+
context.set_details('Method not implemented!')
|
94
|
+
raise NotImplementedError('Method not implemented!')
|
95
|
+
|
83
96
|
def PullClientAppInputs(self, request, context):
|
84
97
|
"""Pull client app inputs
|
85
98
|
"""
|
@@ -142,6 +155,11 @@ def add_ClientAppIoServicer_to_server(servicer, server):
|
|
142
155
|
request_deserializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenRequest.FromString,
|
143
156
|
response_serializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenResponse.SerializeToString,
|
144
157
|
),
|
158
|
+
'GetRun': grpc.unary_unary_rpc_method_handler(
|
159
|
+
servicer.GetRun,
|
160
|
+
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
|
161
|
+
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
|
162
|
+
),
|
145
163
|
'PullClientAppInputs': grpc.unary_unary_rpc_method_handler(
|
146
164
|
servicer.PullClientAppInputs,
|
147
165
|
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.FromString,
|
@@ -221,6 +239,23 @@ class ClientAppIo(object):
|
|
221
239
|
options, channel_credentials,
|
222
240
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
223
241
|
|
242
|
+
@staticmethod
|
243
|
+
def GetRun(request,
|
244
|
+
target,
|
245
|
+
options=(),
|
246
|
+
channel_credentials=None,
|
247
|
+
call_credentials=None,
|
248
|
+
insecure=False,
|
249
|
+
compression=None,
|
250
|
+
wait_for_ready=None,
|
251
|
+
timeout=None,
|
252
|
+
metadata=None):
|
253
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/GetRun',
|
254
|
+
flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
255
|
+
flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
256
|
+
options, channel_credentials,
|
257
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
258
|
+
|
224
259
|
@staticmethod
|
225
260
|
def PullClientAppInputs(request,
|
226
261
|
target,
|
@@ -6,6 +6,7 @@ import abc
|
|
6
6
|
import flwr.proto.appio_pb2
|
7
7
|
import flwr.proto.clientappio_pb2
|
8
8
|
import flwr.proto.message_pb2
|
9
|
+
import flwr.proto.run_pb2
|
9
10
|
import grpc
|
10
11
|
|
11
12
|
class ClientAppIoStub:
|
@@ -20,6 +21,11 @@ class ClientAppIoStub:
|
|
20
21
|
flwr.proto.clientappio_pb2.RequestTokenResponse]
|
21
22
|
"""Request token"""
|
22
23
|
|
24
|
+
GetRun: grpc.UnaryUnaryMultiCallable[
|
25
|
+
flwr.proto.run_pb2.GetRunRequest,
|
26
|
+
flwr.proto.run_pb2.GetRunResponse]
|
27
|
+
"""Get run details"""
|
28
|
+
|
23
29
|
PullClientAppInputs: grpc.UnaryUnaryMultiCallable[
|
24
30
|
flwr.proto.appio_pb2.PullAppInputsRequest,
|
25
31
|
flwr.proto.appio_pb2.PullAppInputsResponse]
|
@@ -73,6 +79,14 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
|
|
73
79
|
"""Request token"""
|
74
80
|
pass
|
75
81
|
|
82
|
+
@abc.abstractmethod
|
83
|
+
def GetRun(self,
|
84
|
+
request: flwr.proto.run_pb2.GetRunRequest,
|
85
|
+
context: grpc.ServicerContext,
|
86
|
+
) -> flwr.proto.run_pb2.GetRunResponse:
|
87
|
+
"""Get run details"""
|
88
|
+
pass
|
89
|
+
|
76
90
|
@abc.abstractmethod
|
77
91
|
def PullClientAppInputs(self,
|
78
92
|
request: flwr.proto.appio_pb2.PullAppInputsRequest,
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/server/grid/grpc_grid.py
RENAMED
@@ -22,10 +22,13 @@ from typing import Optional, cast
|
|
22
22
|
|
23
23
|
import grpc
|
24
24
|
|
25
|
-
from flwr.
|
25
|
+
from flwr.app.error import Error
|
26
|
+
from flwr.common import Message, Metadata, RecordDict, now
|
26
27
|
from flwr.common.constant import (
|
27
28
|
SERVERAPPIO_API_DEFAULT_CLIENT_ADDRESS,
|
28
29
|
SUPERLINK_NODE_ID,
|
30
|
+
ErrorCode,
|
31
|
+
MessageType,
|
29
32
|
)
|
30
33
|
from flwr.common.grpc import create_channel, on_channel_state_change
|
31
34
|
from flwr.common.inflatable import (
|
@@ -39,12 +42,13 @@ from flwr.common.inflatable_protobuf_utils import (
|
|
39
42
|
make_push_object_fn_protobuf,
|
40
43
|
)
|
41
44
|
from flwr.common.inflatable_utils import (
|
45
|
+
ObjectUnavailableError,
|
42
46
|
inflate_object_from_contents,
|
43
47
|
pull_objects,
|
44
48
|
push_objects,
|
45
49
|
)
|
46
50
|
from flwr.common.logger import log, warn_deprecated_feature
|
47
|
-
from flwr.common.message import remove_content_from_message
|
51
|
+
from flwr.common.message import make_message, remove_content_from_message
|
48
52
|
from flwr.common.retry_invoker import _make_simple_grpc_retry_invoker, _wrap_stub
|
49
53
|
from flwr.common.serde import message_to_proto, run_from_proto
|
50
54
|
from flwr.common.typing import Run
|
@@ -307,16 +311,42 @@ class GrpcGrid(Grid):
|
|
307
311
|
inflated_msgs: list[Message] = []
|
308
312
|
for msg_proto, msg_tree in zip(res.messages_list, res.message_object_trees):
|
309
313
|
msg_id = msg_proto.metadata.message_id
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
314
|
+
try:
|
315
|
+
all_object_contents = pull_objects(
|
316
|
+
object_ids=[
|
317
|
+
tree.object_id for tree in iterate_object_tree(msg_tree)
|
318
|
+
],
|
319
|
+
pull_object_fn=make_pull_object_fn_protobuf(
|
320
|
+
pull_object_protobuf=self._stub.PullObject,
|
321
|
+
node=self.node,
|
322
|
+
run_id=run_id,
|
323
|
+
),
|
324
|
+
)
|
325
|
+
except ObjectUnavailableError as e:
|
326
|
+
# An ObjectUnavailableError indicates that the object is not yet
|
327
|
+
# available. If this point has been reached, it means that the
|
328
|
+
# Grid has tried to pull the object for the maximum number of times
|
329
|
+
# or for the maximum time allowed, so we return an inflated message
|
330
|
+
# with an error
|
331
|
+
inflated_msgs.append(
|
332
|
+
make_message(
|
333
|
+
metadata=Metadata(
|
334
|
+
run_id=run_id,
|
335
|
+
message_id="",
|
336
|
+
src_node_id=self.node.node_id,
|
337
|
+
dst_node_id=self.node.node_id,
|
338
|
+
message_type=MessageType.SYSTEM,
|
339
|
+
group_id="",
|
340
|
+
ttl=0,
|
341
|
+
reply_to_message_id=msg_proto.metadata.reply_to_message_id,
|
342
|
+
created_at=now().timestamp(),
|
343
|
+
),
|
344
|
+
error=Error(
|
345
|
+
code=ErrorCode.MESSAGE_UNAVAILABLE, reason=(str(e))
|
346
|
+
),
|
347
|
+
)
|
348
|
+
)
|
349
|
+
continue
|
320
350
|
|
321
351
|
# Confirm that the message has been received
|
322
352
|
self._stub.ConfirmMessageReceived(
|
@@ -21,9 +21,6 @@ import grpc
|
|
21
21
|
|
22
22
|
from flwr.common.constant import Status, SubStatus
|
23
23
|
from flwr.common.typing import RunStatus
|
24
|
-
from flwr.proto.appio_pb2 import PushAppMessagesRequest # pylint: disable=E0611
|
25
|
-
from flwr.proto.fleet_pb2 import PushMessagesRequest # pylint: disable=E0611
|
26
|
-
from flwr.proto.message_pb2 import ObjectIDs # pylint: disable=E0611
|
27
24
|
from flwr.server.superlink.linkstate import LinkState
|
28
25
|
from flwr.supercore.object_store import ObjectStore
|
29
26
|
|
@@ -73,27 +70,3 @@ def abort_if(
|
|
73
70
|
"""Abort context if status of the provided `run_id` is in `abort_status_list`."""
|
74
71
|
msg = check_abort(run_id, abort_status_list, state, store)
|
75
72
|
abort_grpc_context(msg, context)
|
76
|
-
|
77
|
-
|
78
|
-
def store_mapping_and_register_objects(
|
79
|
-
store: ObjectStore, request: Union[PushAppMessagesRequest, PushMessagesRequest]
|
80
|
-
) -> dict[str, ObjectIDs]:
|
81
|
-
"""Store Message object to descendants mapping and preregister objects."""
|
82
|
-
if not request.messages_list:
|
83
|
-
return {}
|
84
|
-
|
85
|
-
objects_to_push: dict[str, ObjectIDs] = {}
|
86
|
-
|
87
|
-
# Get run_id from the first message in the list
|
88
|
-
# All messages of a request should in the same run
|
89
|
-
run_id = request.messages_list[0].metadata.run_id
|
90
|
-
|
91
|
-
for object_tree in request.message_object_trees:
|
92
|
-
# Preregister
|
93
|
-
object_ids_just_registered = store.preregister(run_id, object_tree)
|
94
|
-
# Keep track of objects that need to be pushed
|
95
|
-
objects_to_push[object_tree.object_id] = ObjectIDs(
|
96
|
-
object_ids=object_ids_just_registered
|
97
|
-
)
|
98
|
-
|
99
|
-
return objects_to_push
|
@@ -59,6 +59,7 @@ from flwr.proto.message_pb2 import (
|
|
59
59
|
PushObjectRequest,
|
60
60
|
PushObjectResponse,
|
61
61
|
)
|
62
|
+
from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=E0611
|
62
63
|
|
63
64
|
# pylint: disable=E0601
|
64
65
|
from flwr.supercore.ffs import FfsFactory
|
@@ -118,6 +119,23 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
118
119
|
# Return the token
|
119
120
|
return RequestTokenResponse(token=token)
|
120
121
|
|
122
|
+
def GetRun(
|
123
|
+
self, request: GetRunRequest, context: grpc.ServicerContext
|
124
|
+
) -> GetRunResponse:
|
125
|
+
"""Get run information."""
|
126
|
+
log(DEBUG, "ClientAppIo.GetRun")
|
127
|
+
|
128
|
+
# Initialize state connection
|
129
|
+
state = self.state_factory.state()
|
130
|
+
|
131
|
+
# Retrieve run information
|
132
|
+
run = state.get_run(request.run_id)
|
133
|
+
|
134
|
+
if run is None:
|
135
|
+
return GetRunResponse()
|
136
|
+
|
137
|
+
return GetRunResponse(run=run_to_proto(run))
|
138
|
+
|
121
139
|
def PullClientAppInputs(
|
122
140
|
self, request: PullAppInputsRequest, context: grpc.ServicerContext
|
123
141
|
) -> PullAppInputsResponse:
|
@@ -237,6 +237,12 @@ def start_client_internal(
|
|
237
237
|
]
|
238
238
|
subprocess.run(command, check=False)
|
239
239
|
|
240
|
+
# No message has been pulled therefore we can skip the push stage.
|
241
|
+
if run_id is None:
|
242
|
+
# If no message was received, wait for a while
|
243
|
+
time.sleep(3)
|
244
|
+
continue
|
245
|
+
|
240
246
|
_push_messages(
|
241
247
|
state=state,
|
242
248
|
object_store=store,
|
@@ -244,9 +250,6 @@ def start_client_internal(
|
|
244
250
|
push_object=push_object,
|
245
251
|
)
|
246
252
|
|
247
|
-
# Sleep for 3 seconds before the next iteration
|
248
|
-
time.sleep(3)
|
249
|
-
|
250
253
|
|
251
254
|
def _pull_and_store_message( # pylint: disable=too-many-positional-arguments
|
252
255
|
state: NodeState,
|
@@ -358,8 +361,10 @@ def _push_messages(
|
|
358
361
|
push_object: Callable[[int, str, bytes], None],
|
359
362
|
) -> None:
|
360
363
|
"""Push reply messages to the SuperLink."""
|
361
|
-
#
|
362
|
-
|
364
|
+
# This is to ensure that only one message is processed at a time
|
365
|
+
# Wait until a reply message is available
|
366
|
+
while not (reply_messages := state.get_messages(is_reply=True)):
|
367
|
+
time.sleep(0.5)
|
363
368
|
|
364
369
|
for message in reply_messages:
|
365
370
|
# Log message sending
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "flwr-nightly"
|
7
|
-
version = "1.20.0.
|
7
|
+
version = "1.20.0.dev20250724"
|
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.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/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.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/login/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/login/login.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/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
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/cli/run/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/client.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/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.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/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.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/mod/utils.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/numpy_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/run_info_store.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/client/typing.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/clientapp/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.20.0.dev20250723 → flwr_nightly-1.20.0.dev20250724}/py/flwr/common/address.py
RENAMED
File without changes
|