flwr-nightly 1.12.0.dev20241006__tar.gz → 1.12.0.dev20241007__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.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/PKG-INFO +1 -1
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/pyproject.toml +8 -19
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/constant.py +3 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/message.py +32 -15
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/aggregate.py +22 -8
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/in_memory_state.py +30 -2
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/sqlite_state.py +29 -2
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/LICENSE +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/README.md +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/log.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/clientapp/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/clientapp/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/clientapp/utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/heartbeat.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/supernode/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/supernode/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/configsrecord.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/metricsrecord.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/parametersrecord.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/recordset.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/clientappio_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/clientappio_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/common_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/common_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/control_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/control_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/control_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/control_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/driver_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/driver_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/exec_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/exec_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/message_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/message_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/message_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/message_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/run_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/run_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/driver/driver.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/ffs/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/ffs/ffs.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/state.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/superlink/state/utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/__init__.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/app.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/deployment.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/exec_grpc.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/exec_servicer.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/executor.py +0 -0
- {flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/superexec/simulation.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "flwr-nightly"
|
|
7
|
-
version = "1.12.0.
|
|
7
|
+
version = "1.12.0.dev20241007"
|
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
|
@@ -43,12 +43,8 @@ classifiers = [
|
|
|
43
43
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
44
44
|
"Typing :: Typed",
|
|
45
45
|
]
|
|
46
|
-
packages = [
|
|
47
|
-
|
|
48
|
-
]
|
|
49
|
-
exclude = [
|
|
50
|
-
"src/py/**/*_test.py",
|
|
51
|
-
]
|
|
46
|
+
packages = [{ include = "flwr", from = "src/py" }]
|
|
47
|
+
exclude = ["src/py/**/*_test.py"]
|
|
52
48
|
|
|
53
49
|
[tool.poetry.scripts]
|
|
54
50
|
# `flwr` CLI
|
|
@@ -62,7 +58,7 @@ flower-superlink = "flwr.server.app:run_superlink"
|
|
|
62
58
|
flower-supernode = "flwr.client.supernode.app:run_supernode"
|
|
63
59
|
flower-server-app = "flwr.server.run_serverapp:run_server_app"
|
|
64
60
|
flwr-clientapp = "flwr.client.clientapp:flwr_clientapp"
|
|
65
|
-
flower-client-app = "flwr.client.supernode:run_client_app"
|
|
61
|
+
flower-client-app = "flwr.client.supernode:run_client_app" # Deprecated
|
|
66
62
|
|
|
67
63
|
[tool.poetry.dependencies]
|
|
68
64
|
python = "^3.9"
|
|
@@ -96,6 +92,7 @@ types-setuptools = "==69.0.0.20240125"
|
|
|
96
92
|
clang-format = "==17.0.6"
|
|
97
93
|
isort = "==5.13.2"
|
|
98
94
|
black = { version = "==24.2.0", extras = ["jupyter"] }
|
|
95
|
+
taplo = "==0.9.3"
|
|
99
96
|
docformatter = "==1.7.5"
|
|
100
97
|
mypy = "==1.8.0"
|
|
101
98
|
pylint = "==3.0.3"
|
|
@@ -160,10 +157,7 @@ disable = "duplicate-code,too-few-public-methods,useless-import-alias"
|
|
|
160
157
|
[tool.pytest.ini_options]
|
|
161
158
|
minversion = "6.2"
|
|
162
159
|
addopts = "-qq"
|
|
163
|
-
testpaths = [
|
|
164
|
-
"src/py/flwr",
|
|
165
|
-
"src/py/flwr_tool",
|
|
166
|
-
]
|
|
160
|
+
testpaths = ["src/py/flwr", "src/py/flwr_tool"]
|
|
167
161
|
filterwarnings = "ignore::DeprecationWarning"
|
|
168
162
|
|
|
169
163
|
[tool.pytest-watcher]
|
|
@@ -176,17 +170,12 @@ patterns = ["*.py"]
|
|
|
176
170
|
ignore_patterns = []
|
|
177
171
|
|
|
178
172
|
[tool.mypy]
|
|
179
|
-
plugins = [
|
|
180
|
-
"numpy.typing.mypy_plugin",
|
|
181
|
-
]
|
|
173
|
+
plugins = ["numpy.typing.mypy_plugin"]
|
|
182
174
|
ignore_missing_imports = true
|
|
183
175
|
strict = true
|
|
184
176
|
|
|
185
177
|
[[tool.mypy.overrides]]
|
|
186
|
-
module = [
|
|
187
|
-
"importlib.metadata.*",
|
|
188
|
-
"importlib_metadata.*",
|
|
189
|
-
]
|
|
178
|
+
module = ["importlib.metadata.*", "importlib_metadata.*"]
|
|
190
179
|
follow_imports = "skip"
|
|
191
180
|
follow_imports_for_stubs = true
|
|
192
181
|
disallow_untyped_calls = false
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/constant.py
RENAMED
|
@@ -78,6 +78,9 @@ GRPC_ADAPTER_METADATA_SHOULD_EXIT_KEY = "should-exit"
|
|
|
78
78
|
GRPC_ADAPTER_METADATA_MESSAGE_MODULE_KEY = "grpc-message-module"
|
|
79
79
|
GRPC_ADAPTER_METADATA_MESSAGE_QUALNAME_KEY = "grpc-message-qualname"
|
|
80
80
|
|
|
81
|
+
# Message TTL
|
|
82
|
+
MESSAGE_TTL_TOLERANCE = 1e-1
|
|
83
|
+
|
|
81
84
|
|
|
82
85
|
class MessageType:
|
|
83
86
|
"""Message type."""
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/common/message.py
RENAMED
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import time
|
|
20
|
-
import
|
|
20
|
+
from logging import WARNING
|
|
21
21
|
from typing import Optional, cast
|
|
22
22
|
|
|
23
|
+
from .constant import MESSAGE_TTL_TOLERANCE
|
|
24
|
+
from .logger import log
|
|
23
25
|
from .record import RecordSet
|
|
24
26
|
|
|
25
27
|
DEFAULT_TTL = 3600
|
|
@@ -289,13 +291,6 @@ class Message:
|
|
|
289
291
|
|
|
290
292
|
ttl = msg.meta.ttl - (reply.meta.created_at - msg.meta.created_at)
|
|
291
293
|
"""
|
|
292
|
-
if ttl:
|
|
293
|
-
warnings.warn(
|
|
294
|
-
"A custom TTL was set, but note that the SuperLink does not enforce "
|
|
295
|
-
"the TTL yet. The SuperLink will start enforcing the TTL in a future "
|
|
296
|
-
"version of Flower.",
|
|
297
|
-
stacklevel=2,
|
|
298
|
-
)
|
|
299
294
|
# If no TTL passed, use default for message creation (will update after
|
|
300
295
|
# message creation)
|
|
301
296
|
ttl_ = DEFAULT_TTL if ttl is None else ttl
|
|
@@ -309,6 +304,8 @@ class Message:
|
|
|
309
304
|
)
|
|
310
305
|
message.metadata.ttl = ttl
|
|
311
306
|
|
|
307
|
+
self._limit_task_res_ttl(message)
|
|
308
|
+
|
|
312
309
|
return message
|
|
313
310
|
|
|
314
311
|
def create_reply(self, content: RecordSet, ttl: float | None = None) -> Message:
|
|
@@ -334,13 +331,6 @@ class Message:
|
|
|
334
331
|
Message
|
|
335
332
|
A new `Message` instance representing the reply.
|
|
336
333
|
"""
|
|
337
|
-
if ttl:
|
|
338
|
-
warnings.warn(
|
|
339
|
-
"A custom TTL was set, but note that the SuperLink does not enforce "
|
|
340
|
-
"the TTL yet. The SuperLink will start enforcing the TTL in a future "
|
|
341
|
-
"version of Flower.",
|
|
342
|
-
stacklevel=2,
|
|
343
|
-
)
|
|
344
334
|
# If no TTL passed, use default for message creation (will update after
|
|
345
335
|
# message creation)
|
|
346
336
|
ttl_ = DEFAULT_TTL if ttl is None else ttl
|
|
@@ -357,6 +347,8 @@ class Message:
|
|
|
357
347
|
)
|
|
358
348
|
message.metadata.ttl = ttl
|
|
359
349
|
|
|
350
|
+
self._limit_task_res_ttl(message)
|
|
351
|
+
|
|
360
352
|
return message
|
|
361
353
|
|
|
362
354
|
def __repr__(self) -> str:
|
|
@@ -370,6 +362,31 @@ class Message:
|
|
|
370
362
|
)
|
|
371
363
|
return f"{self.__class__.__qualname__}({view})"
|
|
372
364
|
|
|
365
|
+
def _limit_task_res_ttl(self, message: Message) -> None:
|
|
366
|
+
"""Limit the TaskRes TTL to not exceed the expiration time of the TaskIns it
|
|
367
|
+
replies to.
|
|
368
|
+
|
|
369
|
+
Parameters
|
|
370
|
+
----------
|
|
371
|
+
message : Message
|
|
372
|
+
The message to which the TaskRes is replying.
|
|
373
|
+
"""
|
|
374
|
+
# Calculate the maximum allowed TTL
|
|
375
|
+
max_allowed_ttl = (
|
|
376
|
+
self.metadata.created_at + self.metadata.ttl - message.metadata.created_at
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
if message.metadata.ttl - max_allowed_ttl > MESSAGE_TTL_TOLERANCE:
|
|
380
|
+
log(
|
|
381
|
+
WARNING,
|
|
382
|
+
"The reply TTL of %.2f seconds exceeded the "
|
|
383
|
+
"allowed maximum of %.2f seconds. "
|
|
384
|
+
"The TTL has been updated to the allowed maximum.",
|
|
385
|
+
message.metadata.ttl,
|
|
386
|
+
max_allowed_ttl,
|
|
387
|
+
)
|
|
388
|
+
message.metadata.ttl = max_allowed_ttl
|
|
389
|
+
|
|
373
390
|
|
|
374
391
|
def _create_reply_metadata(msg: Message, ttl: float) -> Metadata:
|
|
375
392
|
"""Construct metadata for a reply message."""
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"""Aggregation functions for strategy implementations."""
|
|
16
16
|
# mypy: disallow_untyped_calls=False
|
|
17
17
|
|
|
18
|
-
from functools import reduce
|
|
19
|
-
from typing import Any, Callable
|
|
18
|
+
from functools import partial, reduce
|
|
19
|
+
from typing import Any, Callable, Union
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
@@ -52,17 +52,31 @@ def aggregate_inplace(results: list[tuple[ClientProxy, FitRes]]) -> NDArrays:
|
|
|
52
52
|
fit_res.num_examples / num_examples_total for _, fit_res in results
|
|
53
53
|
]
|
|
54
54
|
|
|
55
|
+
def _try_inplace(
|
|
56
|
+
x: NDArray, y: Union[NDArray, float], np_binary_op: np.ufunc
|
|
57
|
+
) -> NDArray:
|
|
58
|
+
return ( # type: ignore[no-any-return]
|
|
59
|
+
np_binary_op(x, y, out=x)
|
|
60
|
+
if np.can_cast(y, x.dtype, casting="same_kind")
|
|
61
|
+
else np_binary_op(x, np.array(y, x.dtype), out=x)
|
|
62
|
+
)
|
|
63
|
+
|
|
55
64
|
# Let's do in-place aggregation
|
|
56
65
|
# Get first result, then add up each other
|
|
57
66
|
params = [
|
|
58
|
-
scaling_factors[0]
|
|
67
|
+
_try_inplace(x, scaling_factors[0], np_binary_op=np.multiply)
|
|
68
|
+
for x in parameters_to_ndarrays(results[0][1].parameters)
|
|
59
69
|
]
|
|
60
|
-
|
|
70
|
+
|
|
71
|
+
for i, (_, fit_res) in enumerate(results[1:], start=1):
|
|
61
72
|
res = (
|
|
62
|
-
scaling_factors[i
|
|
73
|
+
_try_inplace(x, scaling_factors[i], np_binary_op=np.multiply)
|
|
63
74
|
for x in parameters_to_ndarrays(fit_res.parameters)
|
|
64
75
|
)
|
|
65
|
-
params = [
|
|
76
|
+
params = [
|
|
77
|
+
reduce(partial(_try_inplace, np_binary_op=np.add), layer_updates)
|
|
78
|
+
for layer_updates in zip(params, res)
|
|
79
|
+
]
|
|
66
80
|
|
|
67
81
|
return params
|
|
68
82
|
|
|
@@ -128,7 +142,7 @@ def aggregate_bulyan(
|
|
|
128
142
|
|
|
129
143
|
Parameters
|
|
130
144
|
----------
|
|
131
|
-
results:
|
|
145
|
+
results: list[tuple[NDArrays, int]]
|
|
132
146
|
Weights and number of samples for each of the client.
|
|
133
147
|
num_malicious: int
|
|
134
148
|
The maximum number of malicious clients.
|
|
@@ -332,7 +346,7 @@ def _aggregate_n_closest_weights(
|
|
|
332
346
|
----------
|
|
333
347
|
reference_weights: NDArrays
|
|
334
348
|
The weights from which the distances will be computed
|
|
335
|
-
results:
|
|
349
|
+
results: list[tuple[NDArrays, int]]
|
|
336
350
|
The weights from models
|
|
337
351
|
beta_closest: int
|
|
338
352
|
The number of the closest distance weights that will be averaged
|
|
@@ -17,12 +17,16 @@
|
|
|
17
17
|
|
|
18
18
|
import threading
|
|
19
19
|
import time
|
|
20
|
-
from logging import ERROR
|
|
20
|
+
from logging import ERROR, WARNING
|
|
21
21
|
from typing import Optional
|
|
22
22
|
from uuid import UUID, uuid4
|
|
23
23
|
|
|
24
24
|
from flwr.common import log, now
|
|
25
|
-
from flwr.common.constant import
|
|
25
|
+
from flwr.common.constant import (
|
|
26
|
+
MESSAGE_TTL_TOLERANCE,
|
|
27
|
+
NODE_ID_NUM_BYTES,
|
|
28
|
+
RUN_ID_NUM_BYTES,
|
|
29
|
+
)
|
|
26
30
|
from flwr.common.typing import Run, UserConfig
|
|
27
31
|
from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611
|
|
28
32
|
from flwr.server.superlink.state.state import State
|
|
@@ -83,6 +87,7 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
|
|
|
83
87
|
|
|
84
88
|
# Find TaskIns for node_id that were not delivered yet
|
|
85
89
|
task_ins_list: list[TaskIns] = []
|
|
90
|
+
current_time = time.time()
|
|
86
91
|
with self.lock:
|
|
87
92
|
for _, task_ins in self.task_ins_store.items():
|
|
88
93
|
# pylint: disable=too-many-boolean-expressions
|
|
@@ -91,11 +96,13 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
|
|
|
91
96
|
and task_ins.task.consumer.anonymous is False
|
|
92
97
|
and task_ins.task.consumer.node_id == node_id
|
|
93
98
|
and task_ins.task.delivered_at == ""
|
|
99
|
+
and task_ins.task.created_at + task_ins.task.ttl > current_time
|
|
94
100
|
) or (
|
|
95
101
|
node_id is None # Anonymous
|
|
96
102
|
and task_ins.task.consumer.anonymous is True
|
|
97
103
|
and task_ins.task.consumer.node_id == 0
|
|
98
104
|
and task_ins.task.delivered_at == ""
|
|
105
|
+
and task_ins.task.created_at + task_ins.task.ttl > current_time
|
|
99
106
|
):
|
|
100
107
|
task_ins_list.append(task_ins)
|
|
101
108
|
if limit and len(task_ins_list) == limit:
|
|
@@ -134,6 +141,27 @@ class InMemoryState(State): # pylint: disable=R0902,R0904
|
|
|
134
141
|
)
|
|
135
142
|
return None
|
|
136
143
|
|
|
144
|
+
# Fail if the TaskRes TTL exceeds the
|
|
145
|
+
# expiration time of the TaskIns it replies to.
|
|
146
|
+
# Condition: TaskIns.created_at + TaskIns.ttl ≥
|
|
147
|
+
# TaskRes.created_at + TaskRes.ttl
|
|
148
|
+
# A small tolerance is introduced to account
|
|
149
|
+
# for floating-point precision issues.
|
|
150
|
+
max_allowed_ttl = (
|
|
151
|
+
task_ins.task.created_at + task_ins.task.ttl - task_res.task.created_at
|
|
152
|
+
)
|
|
153
|
+
if task_res.task.ttl and (
|
|
154
|
+
task_res.task.ttl - max_allowed_ttl > MESSAGE_TTL_TOLERANCE
|
|
155
|
+
):
|
|
156
|
+
log(
|
|
157
|
+
WARNING,
|
|
158
|
+
"Received TaskRes with TTL %.2f "
|
|
159
|
+
"exceeding the allowed maximum TTL %.2f.",
|
|
160
|
+
task_res.task.ttl,
|
|
161
|
+
max_allowed_ttl,
|
|
162
|
+
)
|
|
163
|
+
return None
|
|
164
|
+
|
|
137
165
|
# Validate run_id
|
|
138
166
|
if task_res.run_id not in self.run_ids:
|
|
139
167
|
log(ERROR, "`run_id` is invalid")
|
|
@@ -20,12 +20,16 @@ import re
|
|
|
20
20
|
import sqlite3
|
|
21
21
|
import time
|
|
22
22
|
from collections.abc import Sequence
|
|
23
|
-
from logging import DEBUG, ERROR
|
|
23
|
+
from logging import DEBUG, ERROR, WARNING
|
|
24
24
|
from typing import Any, Optional, Union, cast
|
|
25
25
|
from uuid import UUID, uuid4
|
|
26
26
|
|
|
27
27
|
from flwr.common import log, now
|
|
28
|
-
from flwr.common.constant import
|
|
28
|
+
from flwr.common.constant import (
|
|
29
|
+
MESSAGE_TTL_TOLERANCE,
|
|
30
|
+
NODE_ID_NUM_BYTES,
|
|
31
|
+
RUN_ID_NUM_BYTES,
|
|
32
|
+
)
|
|
29
33
|
from flwr.common.typing import Run, UserConfig
|
|
30
34
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
|
31
35
|
from flwr.proto.recordset_pb2 import RecordSet # pylint: disable=E0611
|
|
@@ -295,6 +299,7 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
295
299
|
WHERE consumer_anonymous == 1
|
|
296
300
|
AND consumer_node_id == 0
|
|
297
301
|
AND delivered_at = ""
|
|
302
|
+
AND (created_at + ttl) > CAST(strftime('%s', 'now') AS REAL)
|
|
298
303
|
"""
|
|
299
304
|
else:
|
|
300
305
|
# Convert the uint64 value to sint64 for SQLite
|
|
@@ -307,6 +312,7 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
307
312
|
WHERE consumer_anonymous == 0
|
|
308
313
|
AND consumer_node_id == :node_id
|
|
309
314
|
AND delivered_at = ""
|
|
315
|
+
AND (created_at + ttl) > CAST(strftime('%s', 'now') AS REAL)
|
|
310
316
|
"""
|
|
311
317
|
|
|
312
318
|
if limit is not None:
|
|
@@ -383,6 +389,27 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
383
389
|
)
|
|
384
390
|
return None
|
|
385
391
|
|
|
392
|
+
# Fail if the TaskRes TTL exceeds the
|
|
393
|
+
# expiration time of the TaskIns it replies to.
|
|
394
|
+
# Condition: TaskIns.created_at + TaskIns.ttl ≥
|
|
395
|
+
# TaskRes.created_at + TaskRes.ttl
|
|
396
|
+
# A small tolerance is introduced to account
|
|
397
|
+
# for floating-point precision issues.
|
|
398
|
+
max_allowed_ttl = (
|
|
399
|
+
task_ins["created_at"] + task_ins["ttl"] - task_res.task.created_at
|
|
400
|
+
)
|
|
401
|
+
if task_res.task.ttl and (
|
|
402
|
+
task_res.task.ttl - max_allowed_ttl > MESSAGE_TTL_TOLERANCE
|
|
403
|
+
):
|
|
404
|
+
log(
|
|
405
|
+
WARNING,
|
|
406
|
+
"Received TaskRes with TTL %.2f "
|
|
407
|
+
"exceeding the allowed maximum TTL %.2f.",
|
|
408
|
+
task_res.task.ttl,
|
|
409
|
+
max_allowed_ttl,
|
|
410
|
+
)
|
|
411
|
+
return None
|
|
412
|
+
|
|
386
413
|
# Store TaskRes
|
|
387
414
|
task_res.task_id = str(task_id)
|
|
388
415
|
data = (task_res_to_dict(task_res),)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/build.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/config_utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/example.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/install.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/new/new.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
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/run/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/run/run.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/cli/utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/app.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/client.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/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
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/heartbeat.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
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/mod/utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20241006 → flwr_nightly-1.12.0.dev20241007}/src/py/flwr/client/node_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|