flwr-nightly 1.11.0.dev20240804__tar.gz → 1.11.0.dev20240806__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.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/PKG-INFO +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/pyproject.toml +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/config_utils.py +27 -8
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/new.py +10 -9
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/README.md.tpl +1 -1
- flwr_nightly-1.11.0.dev20240806/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +1 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.huggingface.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +9 -8
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +5 -8
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.huggingface.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +7 -6
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +4 -5
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/task.huggingface.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +2 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +14 -20
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +16 -4
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +2 -2
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +3 -3
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -2
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +2 -2
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_rere_client/grpc_adapter.py +7 -0
- flwr_nightly-1.11.0.dev20240806/src/py/flwr/proto/driver_pb2.py +51 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/driver_pb2.pyi +7 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/driver_pb2_grpc.py +35 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/driver_pb2_grpc.pyi +14 -0
- flwr_nightly-1.11.0.dev20240806/src/py/flwr/proto/fleet_pb2.py +56 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fleet_pb2_grpc.py +35 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fleet_pb2_grpc.pyi +14 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/run_pb2.py +8 -8
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/run_pb2.pyi +4 -1
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/driver/driver_servicer.py +7 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +7 -0
- flwr_nightly-1.11.0.dev20240804/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -1
- flwr_nightly-1.11.0.dev20240804/src/py/flwr/proto/driver_pb2.py +0 -50
- flwr_nightly-1.11.0.dev20240804/src/py/flwr/proto/fleet_pb2.py +0 -55
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/README.md +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/install.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_adapter_client/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_adapter_client/connection.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/heartbeat.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/supernode/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/supernode/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/config.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/configsrecord.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/metricsrecord.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/parametersrecord.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/recordset.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/common_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/common_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/common_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/common_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/exec_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/exec_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/exec_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/exec_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fab_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fab_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fab_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fab_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/run_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/run_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/driver/driver.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/serverapp_components.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_adapter/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/state.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/superlink/state/utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/simulation/run_simulation.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/__init__.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/app.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/deployment.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/exec_grpc.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/exec_servicer.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/superexec/executor.py +0 -0
- {flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/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.11.0.
|
|
7
|
+
version = "1.11.0.dev20240806"
|
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
{flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/config_utils.py
RENAMED
|
@@ -25,8 +25,8 @@ from flwr.common import object_ref
|
|
|
25
25
|
from flwr.common.typing import UserConfigValue
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def
|
|
29
|
-
"""Extract the
|
|
28
|
+
def get_fab_config(fab_file: Union[Path, bytes]) -> Dict[str, Any]:
|
|
29
|
+
"""Extract the config from a FAB file or path.
|
|
30
30
|
|
|
31
31
|
Parameters
|
|
32
32
|
----------
|
|
@@ -36,8 +36,8 @@ def get_fab_metadata(fab_file: Union[Path, bytes]) -> Tuple[str, str]:
|
|
|
36
36
|
|
|
37
37
|
Returns
|
|
38
38
|
-------
|
|
39
|
-
|
|
40
|
-
The `
|
|
39
|
+
Dict[str, Any]
|
|
40
|
+
The `config` of the given Flower App Bundle.
|
|
41
41
|
"""
|
|
42
42
|
fab_file_archive: Union[Path, IO[bytes]]
|
|
43
43
|
if isinstance(fab_file, bytes):
|
|
@@ -59,10 +59,29 @@ def get_fab_metadata(fab_file: Union[Path, bytes]) -> Tuple[str, str]:
|
|
|
59
59
|
if not is_valid:
|
|
60
60
|
raise ValueError(errors)
|
|
61
61
|
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
return conf
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def get_fab_metadata(fab_file: Union[Path, bytes]) -> Tuple[str, str]:
|
|
66
|
+
"""Extract the fab_id and the fab_version from a FAB file or path.
|
|
67
|
+
|
|
68
|
+
Parameters
|
|
69
|
+
----------
|
|
70
|
+
fab_file : Union[Path, bytes]
|
|
71
|
+
The Flower App Bundle file to validate and extract the metadata from.
|
|
72
|
+
It can either be a path to the file or the file itself as bytes.
|
|
73
|
+
|
|
74
|
+
Returns
|
|
75
|
+
-------
|
|
76
|
+
Tuple[str, str]
|
|
77
|
+
The `fab_version` and `fab_id` of the given Flower App Bundle.
|
|
78
|
+
"""
|
|
79
|
+
conf = get_fab_config(fab_file)
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
conf["project"]["version"],
|
|
83
|
+
f"{conf['tool']['flwr']['app']['publisher']}/{conf['project']['name']}",
|
|
84
|
+
)
|
|
66
85
|
|
|
67
86
|
|
|
68
87
|
def load_and_validate(
|
{flwr_nightly-1.11.0.dev20240804 → flwr_nightly-1.11.0.dev20240806}/src/py/flwr/cli/new/new.py
RENAMED
|
@@ -34,13 +34,13 @@ from ..utils import (
|
|
|
34
34
|
class MlFramework(str, Enum):
|
|
35
35
|
"""Available frameworks."""
|
|
36
36
|
|
|
37
|
-
NUMPY = "NumPy"
|
|
38
37
|
PYTORCH = "PyTorch"
|
|
39
38
|
TENSORFLOW = "TensorFlow"
|
|
40
|
-
|
|
39
|
+
SKLEARN = "sklearn"
|
|
41
40
|
HUGGINGFACE = "HuggingFace"
|
|
41
|
+
JAX = "JAX"
|
|
42
42
|
MLX = "MLX"
|
|
43
|
-
|
|
43
|
+
NUMPY = "NumPy"
|
|
44
44
|
FLOWERTUNE = "FlowerTune"
|
|
45
45
|
|
|
46
46
|
|
|
@@ -135,20 +135,20 @@ def new(
|
|
|
135
135
|
username = prompt_text("Please provide your Flower username")
|
|
136
136
|
|
|
137
137
|
if framework is not None:
|
|
138
|
-
|
|
138
|
+
framework_str_upper = str(framework.value)
|
|
139
139
|
else:
|
|
140
140
|
framework_value = prompt_options(
|
|
141
141
|
"Please select ML framework by typing in the number",
|
|
142
|
-
|
|
142
|
+
[mlf.value for mlf in MlFramework],
|
|
143
143
|
)
|
|
144
144
|
selected_value = [
|
|
145
145
|
name
|
|
146
146
|
for name, value in vars(MlFramework).items()
|
|
147
147
|
if value == framework_value
|
|
148
148
|
]
|
|
149
|
-
|
|
149
|
+
framework_str_upper = selected_value[0]
|
|
150
150
|
|
|
151
|
-
framework_str =
|
|
151
|
+
framework_str = framework_str_upper.lower()
|
|
152
152
|
|
|
153
153
|
llm_challenge_str = None
|
|
154
154
|
if framework_str == "flowertune":
|
|
@@ -173,9 +173,10 @@ def new(
|
|
|
173
173
|
)
|
|
174
174
|
|
|
175
175
|
context = {
|
|
176
|
-
"
|
|
177
|
-
"package_name": package_name,
|
|
176
|
+
"framework_str": framework_str_upper,
|
|
178
177
|
"import_name": import_name.replace("-", "_"),
|
|
178
|
+
"package_name": package_name,
|
|
179
|
+
"project_name": project_name,
|
|
179
180
|
"username": username,
|
|
180
181
|
}
|
|
181
182
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
|
+
import torch
|
|
3
4
|
from flwr.client import NumPyClient, ClientApp
|
|
4
5
|
from flwr.common import Context
|
|
5
6
|
|
|
6
7
|
from $import_name.task import (
|
|
7
8
|
Net,
|
|
8
|
-
DEVICE,
|
|
9
9
|
load_data,
|
|
10
10
|
get_weights,
|
|
11
11
|
set_weights,
|
|
@@ -21,27 +21,28 @@ class FlowerClient(NumPyClient):
|
|
|
21
21
|
self.trainloader = trainloader
|
|
22
22
|
self.valloader = valloader
|
|
23
23
|
self.local_epochs = local_epochs
|
|
24
|
+
self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
|
25
|
+
self.net.to(self.device)
|
|
24
26
|
|
|
25
27
|
def fit(self, parameters, config):
|
|
26
28
|
set_weights(self.net, parameters)
|
|
27
|
-
|
|
29
|
+
train_loss = train(
|
|
28
30
|
self.net,
|
|
29
31
|
self.trainloader,
|
|
30
|
-
self.valloader,
|
|
31
32
|
self.local_epochs,
|
|
32
|
-
|
|
33
|
+
self.device,
|
|
33
34
|
)
|
|
34
|
-
return get_weights(self.net), len(self.trainloader.dataset),
|
|
35
|
+
return get_weights(self.net), len(self.trainloader.dataset), {"train_loss": train_loss}
|
|
35
36
|
|
|
36
37
|
def evaluate(self, parameters, config):
|
|
37
38
|
set_weights(self.net, parameters)
|
|
38
|
-
loss, accuracy = test(self.net, self.valloader)
|
|
39
|
+
loss, accuracy = test(self.net, self.valloader, self.device)
|
|
39
40
|
return loss, len(self.valloader.dataset), {"accuracy": accuracy}
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
def client_fn(context: Context):
|
|
43
44
|
# Load model and data
|
|
44
|
-
net = Net()
|
|
45
|
+
net = Net()
|
|
45
46
|
partition_id = context.node_config["partition-id"]
|
|
46
47
|
num_partitions = context.node_config["num-partitions"]
|
|
47
48
|
trainloader, valloader = load_data(partition_id, num_partitions)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
from flwr.client import NumPyClient, ClientApp
|
|
4
4
|
from flwr.common import Context
|
|
@@ -9,13 +9,10 @@ from $import_name.task import load_data, load_model
|
|
|
9
9
|
# Define Flower Client and client_fn
|
|
10
10
|
class FlowerClient(NumPyClient):
|
|
11
11
|
def __init__(
|
|
12
|
-
self, model,
|
|
12
|
+
self, model, data, epochs, batch_size, verbose
|
|
13
13
|
):
|
|
14
14
|
self.model = model
|
|
15
|
-
self.x_train =
|
|
16
|
-
self.y_train = y_train
|
|
17
|
-
self.x_test = x_test
|
|
18
|
-
self.y_test = y_test
|
|
15
|
+
self.x_train, self.y_train, self.x_test, self.y_test = data
|
|
19
16
|
self.epochs = epochs
|
|
20
17
|
self.batch_size = batch_size
|
|
21
18
|
self.verbose = verbose
|
|
@@ -46,14 +43,14 @@ def client_fn(context: Context):
|
|
|
46
43
|
|
|
47
44
|
partition_id = context.node_config["partition-id"]
|
|
48
45
|
num_partitions = context.node_config["num-partitions"]
|
|
49
|
-
|
|
46
|
+
data = load_data(partition_id, num_partitions)
|
|
50
47
|
epochs = context.run_config["local-epochs"]
|
|
51
48
|
batch_size = context.run_config["batch-size"]
|
|
52
49
|
verbose = context.run_config.get("verbose")
|
|
53
50
|
|
|
54
51
|
# Return Client instance
|
|
55
52
|
return FlowerClient(
|
|
56
|
-
net,
|
|
53
|
+
net, data, epochs, batch_size, verbose
|
|
57
54
|
).to_client()
|
|
58
55
|
|
|
59
56
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
from flwr.common import Context, ndarrays_to_parameters
|
|
4
4
|
from flwr.server import ServerApp, ServerAppComponents, ServerConfig
|
|
@@ -7,17 +7,18 @@ from flwr.server.strategy import FedAvg
|
|
|
7
7
|
from $import_name.task import Net, get_weights
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
# Initialize model parameters
|
|
11
|
-
ndarrays = get_weights(Net())
|
|
12
|
-
parameters = ndarrays_to_parameters(ndarrays)
|
|
13
|
-
|
|
14
10
|
def server_fn(context: Context):
|
|
15
11
|
# Read from config
|
|
16
12
|
num_rounds = context.run_config["num-server-rounds"]
|
|
13
|
+
fraction_fit = context.run_config["fraction-fit"]
|
|
14
|
+
|
|
15
|
+
# Initialize model parameters
|
|
16
|
+
ndarrays = get_weights(Net())
|
|
17
|
+
parameters = ndarrays_to_parameters(ndarrays)
|
|
17
18
|
|
|
18
19
|
# Define strategy
|
|
19
20
|
strategy = FedAvg(
|
|
20
|
-
fraction_fit=
|
|
21
|
+
fraction_fit=fraction_fit,
|
|
21
22
|
fraction_evaluate=1.0,
|
|
22
23
|
min_available_clients=2,
|
|
23
24
|
initial_parameters=parameters,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
from flwr.common import Context, ndarrays_to_parameters
|
|
4
4
|
from flwr.server import ServerApp, ServerAppComponents, ServerConfig
|
|
@@ -6,15 +6,14 @@ from flwr.server.strategy import FedAvg
|
|
|
6
6
|
|
|
7
7
|
from $import_name.task import load_model
|
|
8
8
|
|
|
9
|
-
# Define config
|
|
10
|
-
config = ServerConfig(num_rounds=3)
|
|
11
|
-
|
|
12
|
-
parameters = ndarrays_to_parameters(load_model().get_weights())
|
|
13
9
|
|
|
14
10
|
def server_fn(context: Context):
|
|
15
11
|
# Read from config
|
|
16
12
|
num_rounds = context.run_config["num-server-rounds"]
|
|
17
13
|
|
|
14
|
+
# Get parameters to initialize global model
|
|
15
|
+
parameters = ndarrays_to_parameters(load_model().get_weights())
|
|
16
|
+
|
|
18
17
|
# Define strategy
|
|
19
18
|
strategy = strategy = FedAvg(
|
|
20
19
|
fraction_fit=1.0,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
import mlx.core as mx
|
|
4
4
|
import mlx.nn as nn
|
|
@@ -56,6 +56,7 @@ def load_data(partition_id: int, num_partitions: int):
|
|
|
56
56
|
fds = FederatedDataset(
|
|
57
57
|
dataset="ylecun/mnist",
|
|
58
58
|
partitioners={"train": partitioner},
|
|
59
|
+
trust_remote_code=True,
|
|
59
60
|
)
|
|
60
61
|
partition = fds.load_partition(partition_id)
|
|
61
62
|
partition_splits = partition.train_test_split(test_size=0.2, seed=42)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
from collections import OrderedDict
|
|
4
4
|
|
|
@@ -11,9 +11,6 @@ from flwr_datasets import FederatedDataset
|
|
|
11
11
|
from flwr_datasets.partitioner import IidPartitioner
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
|
15
|
-
|
|
16
|
-
|
|
17
14
|
class Net(nn.Module):
|
|
18
15
|
"""Model (simple CNN adapted from 'PyTorch: A 60 Minute Blitz')"""
|
|
19
16
|
|
|
@@ -66,44 +63,41 @@ def load_data(partition_id: int, num_partitions: int):
|
|
|
66
63
|
return trainloader, testloader
|
|
67
64
|
|
|
68
65
|
|
|
69
|
-
def train(net, trainloader,
|
|
66
|
+
def train(net, trainloader, epochs, device):
|
|
70
67
|
"""Train the model on the training set."""
|
|
71
68
|
net.to(device) # move model to GPU if available
|
|
72
69
|
criterion = torch.nn.CrossEntropyLoss().to(device)
|
|
73
|
-
optimizer = torch.optim.SGD(net.parameters(), lr=0.
|
|
70
|
+
optimizer = torch.optim.SGD(net.parameters(), lr=0.1, momentum=0.9)
|
|
74
71
|
net.train()
|
|
72
|
+
running_loss = 0.0
|
|
75
73
|
for _ in range(epochs):
|
|
76
74
|
for batch in trainloader:
|
|
77
75
|
images = batch["img"]
|
|
78
76
|
labels = batch["label"]
|
|
79
77
|
optimizer.zero_grad()
|
|
80
|
-
criterion(net(images.to(
|
|
78
|
+
loss = criterion(net(images.to(device)), labels.to(device))
|
|
79
|
+
loss.backward()
|
|
81
80
|
optimizer.step()
|
|
81
|
+
running_loss += loss.item()
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
results = {
|
|
87
|
-
"train_loss": train_loss,
|
|
88
|
-
"train_accuracy": train_acc,
|
|
89
|
-
"val_loss": val_loss,
|
|
90
|
-
"val_accuracy": val_acc,
|
|
91
|
-
}
|
|
92
|
-
return results
|
|
83
|
+
avg_trainloss = running_loss / len(trainloader)
|
|
84
|
+
return avg_trainloss
|
|
93
85
|
|
|
94
86
|
|
|
95
|
-
def test(net, testloader):
|
|
87
|
+
def test(net, testloader, device):
|
|
96
88
|
"""Validate the model on the test set."""
|
|
89
|
+
net.to(device)
|
|
97
90
|
criterion = torch.nn.CrossEntropyLoss()
|
|
98
91
|
correct, loss = 0, 0.0
|
|
99
92
|
with torch.no_grad():
|
|
100
93
|
for batch in testloader:
|
|
101
|
-
images = batch["img"].to(
|
|
102
|
-
labels = batch["label"].to(
|
|
94
|
+
images = batch["img"].to(device)
|
|
95
|
+
labels = batch["label"].to(device)
|
|
103
96
|
outputs = net(images)
|
|
104
97
|
loss += criterion(outputs, labels).item()
|
|
105
98
|
correct += (torch.max(outputs.data, 1)[1] == labels).sum().item()
|
|
106
99
|
accuracy = correct / len(testloader.dataset)
|
|
100
|
+
loss = loss / len(testloader)
|
|
107
101
|
return loss, accuracy
|
|
108
102
|
|
|
109
103
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
"""$project_name: A Flower /
|
|
1
|
+
"""$project_name: A Flower / $framework_str app."""
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import keras
|
|
6
|
+
from keras import layers
|
|
6
7
|
from flwr_datasets import FederatedDataset
|
|
7
8
|
from flwr_datasets.partitioner import IidPartitioner
|
|
8
9
|
|
|
@@ -12,8 +13,19 @@ os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
|
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
def load_model():
|
|
15
|
-
#
|
|
16
|
-
model =
|
|
16
|
+
# Define a simple CNN for CIFAR-10 and set Adam optimizer
|
|
17
|
+
model = keras.Sequential(
|
|
18
|
+
[
|
|
19
|
+
keras.Input(shape=(32, 32, 3)),
|
|
20
|
+
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
|
|
21
|
+
layers.MaxPooling2D(pool_size=(2, 2)),
|
|
22
|
+
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
|
|
23
|
+
layers.MaxPooling2D(pool_size=(2, 2)),
|
|
24
|
+
layers.Flatten(),
|
|
25
|
+
layers.Dropout(0.5),
|
|
26
|
+
layers.Dense(10, activation="softmax"),
|
|
27
|
+
]
|
|
28
|
+
)
|
|
17
29
|
model.compile("adam", "sparse_categorical_crossentropy", metrics=["accuracy"])
|
|
18
30
|
return model
|
|
19
31
|
|
|
@@ -8,8 +8,8 @@ version = "1.0.0"
|
|
|
8
8
|
description = ""
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"flwr[simulation]>=1.
|
|
12
|
-
"flwr-datasets>=0.
|
|
11
|
+
"flwr[simulation]>=1.10.0",
|
|
12
|
+
"flwr-datasets>=0.3.0",
|
|
13
13
|
"torch==2.2.1",
|
|
14
14
|
"transformers>=4.30.0,<5.0",
|
|
15
15
|
"evaluate>=0.4.0,<1.0",
|
|
@@ -8,9 +8,9 @@ version = "1.0.0"
|
|
|
8
8
|
description = ""
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"flwr[simulation]>=1.
|
|
12
|
-
"flwr-datasets[vision]>=0.
|
|
13
|
-
"mlx==0.
|
|
11
|
+
"flwr[simulation]>=1.10.0",
|
|
12
|
+
"flwr-datasets[vision]>=0.3.0",
|
|
13
|
+
"mlx==0.16.1",
|
|
14
14
|
"numpy==1.24.4",
|
|
15
15
|
]
|
|
16
16
|
|
|
@@ -8,8 +8,8 @@ version = "1.0.0"
|
|
|
8
8
|
description = ""
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"flwr[simulation]>=1.
|
|
12
|
-
"flwr-datasets[vision]>=0.
|
|
11
|
+
"flwr[simulation]>=1.10.0",
|
|
12
|
+
"flwr-datasets[vision]>=0.3.0",
|
|
13
13
|
"torch==2.2.1",
|
|
14
14
|
"torchvision==0.17.1",
|
|
15
15
|
]
|
|
@@ -26,6 +26,7 @@ clientapp = "$import_name.client_app:app"
|
|
|
26
26
|
|
|
27
27
|
[tool.flwr.app.config]
|
|
28
28
|
num-server-rounds = 3
|
|
29
|
+
fraction-fit = 0.5
|
|
29
30
|
local-epochs = 1
|
|
30
31
|
|
|
31
32
|
[tool.flwr.federations]
|
|
@@ -28,6 +28,7 @@ from flwr.common.constant import (
|
|
|
28
28
|
GRPC_ADAPTER_METADATA_SHOULD_EXIT_KEY,
|
|
29
29
|
)
|
|
30
30
|
from flwr.common.version import package_version
|
|
31
|
+
from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
|
|
31
32
|
from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
32
33
|
CreateNodeRequest,
|
|
33
34
|
CreateNodeResponse,
|
|
@@ -131,3 +132,9 @@ class GrpcAdapter:
|
|
|
131
132
|
) -> GetRunResponse:
|
|
132
133
|
"""."""
|
|
133
134
|
return self._send_and_receive(request, GetRunResponse, **kwargs)
|
|
135
|
+
|
|
136
|
+
def GetFab( # pylint: disable=C0103
|
|
137
|
+
self, request: GetFabRequest, **kwargs: Any
|
|
138
|
+
) -> GetFabResponse:
|
|
139
|
+
"""."""
|
|
140
|
+
return self._send_and_receive(request, GetFabResponse, **kwargs)
|