flwr-nightly 1.9.0.dev20240527__tar.gz → 1.9.0.dev20240529__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.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/PKG-INFO +2 -1
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/README.md +1 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/pyproject.toml +1 -1
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/app.py +70 -72
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/LICENSE +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/build.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/config_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/new.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.hf.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.hf.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/task.hf.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.hf.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/heartbeat.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/supernode/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/supernode/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/configsrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/metricsrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/parametersrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/recordset.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/compat/app_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/driver/driver.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/state.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/superlink/state/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/simulation/run_simulation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.9.0.
|
|
3
|
+
Version: 1.9.0.dev20240529
|
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -203,6 +203,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
|
|
|
203
203
|
- [Flower through Docker Compose and with Grafana dashboard](https://github.com/adap/flower/tree/main/examples/flower-via-docker-compose)
|
|
204
204
|
- [Flower with KaplanMeierFitter from the lifelines library](https://github.com/adap/flower/tree/main/examples/federated-kaplan-meier-fitter)
|
|
205
205
|
- [Sample Level Privacy with Opacus](https://github.com/adap/flower/tree/main/examples/opacus)
|
|
206
|
+
- [Sample Level Privacy with TensorFlow-Privacy](https://github.com/adap/flower/tree/main/examples/tensorflow-privacy)
|
|
206
207
|
|
|
207
208
|
## Community
|
|
208
209
|
|
|
@@ -152,6 +152,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
|
|
|
152
152
|
- [Flower through Docker Compose and with Grafana dashboard](https://github.com/adap/flower/tree/main/examples/flower-via-docker-compose)
|
|
153
153
|
- [Flower with KaplanMeierFitter from the lifelines library](https://github.com/adap/flower/tree/main/examples/federated-kaplan-meier-fitter)
|
|
154
154
|
- [Sample Level Privacy with Opacus](https://github.com/adap/flower/tree/main/examples/opacus)
|
|
155
|
+
- [Sample Level Privacy with TensorFlow-Privacy](https://github.com/adap/flower/tree/main/examples/tensorflow-privacy)
|
|
155
156
|
|
|
156
157
|
## Community
|
|
157
158
|
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "flwr-nightly"
|
|
7
|
-
version = "1.9.0.
|
|
7
|
+
version = "1.9.0.dev20240529"
|
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
|
@@ -19,10 +19,10 @@ import csv
|
|
|
19
19
|
import importlib.util
|
|
20
20
|
import sys
|
|
21
21
|
import threading
|
|
22
|
-
from logging import
|
|
22
|
+
from logging import INFO, WARN
|
|
23
23
|
from os.path import isfile
|
|
24
24
|
from pathlib import Path
|
|
25
|
-
from typing import
|
|
25
|
+
from typing import Optional, Sequence, Set, Tuple
|
|
26
26
|
|
|
27
27
|
import grpc
|
|
28
28
|
from cryptography.exceptions import UnsupportedAlgorithm
|
|
@@ -346,6 +346,9 @@ def run_superlink() -> None:
|
|
|
346
346
|
sys.exit(MISSING_EXTRA_REST)
|
|
347
347
|
address_arg = args.rest_fleet_api_address
|
|
348
348
|
parsed_address = parse_address(address_arg)
|
|
349
|
+
_, ssl_certfile, ssl_keyfile = (
|
|
350
|
+
certificates if certificates is not None else (None, None, None)
|
|
351
|
+
)
|
|
349
352
|
if not parsed_address:
|
|
350
353
|
sys.exit(f"Fleet IP address ({address_arg}) cannot be parsed.")
|
|
351
354
|
host, port, _ = parsed_address
|
|
@@ -354,8 +357,8 @@ def run_superlink() -> None:
|
|
|
354
357
|
args=(
|
|
355
358
|
host,
|
|
356
359
|
port,
|
|
357
|
-
|
|
358
|
-
|
|
360
|
+
ssl_keyfile,
|
|
361
|
+
ssl_certfile,
|
|
359
362
|
state_factory,
|
|
360
363
|
args.rest_fleet_api_workers,
|
|
361
364
|
),
|
|
@@ -442,8 +445,8 @@ def _try_setup_client_authentication(
|
|
|
442
445
|
if certificates is None:
|
|
443
446
|
sys.exit(
|
|
444
447
|
"Authentication requires secure connections. "
|
|
445
|
-
"Please provide certificate paths
|
|
446
|
-
"try again."
|
|
448
|
+
"Please provide certificate paths to `--ssl-certfile`, "
|
|
449
|
+
"`--ssl-keyfile`, and `—-ssl-ca-certfile` and try again."
|
|
447
450
|
)
|
|
448
451
|
|
|
449
452
|
client_keys_file_path = Path(args.auth_list_public_keys)
|
|
@@ -512,21 +515,52 @@ def _try_obtain_certificates(
|
|
|
512
515
|
# Obtain certificates
|
|
513
516
|
if args.insecure:
|
|
514
517
|
log(WARN, "Option `--insecure` was set. Starting insecure HTTP server.")
|
|
515
|
-
|
|
518
|
+
return None
|
|
516
519
|
# Check if certificates are provided
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
520
|
+
if args.fleet_api_type == TRANSPORT_TYPE_GRPC_RERE:
|
|
521
|
+
if args.ssl_certfile and args.ssl_keyfile and args.ssl_ca_certfile:
|
|
522
|
+
if not isfile(args.ssl_ca_certfile):
|
|
523
|
+
sys.exit("Path argument `--ssl-ca-certfile` does not point to a file.")
|
|
524
|
+
if not isfile(args.ssl_certfile):
|
|
525
|
+
sys.exit("Path argument `--ssl-certfile` does not point to a file.")
|
|
526
|
+
if not isfile(args.ssl_keyfile):
|
|
527
|
+
sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
|
|
528
|
+
certificates = (
|
|
529
|
+
Path(args.ssl_ca_certfile).read_bytes(), # CA certificate
|
|
530
|
+
Path(args.ssl_certfile).read_bytes(), # server certificate
|
|
531
|
+
Path(args.ssl_keyfile).read_bytes(), # server private key
|
|
532
|
+
)
|
|
533
|
+
return certificates
|
|
534
|
+
if args.ssl_certfile or args.ssl_keyfile or args.ssl_ca_certfile:
|
|
535
|
+
sys.exit(
|
|
536
|
+
"You need to provide valid file paths to `--ssl-certfile`, "
|
|
537
|
+
"`--ssl-keyfile`, and `—-ssl-ca-certfile` to create a secure "
|
|
538
|
+
"connection in Fleet API server (gRPC-rere)."
|
|
539
|
+
)
|
|
540
|
+
if args.fleet_api_type == TRANSPORT_TYPE_REST:
|
|
541
|
+
if args.ssl_certfile and args.ssl_keyfile:
|
|
542
|
+
if not isfile(args.ssl_certfile):
|
|
543
|
+
sys.exit("Path argument `--ssl-certfile` does not point to a file.")
|
|
544
|
+
if not isfile(args.ssl_keyfile):
|
|
545
|
+
sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
|
|
546
|
+
certificates = (
|
|
547
|
+
b"",
|
|
548
|
+
Path(args.ssl_certfile).read_bytes(), # server certificate
|
|
549
|
+
Path(args.ssl_keyfile).read_bytes(), # server private key
|
|
550
|
+
)
|
|
551
|
+
return certificates
|
|
552
|
+
if args.ssl_certfile or args.ssl_keyfile:
|
|
553
|
+
sys.exit(
|
|
554
|
+
"You need to provide valid file paths to `--ssl-certfile` "
|
|
555
|
+
"and `--ssl-keyfile` to create a secure connection "
|
|
556
|
+
"in Fleet API server (REST, experimental)."
|
|
557
|
+
)
|
|
558
|
+
sys.exit(
|
|
559
|
+
"Certificates are required unless running in insecure mode. "
|
|
560
|
+
"Please provide certificate paths to `--ssl-certfile`, "
|
|
561
|
+
"`--ssl-keyfile`, and `—-ssl-ca-certfile` or run the server "
|
|
562
|
+
"in insecure mode using '--insecure' if you understand the risks."
|
|
563
|
+
)
|
|
530
564
|
|
|
531
565
|
|
|
532
566
|
def _run_fleet_api_grpc_rere(
|
|
@@ -582,14 +616,6 @@ def _run_fleet_api_rest(
|
|
|
582
616
|
# See: https://www.starlette.io/applications/#accessing-the-app-instance
|
|
583
617
|
fast_api_app.state.STATE_FACTORY = state_factory
|
|
584
618
|
|
|
585
|
-
validation_exceptions = _validate_ssl_files(
|
|
586
|
-
ssl_certfile=ssl_certfile, ssl_keyfile=ssl_keyfile
|
|
587
|
-
)
|
|
588
|
-
if any(validation_exceptions):
|
|
589
|
-
# Starting with 3.11 we can use ExceptionGroup but for now
|
|
590
|
-
# this seems to be the reasonable approach.
|
|
591
|
-
raise ValueError(validation_exceptions)
|
|
592
|
-
|
|
593
619
|
uvicorn.run(
|
|
594
620
|
app="flwr.server.superlink.fleet.rest_rere.rest_api:app",
|
|
595
621
|
port=port,
|
|
@@ -602,32 +628,6 @@ def _run_fleet_api_rest(
|
|
|
602
628
|
)
|
|
603
629
|
|
|
604
630
|
|
|
605
|
-
def _validate_ssl_files(
|
|
606
|
-
ssl_keyfile: Optional[str], ssl_certfile: Optional[str]
|
|
607
|
-
) -> List[ValueError]:
|
|
608
|
-
validation_exceptions = []
|
|
609
|
-
|
|
610
|
-
if ssl_keyfile is not None and not isfile(ssl_keyfile):
|
|
611
|
-
msg = "Path argument `--ssl-keyfile` does not point to a file."
|
|
612
|
-
log(ERROR, msg)
|
|
613
|
-
validation_exceptions.append(ValueError(msg))
|
|
614
|
-
|
|
615
|
-
if ssl_certfile is not None and not isfile(ssl_certfile):
|
|
616
|
-
msg = "Path argument `--ssl-certfile` does not point to a file."
|
|
617
|
-
log(ERROR, msg)
|
|
618
|
-
validation_exceptions.append(ValueError(msg))
|
|
619
|
-
|
|
620
|
-
if not bool(ssl_keyfile) == bool(ssl_certfile):
|
|
621
|
-
msg = (
|
|
622
|
-
"When setting one of `--ssl-keyfile` and "
|
|
623
|
-
"`--ssl-certfile`, both have to be used."
|
|
624
|
-
)
|
|
625
|
-
log(ERROR, msg)
|
|
626
|
-
validation_exceptions.append(ValueError(msg))
|
|
627
|
-
|
|
628
|
-
return validation_exceptions
|
|
629
|
-
|
|
630
|
-
|
|
631
631
|
def _parse_args_run_driver_api() -> argparse.ArgumentParser:
|
|
632
632
|
"""Parse command line arguments for Driver API."""
|
|
633
633
|
parser = argparse.ArgumentParser(
|
|
@@ -684,13 +684,23 @@ def _add_args_common(parser: argparse.ArgumentParser) -> None:
|
|
|
684
684
|
"Use this flag only if you understand the risks.",
|
|
685
685
|
)
|
|
686
686
|
parser.add_argument(
|
|
687
|
-
"--
|
|
688
|
-
|
|
689
|
-
|
|
687
|
+
"--ssl-certfile",
|
|
688
|
+
help="Fleet API server SSL certificate file (as a path str) "
|
|
689
|
+
"to create a secure connection.",
|
|
690
|
+
type=str,
|
|
691
|
+
default=None,
|
|
692
|
+
)
|
|
693
|
+
parser.add_argument(
|
|
694
|
+
"--ssl-keyfile",
|
|
695
|
+
help="Fleet API server SSL private key file (as a path str) "
|
|
696
|
+
"to create a secure connection.",
|
|
697
|
+
type=str,
|
|
698
|
+
)
|
|
699
|
+
parser.add_argument(
|
|
700
|
+
"--ssl-ca-certfile",
|
|
701
|
+
help="Fleet API server SSL CA certificate file (as a path str) "
|
|
702
|
+
"to create a secure connection.",
|
|
690
703
|
type=str,
|
|
691
|
-
help="Paths to the CA certificate, server certificate, and server private "
|
|
692
|
-
"key, in that order. Note: The server can only be started without "
|
|
693
|
-
"certificates by enabling the `--insecure` flag.",
|
|
694
704
|
)
|
|
695
705
|
parser.add_argument(
|
|
696
706
|
"--database",
|
|
@@ -763,18 +773,6 @@ def _add_args_fleet_api(parser: argparse.ArgumentParser) -> None:
|
|
|
763
773
|
help="Fleet API (REST) server address (IPv4, IPv6, or a domain name)",
|
|
764
774
|
default=ADDRESS_FLEET_API_REST,
|
|
765
775
|
)
|
|
766
|
-
rest_group.add_argument(
|
|
767
|
-
"--ssl-certfile",
|
|
768
|
-
help="Fleet API (REST) server SSL certificate file (as a path str), "
|
|
769
|
-
"needed for using 'https'.",
|
|
770
|
-
default=None,
|
|
771
|
-
)
|
|
772
|
-
rest_group.add_argument(
|
|
773
|
-
"--ssl-keyfile",
|
|
774
|
-
help="Fleet API (REST) server SSL private key file (as a path str), "
|
|
775
|
-
"needed for using 'https'.",
|
|
776
|
-
default=None,
|
|
777
|
-
)
|
|
778
776
|
rest_group.add_argument(
|
|
779
777
|
"--rest-fleet-api-workers",
|
|
780
778
|
help="Set the number of concurrent workers for the Fleet API REST server.",
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/config_utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/example.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/new/new.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/run/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/cli/run/run.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/client.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/client_app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/heartbeat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/__init__.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.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/mod/utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/node_state.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/numpy_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/client/typing.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/address.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/constant.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/context.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/grpc.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/logger.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/message.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/object_ref.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/parameter.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/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
|
|
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.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/serde.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/telemetry.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/typing.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/common/version.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/driver_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/error_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/fleet_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2.pyi
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/node_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/recordset_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2.pyi
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/task_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240527 → flwr_nightly-1.9.0.dev20240529}/src/py/flwr/proto/transport_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|