flwr-nightly 1.23.0.dev20251027__tar.gz → 1.23.0.dev20251028__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/PKG-INFO +1 -1
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/build.py +118 -47
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/run/run.py +8 -4
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/constant.py +11 -1
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +9 -5
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +29 -19
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/pyproject.toml +1 -1
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/README.md +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/app/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/app/error.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/app/exception.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/app/metadata.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/auth_plugin/auth_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/auth_plugin/noop_auth_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/cli_account_auth_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/constant.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/log.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/login/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/login/login.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/ls.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/__init__.pytorch_legacy_api.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.pytorch_legacy_api.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/client.xgboost.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.pytorch_legacy_api.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/server.xgboost.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.pytorch_legacy_api.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/task.xgboost.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/pull.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/stop.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/supernode/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/supernode/ls.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/supernode/register.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/supernode/unregister.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/grpc_rere_client/node_auth_client_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/run_info_store.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/client_app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/mod/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/typing.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/clientapp/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/args.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/event_log_plugin/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/exit/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/exit/exit.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/exit/exit_code.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/exit/exit_handler.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/exit/signal_handler.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/heartbeat.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/inflatable.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/inflatable_protobuf_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/inflatable_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/array.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/arraychunk.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/arrayrecord.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/configrecord.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/metricrecord.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/recorddict.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/recorddict_compat.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/serde_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/client/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/common/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/server/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/server/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/compat/simulation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/appio_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/appio_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/appio_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/appio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/clientappio_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/clientappio_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/control_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/control_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/control_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/control_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/heartbeat_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/heartbeat_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/heartbeat_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/heartbeat_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/log_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/log_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/log_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/message_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/message_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/message_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/recorddict_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/recorddict_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/run_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/run_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/serverappio_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/serverappio_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/simulationio_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/simulationio_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/py.typed +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/compat/grid_client_proxy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/grid/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/grid/grid.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/grid/grpc_grid.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/grid/inmemory_grid.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/serverapp/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/serverapp/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/linkstate/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/simulation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/superlink/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/exception.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/bulyan.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedadam.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedopt.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedprox.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/krum.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/multikrum.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/result.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/strategy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/serverapp/strategy/strategy_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/legacy_app.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/simulation/simulationio_connection.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/app_utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/cli/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/cli/flower_superexec.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/constant.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/corestate/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/corestate/corestate.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/ffs/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/ffs/disk_ffs.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/ffs/ffs.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/grpc_health/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/grpc_health/health_server.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/grpc_health/simple_health_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/license_plugin/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/license_plugin/license_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/in_memory_object_store.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/object_store.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/object_store_factory.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/sqlite_object_store.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/object_store/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/primitives/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/primitives/asymmetric.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/primitives/asymmetric_ed25519.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/sqlite_mixin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/base_exec_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/clientapp_exec_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/exec_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/serverapp_exec_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/plugin/simulation_exec_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/superexec/run_superexec.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supercore/utils.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/artifact_provider/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/artifact_provider/artifact_provider.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/auth_plugin/auth_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/auth_plugin/noop_auth_plugin.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/control_account_auth_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/control_event_log_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/control_grpc.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/control_license_interceptor.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/superlink/servicer/control/control_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/cli/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/cli/flower_supernode.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/cli/flwr_clientapp.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/nodestate/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/nodestate/in_memory_nodestate.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/nodestate/nodestate.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/nodestate/nodestate_factory.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/runtime/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/runtime/run_clientapp.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/servicer/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/servicer/clientappio/__init__.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/servicer/clientappio/clientappio_servicer.py +0 -0
- {flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/supernode/start_client_internal.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.23.0.
|
|
3
|
+
Version: 1.23.0.dev20251028
|
|
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
|
|
@@ -17,22 +17,25 @@
|
|
|
17
17
|
|
|
18
18
|
import hashlib
|
|
19
19
|
import zipfile
|
|
20
|
+
from collections.abc import Iterable
|
|
20
21
|
from io import BytesIO
|
|
21
22
|
from pathlib import Path
|
|
22
23
|
from typing import Annotated, Any, Optional, Union
|
|
23
24
|
|
|
24
25
|
import pathspec
|
|
26
|
+
import tomli
|
|
25
27
|
import tomli_w
|
|
26
28
|
import typer
|
|
27
29
|
|
|
28
30
|
from flwr.common.constant import (
|
|
29
|
-
|
|
31
|
+
FAB_CONFIG_FILE,
|
|
30
32
|
FAB_DATE,
|
|
33
|
+
FAB_EXCLUDE_PATTERNS,
|
|
31
34
|
FAB_HASH_TRUNCATION,
|
|
35
|
+
FAB_INCLUDE_PATTERNS,
|
|
32
36
|
FAB_MAX_SIZE,
|
|
33
37
|
)
|
|
34
38
|
|
|
35
|
-
from .config_utils import load as load_toml
|
|
36
39
|
from .config_utils import load_and_validate
|
|
37
40
|
from .utils import is_valid_project_name
|
|
38
41
|
|
|
@@ -112,7 +115,10 @@ def build(
|
|
|
112
115
|
)
|
|
113
116
|
|
|
114
117
|
# Build FAB
|
|
115
|
-
fab_bytes
|
|
118
|
+
fab_bytes = build_fab_from_disk(app)
|
|
119
|
+
|
|
120
|
+
# Calculate hash for filename
|
|
121
|
+
fab_hash = hashlib.sha256(fab_bytes).hexdigest()
|
|
116
122
|
|
|
117
123
|
# Get the name of the zip file
|
|
118
124
|
fab_filename = get_fab_filename(config, fab_hash)
|
|
@@ -125,11 +131,10 @@ def build(
|
|
|
125
131
|
)
|
|
126
132
|
|
|
127
133
|
|
|
128
|
-
def
|
|
129
|
-
"""Build a FAB
|
|
134
|
+
def build_fab_from_disk(app: Path) -> bytes:
|
|
135
|
+
"""Build a FAB from files on disk and return the FAB as bytes.
|
|
130
136
|
|
|
131
|
-
This function
|
|
132
|
-
bundles it into a FAB without performing additional validation.
|
|
137
|
+
This function reads files from disk and bundles them into a FAB.
|
|
133
138
|
|
|
134
139
|
Parameters
|
|
135
140
|
----------
|
|
@@ -138,18 +143,67 @@ def build_fab(app: Path) -> tuple[bytes, str, dict[str, Any]]:
|
|
|
138
143
|
|
|
139
144
|
Returns
|
|
140
145
|
-------
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
- the FAB as bytes
|
|
144
|
-
- the SHA256 hash of the FAB
|
|
145
|
-
- the project configuration (with the 'federations' field removed)
|
|
146
|
+
bytes
|
|
147
|
+
The FAB as bytes.
|
|
146
148
|
"""
|
|
147
149
|
app = app.resolve()
|
|
148
150
|
|
|
149
|
-
#
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
# Collect all files recursively (including pyproject.toml and .gitignore)
|
|
152
|
+
all_files = [f for f in app.rglob("*") if f.is_file()]
|
|
153
|
+
|
|
154
|
+
# Create dict mapping relative paths to Path objects
|
|
155
|
+
files_dict: dict[str, Union[bytes, Path]] = {
|
|
156
|
+
# Ensure consistent path separators across platforms
|
|
157
|
+
str(file_path.relative_to(app)).replace("\\", "/"): file_path
|
|
158
|
+
for file_path in all_files
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
# Build FAB from the files dict
|
|
162
|
+
return build_fab_from_files(files_dict)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def build_fab_from_files(files: dict[str, Union[bytes, Path]]) -> bytes:
|
|
166
|
+
r"""Build a FAB from in-memory files and return the FAB as bytes.
|
|
167
|
+
|
|
168
|
+
This is the core FAB building function that works with in-memory data.
|
|
169
|
+
It accepts either bytes or Path objects as file contents, applies filtering
|
|
170
|
+
rules (include/exclude patterns), and builds the FAB.
|
|
171
|
+
|
|
172
|
+
Parameters
|
|
173
|
+
----------
|
|
174
|
+
files : dict[str, Union[bytes, Path]]
|
|
175
|
+
Dictionary mapping relative file paths to their contents.
|
|
176
|
+
- Keys: Relative paths (strings)
|
|
177
|
+
- Values: Either bytes (file contents) or Path (will be read)
|
|
178
|
+
Must include "pyproject.toml" and optionally ".gitignore".
|
|
179
|
+
|
|
180
|
+
Returns
|
|
181
|
+
-------
|
|
182
|
+
bytes
|
|
183
|
+
The FAB as bytes.
|
|
184
|
+
|
|
185
|
+
Examples
|
|
186
|
+
--------
|
|
187
|
+
Build a FAB from in-memory files::
|
|
188
|
+
|
|
189
|
+
files = {
|
|
190
|
+
"pyproject.toml": b"[project]\nname = 'myapp'\n...",
|
|
191
|
+
".gitignore": b"*.pyc\n__pycache__/\n",
|
|
192
|
+
"src/client.py": Path("/path/to/client.py"),
|
|
193
|
+
"src/server.py": b"print('hello')",
|
|
194
|
+
"README.md": b"# My App\n",
|
|
195
|
+
}
|
|
196
|
+
fab_bytes = build_fab_from_files(files)
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
|
+
def to_bytes(content: Union[bytes, Path]) -> bytes:
|
|
200
|
+
return content.read_bytes() if isinstance(content, Path) else content
|
|
201
|
+
|
|
202
|
+
# Extract, load, and parse pyproject.toml
|
|
203
|
+
if FAB_CONFIG_FILE not in files:
|
|
204
|
+
raise ValueError(f"{FAB_CONFIG_FILE} not found in files")
|
|
205
|
+
pyproject_content = to_bytes(files[FAB_CONFIG_FILE])
|
|
206
|
+
config = tomli.loads(pyproject_content.decode("utf-8"))
|
|
153
207
|
|
|
154
208
|
# Remove the 'federations' field if it exists
|
|
155
209
|
if (
|
|
@@ -159,18 +213,22 @@ def build_fab(app: Path) -> tuple[bytes, str, dict[str, Any]]:
|
|
|
159
213
|
):
|
|
160
214
|
del config["tool"]["flwr"]["federations"]
|
|
161
215
|
|
|
162
|
-
#
|
|
163
|
-
|
|
216
|
+
# Extract and load .gitignore if present
|
|
217
|
+
gitignore_content = None
|
|
218
|
+
if ".gitignore" in files:
|
|
219
|
+
gitignore_content = to_bytes(files[".gitignore"])
|
|
220
|
+
|
|
221
|
+
# Get exclude and include specs
|
|
222
|
+
exclude_spec = get_fab_exclude_pathspec(gitignore_content)
|
|
223
|
+
include_spec = get_fab_include_pathspec()
|
|
164
224
|
|
|
165
|
-
#
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
for
|
|
169
|
-
if not
|
|
170
|
-
and f.suffix in FAB_ALLOWED_EXTENSIONS
|
|
171
|
-
and f.name != "pyproject.toml" # Exclude the original pyproject.toml
|
|
225
|
+
# Filter files based on include/exclude specs
|
|
226
|
+
filtered_paths = [
|
|
227
|
+
path.replace("\\", "/") # Ensure consistent path separators across platforms
|
|
228
|
+
for path in files.keys()
|
|
229
|
+
if include_spec.match_file(path) and not exclude_spec.match_file(path)
|
|
172
230
|
]
|
|
173
|
-
|
|
231
|
+
filtered_paths.sort() # Sort for deterministic output
|
|
174
232
|
|
|
175
233
|
# Create a zip file in memory
|
|
176
234
|
list_file_content = ""
|
|
@@ -178,41 +236,54 @@ def build_fab(app: Path) -> tuple[bytes, str, dict[str, Any]]:
|
|
|
178
236
|
fab_buffer = BytesIO()
|
|
179
237
|
with zipfile.ZipFile(fab_buffer, "w", zipfile.ZIP_DEFLATED) as fab_file:
|
|
180
238
|
# Add pyproject.toml
|
|
181
|
-
write_to_zip(fab_file,
|
|
239
|
+
write_to_zip(fab_file, FAB_CONFIG_FILE, tomli_w.dumps(config))
|
|
182
240
|
|
|
183
|
-
for file_path in
|
|
184
|
-
# Read the file content manually
|
|
185
|
-
file_contents = file_path.read_bytes()
|
|
241
|
+
for file_path in filtered_paths:
|
|
186
242
|
|
|
187
|
-
|
|
188
|
-
|
|
243
|
+
# Get file contents as bytes
|
|
244
|
+
file_content = to_bytes(files[file_path])
|
|
189
245
|
|
|
190
|
-
#
|
|
191
|
-
|
|
192
|
-
file_size_bits = len(file_contents) * 8 # size in bits
|
|
193
|
-
list_file_content += f"{archive_path},{sha256_hash},{file_size_bits}\n"
|
|
246
|
+
# Write file to FAB
|
|
247
|
+
write_to_zip(fab_file, file_path, file_content)
|
|
194
248
|
|
|
195
|
-
|
|
249
|
+
# Calculate file info for CONTENT manifest
|
|
250
|
+
sha256_hash = hashlib.sha256(file_content).hexdigest()
|
|
251
|
+
file_size_bits = len(file_content) * 8 # size in bits
|
|
252
|
+
list_file_content += f"{file_path},{sha256_hash},{file_size_bits}\n"
|
|
253
|
+
|
|
254
|
+
# Add CONTENT manifest to the zip file
|
|
196
255
|
write_to_zip(fab_file, ".info/CONTENT", list_file_content)
|
|
197
256
|
|
|
198
257
|
fab_bytes = fab_buffer.getvalue()
|
|
258
|
+
|
|
259
|
+
# Validate FAB size
|
|
199
260
|
if len(fab_bytes) > FAB_MAX_SIZE:
|
|
200
261
|
raise ValueError(
|
|
201
|
-
f"FAB size exceeds maximum allowed size of {FAB_MAX_SIZE:,} bytes."
|
|
262
|
+
f"FAB size exceeds maximum allowed size of {FAB_MAX_SIZE:,} bytes. "
|
|
202
263
|
"To reduce the package size, consider ignoring unnecessary files "
|
|
203
264
|
"via your `.gitignore` file or excluding them from the build."
|
|
204
265
|
)
|
|
205
266
|
|
|
206
|
-
|
|
267
|
+
return fab_bytes
|
|
207
268
|
|
|
208
|
-
return fab_bytes, fab_hash, config
|
|
209
269
|
|
|
270
|
+
def build_pathspec(patterns: Iterable[str]) -> pathspec.PathSpec:
|
|
271
|
+
"""Build a PathSpec from a list of patterns."""
|
|
272
|
+
return pathspec.PathSpec.from_lines("gitwildmatch", patterns)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def get_fab_include_pathspec() -> pathspec.PathSpec:
|
|
276
|
+
"""Get the PathSpec for files to include in a FAB."""
|
|
277
|
+
return build_pathspec(FAB_INCLUDE_PATTERNS)
|
|
210
278
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
279
|
+
|
|
280
|
+
def get_fab_exclude_pathspec(gitignore_content: Optional[bytes]) -> pathspec.PathSpec:
|
|
281
|
+
"""Get the PathSpec for files to exclude from a FAB.
|
|
282
|
+
|
|
283
|
+
If gitignore_content is provided, its patterns will be combined with the default
|
|
284
|
+
exclude patterns.
|
|
285
|
+
"""
|
|
286
|
+
patterns = list(FAB_EXCLUDE_PATTERNS)
|
|
287
|
+
if gitignore_content:
|
|
288
|
+
patterns += gitignore_content.decode("UTF-8").splitlines()
|
|
218
289
|
return pathspec.PathSpec.from_lines("gitwildmatch", patterns)
|
|
@@ -15,16 +15,18 @@
|
|
|
15
15
|
"""Flower command line interface `run` command."""
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
import hashlib
|
|
18
19
|
import io
|
|
19
20
|
import json
|
|
20
21
|
import subprocess
|
|
21
22
|
from pathlib import Path
|
|
22
|
-
from typing import Annotated, Any, Optional
|
|
23
|
+
from typing import Annotated, Any, Optional, cast
|
|
23
24
|
|
|
24
25
|
import typer
|
|
25
26
|
from rich.console import Console
|
|
26
27
|
|
|
27
|
-
from flwr.cli.build import
|
|
28
|
+
from flwr.cli.build import build_fab_from_disk, get_fab_filename
|
|
29
|
+
from flwr.cli.config_utils import load as load_toml
|
|
28
30
|
from flwr.cli.config_utils import (
|
|
29
31
|
load_and_validate,
|
|
30
32
|
process_loaded_project_config,
|
|
@@ -37,7 +39,7 @@ from flwr.common.config import (
|
|
|
37
39
|
parse_config_args,
|
|
38
40
|
user_config_to_configrecord,
|
|
39
41
|
)
|
|
40
|
-
from flwr.common.constant import CliOutputFormat
|
|
42
|
+
from flwr.common.constant import FAB_CONFIG_FILE, CliOutputFormat
|
|
41
43
|
from flwr.common.logger import print_json_error, redirect_output, restore_output
|
|
42
44
|
from flwr.common.serde import config_record_to_proto, fab_to_proto, user_config_to_proto
|
|
43
45
|
from flwr.common.typing import Fab
|
|
@@ -152,7 +154,9 @@ def _run_with_control_api(
|
|
|
152
154
|
channel = init_channel(app, federation_config, auth_plugin)
|
|
153
155
|
stub = ControlStub(channel)
|
|
154
156
|
|
|
155
|
-
fab_bytes
|
|
157
|
+
fab_bytes = build_fab_from_disk(app)
|
|
158
|
+
fab_hash = hashlib.sha256(fab_bytes).hexdigest()
|
|
159
|
+
config = cast(dict[str, Any], load_toml(app / FAB_CONFIG_FILE))
|
|
156
160
|
fab_id, fab_version = get_metadata_from_config(config)
|
|
157
161
|
|
|
158
162
|
fab = Fab(fab_hash, fab_bytes, {})
|
{flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/common/constant.py
RENAMED
|
@@ -72,13 +72,23 @@ NODE_ID_NUM_BYTES = 8
|
|
|
72
72
|
|
|
73
73
|
# Constants for FAB
|
|
74
74
|
APP_DIR = "apps"
|
|
75
|
-
FAB_ALLOWED_EXTENSIONS = {".py", ".toml", ".md"}
|
|
76
75
|
FAB_CONFIG_FILE = "pyproject.toml"
|
|
77
76
|
FAB_DATE = (2024, 10, 1, 0, 0, 0)
|
|
78
77
|
FAB_HASH_TRUNCATION = 8
|
|
79
78
|
FAB_MAX_SIZE = 10 * 1024 * 1024 # 10 MB
|
|
80
79
|
FLWR_DIR = ".flwr" # The default Flower directory: ~/.flwr/
|
|
81
80
|
FLWR_HOME = "FLWR_HOME" # If set, override the default Flower directory
|
|
81
|
+
# FAB file include patterns (gitignore-style patterns)
|
|
82
|
+
FAB_INCLUDE_PATTERNS = (
|
|
83
|
+
"**/*.py",
|
|
84
|
+
"**/*.toml",
|
|
85
|
+
"**/*.md",
|
|
86
|
+
)
|
|
87
|
+
# FAB file exclude patterns (gitignore-style patterns)
|
|
88
|
+
FAB_EXCLUDE_PATTERNS = (
|
|
89
|
+
"**/__pycache__/**",
|
|
90
|
+
FAB_CONFIG_FILE, # Exclude the original pyproject.toml
|
|
91
|
+
)
|
|
82
92
|
|
|
83
93
|
# Constant for SuperLink
|
|
84
94
|
SUPERLINK_NODE_ID = 1
|
|
@@ -411,10 +411,10 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
|
|
|
411
411
|
) -> Sequence[NodeInfo]:
|
|
412
412
|
"""Retrieve information about nodes based on the specified filters."""
|
|
413
413
|
with self.lock:
|
|
414
|
-
self.
|
|
414
|
+
self._check_and_tag_offline_nodes()
|
|
415
415
|
result = []
|
|
416
|
-
for
|
|
417
|
-
if
|
|
416
|
+
for node_id in self.nodes.keys() if node_ids is None else node_ids:
|
|
417
|
+
if (node := self.nodes.get(node_id)) is None:
|
|
418
418
|
continue
|
|
419
419
|
if owner_aids is not None and node.owner_aid not in owner_aids:
|
|
420
420
|
continue
|
|
@@ -423,11 +423,15 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
|
|
|
423
423
|
result.append(node)
|
|
424
424
|
return result
|
|
425
425
|
|
|
426
|
-
def
|
|
426
|
+
def _check_and_tag_offline_nodes(
|
|
427
|
+
self, node_ids: Optional[list[int]] = None
|
|
428
|
+
) -> None:
|
|
427
429
|
with self.lock:
|
|
428
430
|
# Set all nodes of "online" status to "offline" if they've offline
|
|
429
431
|
current_ts = now().timestamp()
|
|
430
|
-
for
|
|
432
|
+
for node_id in node_ids or self.nodes.keys():
|
|
433
|
+
if (node := self.nodes.get(node_id)) is None:
|
|
434
|
+
continue
|
|
431
435
|
if node.status == NodeStatus.ONLINE:
|
|
432
436
|
if node.online_until <= current_ts:
|
|
433
437
|
node.status = NodeStatus.OFFLINE
|
|
@@ -99,6 +99,10 @@ SQL_CREATE_INDEX_OWNER_AID = """
|
|
|
99
99
|
CREATE INDEX IF NOT EXISTS idx_node_owner_aid ON node(owner_aid);
|
|
100
100
|
"""
|
|
101
101
|
|
|
102
|
+
SQL_CREATE_INDEX_NODE_STATUS = """
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_node_status ON node(status);
|
|
104
|
+
"""
|
|
105
|
+
|
|
102
106
|
SQL_CREATE_TABLE_RUN = """
|
|
103
107
|
CREATE TABLE IF NOT EXISTS run(
|
|
104
108
|
run_id INTEGER UNIQUE,
|
|
@@ -199,6 +203,7 @@ class SqliteLinkState(LinkState, SqliteMixin): # pylint: disable=R0904
|
|
|
199
203
|
SQL_CREATE_TABLE_TOKEN_STORE,
|
|
200
204
|
SQL_CREATE_INDEX_ONLINE_UNTIL,
|
|
201
205
|
SQL_CREATE_INDEX_OWNER_AID,
|
|
206
|
+
SQL_CREATE_INDEX_NODE_STATUS,
|
|
202
207
|
log_queries=log_queries,
|
|
203
208
|
)
|
|
204
209
|
|
|
@@ -638,6 +643,28 @@ class SqliteLinkState(LinkState, SqliteMixin): # pylint: disable=R0904
|
|
|
638
643
|
node.node_id for node in self.get_node_info(statuses=[NodeStatus.ONLINE])
|
|
639
644
|
}
|
|
640
645
|
|
|
646
|
+
def _check_and_tag_offline_nodes(
|
|
647
|
+
self, node_ids: Optional[list[int]] = None
|
|
648
|
+
) -> None:
|
|
649
|
+
"""Check and tag offline nodes."""
|
|
650
|
+
# strftime will convert POSIX timestamp to ISO format
|
|
651
|
+
query = """
|
|
652
|
+
UPDATE node SET status = ?,
|
|
653
|
+
last_deactivated_at =
|
|
654
|
+
strftime("%Y-%m-%dT%H:%M:%f+00:00", online_until, "unixepoch")
|
|
655
|
+
WHERE online_until <= ? AND status == ?
|
|
656
|
+
"""
|
|
657
|
+
params = [
|
|
658
|
+
NodeStatus.OFFLINE,
|
|
659
|
+
now().timestamp(),
|
|
660
|
+
NodeStatus.ONLINE,
|
|
661
|
+
]
|
|
662
|
+
if node_ids is not None:
|
|
663
|
+
placeholders = ",".join(["?"] * len(node_ids))
|
|
664
|
+
query += f" AND node_id IN ({placeholders})"
|
|
665
|
+
params.extend(uint64_to_int64(node_id) for node_id in node_ids)
|
|
666
|
+
self.conn.execute(query, params)
|
|
667
|
+
|
|
641
668
|
def get_node_info(
|
|
642
669
|
self,
|
|
643
670
|
*,
|
|
@@ -646,29 +673,12 @@ class SqliteLinkState(LinkState, SqliteMixin): # pylint: disable=R0904
|
|
|
646
673
|
statuses: Optional[Sequence[str]] = None,
|
|
647
674
|
) -> Sequence[NodeInfo]:
|
|
648
675
|
"""Retrieve information about nodes based on the specified filters."""
|
|
649
|
-
if self.conn is None:
|
|
650
|
-
raise AttributeError("LinkState is not initialized.")
|
|
651
|
-
|
|
652
676
|
with self.conn:
|
|
653
|
-
|
|
654
|
-
current_dt = now()
|
|
655
|
-
# strftime will convert POSIX timestamp to ISO format
|
|
656
|
-
query = """
|
|
657
|
-
UPDATE node SET status = ?,
|
|
658
|
-
last_deactivated_at =
|
|
659
|
-
strftime("%Y-%m-%dT%H:%M:%f+00:00", online_until, "unixepoch")
|
|
660
|
-
WHERE online_until <= ? AND status == ?
|
|
661
|
-
"""
|
|
662
|
-
params: list[Any] = [
|
|
663
|
-
NodeStatus.OFFLINE,
|
|
664
|
-
current_dt.timestamp(),
|
|
665
|
-
NodeStatus.ONLINE,
|
|
666
|
-
]
|
|
667
|
-
self.conn.execute(query, params)
|
|
677
|
+
self._check_and_tag_offline_nodes()
|
|
668
678
|
|
|
669
679
|
# Build the WHERE clause based on provided filters
|
|
670
680
|
conditions = []
|
|
671
|
-
params = []
|
|
681
|
+
params: list[Any] = []
|
|
672
682
|
if node_ids is not None:
|
|
673
683
|
sint64_node_ids = [uint64_to_int64(node_id) for node_id in node_ids]
|
|
674
684
|
placeholders = ",".join(["?"] * len(sint64_node_ids))
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "flwr-nightly"
|
|
7
|
-
version = "1.23.0.
|
|
7
|
+
version = "1.23.0.dev20251028"
|
|
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
|
{flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/app/exception.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
|
{flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/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.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/login/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/py/flwr/cli/login/login.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.23.0.dev20251027 → flwr_nightly-1.23.0.dev20251028}/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
|