flwr-nightly 1.18.0.dev20250415__tar.gz → 1.18.0.dev20250417__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/PKG-INFO +1 -1
- flwr_nightly-1.18.0.dev20250417/py/flwr/common/secure_aggregation/crypto/shamir.py +97 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/pyproject.toml +1 -1
- flwr_nightly-1.18.0.dev20250415/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -75
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/README.md +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/auth_plugin/oidc_cli_plugin.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/cli_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/constant.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/log.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/login/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/login/login.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/ls.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/LICENSE.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/README.baseline.md.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/stop.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/clientapp/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/clientapp/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/clientapp/clientappio_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/clientapp/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/grpc_rere_client/grpc_adapter.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/heartbeat.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/nodestate/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/nodestate/in_memory_nodestate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/nodestate/nodestate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/nodestate/nodestate_factory.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/run_info_store.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/supernode/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/supernode/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/args.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/auth_plugin/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/auth_plugin/auth_plugin.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/event_log_plugin/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/event_log_plugin/event_log_plugin.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/exit.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/exit_code.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/arrayrecord.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/configrecord.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/metricrecord.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/recorddict.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/recorddict_compat.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/clientappio_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/clientappio_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/clientappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/clientappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/exec_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/exec_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/exec_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/log_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/log_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/log_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/log_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/message_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/message_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/message_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/message_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/recorddict_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/recorddict_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/recorddict_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/recorddict_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/run_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/run_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/serverappio_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/serverappio_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/serverappio_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/serverappio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/simulationio_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/simulationio_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/simulationio_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/simulationio_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/py.typed +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/compat/grid_client_proxy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/fleet_event_log_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/grid/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/grid/grid.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/grid/grpc_grid.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/grid/inmemory_grid.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/serverapp/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/serverapp/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/ffs/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/ffs/disk_ffs.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/ffs/ffs.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/in_memory_linkstate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/linkstate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/linkstate_factory.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/linkstate/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/serverappio/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/serverappio/serverappio_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/serverappio/serverappio_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/simulation/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/simulation/simulationio_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/simulation/simulationio_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/superlink/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/legacy_app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/simulation/simulationio_connection.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/__init__.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/app.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/deployment.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/exec_event_log_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/exec_grpc.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/exec_servicer.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/exec_user_auth_interceptor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/executor.py +0 -0
- {flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/superexec/simulation.py +0 -0
@@ -0,0 +1,97 @@
|
|
1
|
+
# Copyright 2025 Flower Labs GmbH. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
"""Shamir's secret sharing."""
|
16
|
+
|
17
|
+
|
18
|
+
import os
|
19
|
+
from concurrent.futures import ThreadPoolExecutor
|
20
|
+
|
21
|
+
from Crypto.Protocol.SecretSharing import Shamir
|
22
|
+
from Crypto.Util.Padding import pad, unpad
|
23
|
+
|
24
|
+
|
25
|
+
def create_shares(secret: bytes, threshold: int, num: int) -> list[bytes]:
|
26
|
+
"""Return a list of shares (bytes).
|
27
|
+
|
28
|
+
Shares are created from the provided secret using Shamir's secret sharing.
|
29
|
+
"""
|
30
|
+
# Shamir's secret sharing requires the secret to be a multiple of 16 bytes
|
31
|
+
# (AES block size). Pad the secret to the next multiple of 16 bytes.
|
32
|
+
secret_padded = pad(secret, 16)
|
33
|
+
chunks = [secret_padded[i : i + 16] for i in range(0, len(secret_padded), 16)]
|
34
|
+
|
35
|
+
# The share list should contain shares of the secret, and each share consists of:
|
36
|
+
# <4 bytes of index><share of chunk1><share of chunk2>...<share of chunkN>
|
37
|
+
share_list: list[bytearray] = [bytearray() for _ in range(num)]
|
38
|
+
|
39
|
+
# Create shares for each chunk in parallel
|
40
|
+
max_workers = min(len(chunks), os.cpu_count() or 1)
|
41
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
42
|
+
for chunk_shares in executor.map(
|
43
|
+
lambda chunk: _shamir_split(threshold, num, chunk), chunks
|
44
|
+
):
|
45
|
+
for idx, share in chunk_shares:
|
46
|
+
# Initialize the share with the index if it is empty
|
47
|
+
if not share_list[idx - 1]:
|
48
|
+
share_list[idx - 1] += idx.to_bytes(4, "little", signed=False)
|
49
|
+
|
50
|
+
# Append the share to the bytes
|
51
|
+
share_list[idx - 1] += share
|
52
|
+
|
53
|
+
return [bytes(share) for share in share_list]
|
54
|
+
|
55
|
+
|
56
|
+
def _shamir_split(threshold: int, num: int, chunk: bytes) -> list[tuple[int, bytes]]:
|
57
|
+
"""Create shares for a chunk using Shamir's secret sharing.
|
58
|
+
|
59
|
+
Each share is a tuple (index, share_bytes), where share_bytes is 16 bytes long.
|
60
|
+
"""
|
61
|
+
return Shamir.split(threshold, num, chunk, ssss=False)
|
62
|
+
|
63
|
+
|
64
|
+
def combine_shares(share_list: list[bytes]) -> bytes:
|
65
|
+
"""Reconstruct the secret from a list of shares."""
|
66
|
+
# Compute the number of chunks
|
67
|
+
# Each share contains 4 bytes of index and 16 bytes of share for each chunk
|
68
|
+
chunk_num = (len(share_list[0]) - 4) >> 4
|
69
|
+
|
70
|
+
secret_padded = bytearray(0)
|
71
|
+
chunk_shares_list: list[list[tuple[int, bytes]]] = [[] for _ in range(chunk_num)]
|
72
|
+
|
73
|
+
# Split shares into chunks
|
74
|
+
for share in share_list:
|
75
|
+
# The first 4 bytes are the index
|
76
|
+
index = int.from_bytes(share[:4], "little", signed=False)
|
77
|
+
for i in range(chunk_num):
|
78
|
+
start = (i << 4) + 4
|
79
|
+
chunk_shares_list[i].append((index, share[start : start + 16]))
|
80
|
+
|
81
|
+
# Combine shares for each chunk in parallel
|
82
|
+
max_workers = min(chunk_num, os.cpu_count() or 1)
|
83
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
84
|
+
for chunk in executor.map(_shamir_combine, chunk_shares_list):
|
85
|
+
secret_padded += chunk
|
86
|
+
|
87
|
+
try:
|
88
|
+
secret = unpad(bytes(secret_padded), 16)
|
89
|
+
except ValueError:
|
90
|
+
# If unpadding fails, it means the shares are not valid
|
91
|
+
raise ValueError("Failed to combine shares") from None
|
92
|
+
return secret
|
93
|
+
|
94
|
+
|
95
|
+
def _shamir_combine(shares: list[tuple[int, bytes]]) -> bytes:
|
96
|
+
"""Reconstruct a chunk from shares using Shamir's secret sharing."""
|
97
|
+
return Shamir.combine(shares, ssss=False)
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "flwr-nightly"
|
7
|
-
version = "1.18.0.
|
7
|
+
version = "1.18.0.dev20250417"
|
8
8
|
description = "Flower: A Friendly Federated AI Framework"
|
9
9
|
license = "Apache-2.0"
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
@@ -1,75 +0,0 @@
|
|
1
|
-
# Copyright 2025 Flower Labs GmbH. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
# ==============================================================================
|
15
|
-
"""Shamir's secret sharing."""
|
16
|
-
|
17
|
-
|
18
|
-
import pickle
|
19
|
-
from concurrent.futures import ThreadPoolExecutor
|
20
|
-
from typing import cast
|
21
|
-
|
22
|
-
from Crypto.Protocol.SecretSharing import Shamir
|
23
|
-
from Crypto.Util.Padding import pad, unpad
|
24
|
-
|
25
|
-
|
26
|
-
def create_shares(secret: bytes, threshold: int, num: int) -> list[bytes]:
|
27
|
-
"""Return list of shares (bytes)."""
|
28
|
-
secret_padded = pad(secret, 16)
|
29
|
-
secret_padded_chunk = [
|
30
|
-
(threshold, num, secret_padded[i : i + 16])
|
31
|
-
for i in range(0, len(secret_padded), 16)
|
32
|
-
]
|
33
|
-
share_list: list[list[tuple[int, bytes]]] = [[] for _ in range(num)]
|
34
|
-
|
35
|
-
with ThreadPoolExecutor(max_workers=10) as executor:
|
36
|
-
for chunk_shares in executor.map(
|
37
|
-
lambda arg: _shamir_split(*arg), secret_padded_chunk
|
38
|
-
):
|
39
|
-
for idx, share in chunk_shares:
|
40
|
-
# Index in `chunk_shares` starts from 1
|
41
|
-
share_list[idx - 1].append((idx, share))
|
42
|
-
|
43
|
-
return [pickle.dumps(shares) for shares in share_list]
|
44
|
-
|
45
|
-
|
46
|
-
def _shamir_split(threshold: int, num: int, chunk: bytes) -> list[tuple[int, bytes]]:
|
47
|
-
return Shamir.split(threshold, num, chunk, ssss=False)
|
48
|
-
|
49
|
-
|
50
|
-
# Reconstructing secret with PyCryptodome
|
51
|
-
def combine_shares(share_list: list[bytes]) -> bytes:
|
52
|
-
"""Reconstruct secret from shares."""
|
53
|
-
unpickled_share_list: list[list[tuple[int, bytes]]] = [
|
54
|
-
cast(list[tuple[int, bytes]], pickle.loads(share)) for share in share_list
|
55
|
-
]
|
56
|
-
|
57
|
-
chunk_num = len(unpickled_share_list[0])
|
58
|
-
secret_padded = bytearray(0)
|
59
|
-
chunk_shares_list: list[list[tuple[int, bytes]]] = []
|
60
|
-
for i in range(chunk_num):
|
61
|
-
chunk_shares: list[tuple[int, bytes]] = []
|
62
|
-
for share in unpickled_share_list:
|
63
|
-
chunk_shares.append(share[i])
|
64
|
-
chunk_shares_list.append(chunk_shares)
|
65
|
-
|
66
|
-
with ThreadPoolExecutor(max_workers=10) as executor:
|
67
|
-
for chunk in executor.map(_shamir_combine, chunk_shares_list):
|
68
|
-
secret_padded += chunk
|
69
|
-
|
70
|
-
secret = unpad(secret_padded, 16)
|
71
|
-
return bytes(secret)
|
72
|
-
|
73
|
-
|
74
|
-
def _shamir_combine(shares: list[tuple[int, bytes]]) -> bytes:
|
75
|
-
return Shamir.combine(shares, ssss=False)
|
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.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/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.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/login/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/login/login.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/new/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/cli/run/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/client.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/client_app.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/clientapp/app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/heartbeat.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/comms_mods.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/mod/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/numpy_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/run_info_store.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/supernode/app.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/client/typing.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/address.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/config.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/constant.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/context.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/exit.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit/exit_code.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/exit_handlers.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/logger.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/message.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/object_ref.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/parameter.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/pyproject.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.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/retry_invoker.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.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/telemetry.py
RENAMED
File without changes
|
{flwr_nightly-1.18.0.dev20250415 → flwr_nightly-1.18.0.dev20250417}/py/flwr/common/typing.py
RENAMED
File without changes
|