flwr-nightly 1.8.0.dev20240209__tar.gz → 1.8.0.dev20240211__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/PKG-INFO +1 -1
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/pyproject.toml +4 -3
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/__init__.py +1 -2
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/__init__.py +2 -2
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/app.py +10 -10
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/clientapp.py +1 -1
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/telemetry.py +9 -5
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/__init__.py +6 -3
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/app.py +112 -19
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server}/driver/app.py +1 -1
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server}/driver/driver.py +1 -1
- flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink/__init__.py +15 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/driver/driver_servicer.py +1 -1
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_bidi/flower_service_servicer.py +6 -2
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_bidi/grpc_client_proxy.py +5 -1
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_bidi/grpc_server.py +5 -3
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_rere/fleet_servicer.py +2 -2
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/message_handler/message_handler.py +1 -1
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/rest_rere/rest_api.py +2 -2
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/state/in_memory_state.py +1 -1
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/LICENSE +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/README.md +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/configsrecord.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/metricsrecord.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/parametersrecord.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/recordset.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server}/driver/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server}/driver/driver_client_proxy.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server}/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/driver/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/state/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/state/sqlite_state.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/state/state.py +0 -0
- {flwr_nightly-1.8.0.dev20240209/src/py/flwr/server → flwr_nightly-1.8.0.dev20240211/src/py/flwr/server/superlink}/state/state_factory.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/ray_transport/utils.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.8.0-
|
7
|
+
version = "1.8.0-dev20240211"
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
9
9
|
license = "Apache-2.0"
|
10
10
|
authors = ["The Flower Authors <hello@flower.dev>"]
|
@@ -54,8 +54,9 @@ exclude = [
|
|
54
54
|
[tool.poetry.scripts]
|
55
55
|
flower-driver-api = "flwr.server:run_driver_api"
|
56
56
|
flower-fleet-api = "flwr.server:run_fleet_api"
|
57
|
-
flower-
|
58
|
-
flower-client = "flwr.client:
|
57
|
+
flower-superlink = "flwr.server:run_superlink"
|
58
|
+
flower-client-app = "flwr.client:run_client_app"
|
59
|
+
flower-server-app = "flwr.server:run_server_app"
|
59
60
|
|
60
61
|
[tool.poetry.dependencies]
|
61
62
|
python = "^3.8"
|
@@ -17,12 +17,11 @@
|
|
17
17
|
|
18
18
|
from flwr.common.version import package_version as _package_version
|
19
19
|
|
20
|
-
from . import client, common,
|
20
|
+
from . import client, common, server, simulation
|
21
21
|
|
22
22
|
__all__ = [
|
23
23
|
"client",
|
24
24
|
"common",
|
25
|
-
"driver",
|
26
25
|
"server",
|
27
26
|
"simulation",
|
28
27
|
]
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/__init__.py
RENAMED
@@ -15,7 +15,7 @@
|
|
15
15
|
"""Flower client."""
|
16
16
|
|
17
17
|
|
18
|
-
from .app import
|
18
|
+
from .app import run_client_app as run_client_app
|
19
19
|
from .app import start_client as start_client
|
20
20
|
from .app import start_numpy_client as start_numpy_client
|
21
21
|
from .client import Client as Client
|
@@ -28,7 +28,7 @@ __all__ = [
|
|
28
28
|
"ClientApp",
|
29
29
|
"ClientFn",
|
30
30
|
"NumPyClient",
|
31
|
-
"
|
31
|
+
"run_client_app",
|
32
32
|
"start_client",
|
33
33
|
"start_numpy_client",
|
34
34
|
]
|
@@ -45,13 +45,13 @@ from .node_state import NodeState
|
|
45
45
|
from .numpy_client import NumPyClient
|
46
46
|
|
47
47
|
|
48
|
-
def
|
49
|
-
"""Run Flower client."""
|
50
|
-
event(EventType.
|
48
|
+
def run_client_app() -> None:
|
49
|
+
"""Run Flower client app."""
|
50
|
+
event(EventType.RUN_CLIENT_APP_ENTER)
|
51
51
|
|
52
52
|
log(INFO, "Long-running Flower client starting")
|
53
53
|
|
54
|
-
args =
|
54
|
+
args = _parse_args_run_client_app().parse_args()
|
55
55
|
|
56
56
|
# Obtain certificates
|
57
57
|
if args.insecure:
|
@@ -86,7 +86,7 @@ def run_client() -> None:
|
|
86
86
|
|
87
87
|
log(
|
88
88
|
DEBUG,
|
89
|
-
"Flower will load ClientApp `%s`
|
89
|
+
"Flower will load ClientApp `%s`",
|
90
90
|
getattr(args, "client-app"),
|
91
91
|
)
|
92
92
|
|
@@ -105,13 +105,13 @@ def run_client() -> None:
|
|
105
105
|
root_certificates=root_certificates,
|
106
106
|
insecure=args.insecure,
|
107
107
|
)
|
108
|
-
event(EventType.
|
108
|
+
event(EventType.RUN_CLIENT_APP_LEAVE)
|
109
109
|
|
110
110
|
|
111
|
-
def
|
112
|
-
"""Parse command line arguments."""
|
111
|
+
def _parse_args_run_client_app() -> argparse.ArgumentParser:
|
112
|
+
"""Parse flower-client-app command line arguments."""
|
113
113
|
parser = argparse.ArgumentParser(
|
114
|
-
description="Start a
|
114
|
+
description="Start a Flower client app",
|
115
115
|
)
|
116
116
|
|
117
117
|
parser.add_argument(
|
@@ -145,7 +145,7 @@ def _parse_args_client() -> argparse.ArgumentParser:
|
|
145
145
|
"--dir",
|
146
146
|
default="",
|
147
147
|
help="Add specified directory to the PYTHONPATH and load Flower "
|
148
|
-
"
|
148
|
+
"app from there."
|
149
149
|
" Default: current working directory.",
|
150
150
|
)
|
151
151
|
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/clientapp.py
RENAMED
@@ -46,7 +46,7 @@ class ClientApp:
|
|
46
46
|
If the above code is in a Python module called `client`, it can be started as
|
47
47
|
follows:
|
48
48
|
|
49
|
-
>>> flower-client client:app --insecure
|
49
|
+
>>> flower-client-app client:app --insecure
|
50
50
|
|
51
51
|
In this `client:app` example, `client` refers to the Python module `client.py` in
|
52
52
|
which the previous code lives in and `app` refers to the global attribute `app` that
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/telemetry.py
RENAMED
@@ -137,8 +137,8 @@ class EventType(str, Enum):
|
|
137
137
|
RUN_FLEET_API_LEAVE = auto()
|
138
138
|
|
139
139
|
# Driver API and Fleet API
|
140
|
-
|
141
|
-
|
140
|
+
RUN_SUPERLINK_ENTER = auto()
|
141
|
+
RUN_SUPERLINK_LEAVE = auto()
|
142
142
|
|
143
143
|
# Simulation
|
144
144
|
START_SIMULATION_ENTER = auto()
|
@@ -152,9 +152,13 @@ class EventType(str, Enum):
|
|
152
152
|
START_DRIVER_ENTER = auto()
|
153
153
|
START_DRIVER_LEAVE = auto()
|
154
154
|
|
155
|
-
#
|
156
|
-
|
157
|
-
|
155
|
+
# flower-client-app
|
156
|
+
RUN_CLIENT_APP_ENTER = auto()
|
157
|
+
RUN_CLIENT_APP_LEAVE = auto()
|
158
|
+
|
159
|
+
# flower-server-app
|
160
|
+
RUN_SERVER_APP_ENTER = auto()
|
161
|
+
RUN_SERVER_APP_LEAVE = auto()
|
158
162
|
|
159
163
|
|
160
164
|
# Use the ThreadPoolExecutor with max_workers=1 to have a queue
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/__init__.py
RENAMED
@@ -15,11 +15,12 @@
|
|
15
15
|
"""Flower server."""
|
16
16
|
|
17
17
|
|
18
|
-
from . import strategy
|
18
|
+
from . import driver, strategy
|
19
19
|
from .app import ServerConfig as ServerConfig
|
20
20
|
from .app import run_driver_api as run_driver_api
|
21
21
|
from .app import run_fleet_api as run_fleet_api
|
22
|
-
from .app import
|
22
|
+
from .app import run_server_app as run_server_app
|
23
|
+
from .app import run_superlink as run_superlink
|
23
24
|
from .app import start_server as start_server
|
24
25
|
from .client_manager import ClientManager as ClientManager
|
25
26
|
from .client_manager import SimpleClientManager as SimpleClientManager
|
@@ -28,10 +29,12 @@ from .server import Server as Server
|
|
28
29
|
|
29
30
|
__all__ = [
|
30
31
|
"ClientManager",
|
32
|
+
"driver",
|
31
33
|
"History",
|
32
34
|
"run_driver_api",
|
33
35
|
"run_fleet_api",
|
34
|
-
"
|
36
|
+
"run_server_app",
|
37
|
+
"run_superlink",
|
35
38
|
"Server",
|
36
39
|
"ServerConfig",
|
37
40
|
"SimpleClientManager",
|
@@ -20,7 +20,7 @@ import importlib.util
|
|
20
20
|
import sys
|
21
21
|
import threading
|
22
22
|
from dataclasses import dataclass
|
23
|
-
from logging import ERROR, INFO, WARN
|
23
|
+
from logging import DEBUG, ERROR, INFO, WARN
|
24
24
|
from os.path import isfile
|
25
25
|
from pathlib import Path
|
26
26
|
from signal import SIGINT, SIGTERM, signal
|
@@ -44,16 +44,16 @@ from flwr.proto.fleet_pb2_grpc import ( # pylint: disable=E0611
|
|
44
44
|
add_FleetServicer_to_server,
|
45
45
|
)
|
46
46
|
from flwr.server.client_manager import ClientManager, SimpleClientManager
|
47
|
-
from flwr.server.driver.driver_servicer import DriverServicer
|
48
|
-
from flwr.server.fleet.grpc_bidi.grpc_server import (
|
49
|
-
generic_create_grpc_server,
|
50
|
-
start_grpc_server,
|
51
|
-
)
|
52
|
-
from flwr.server.fleet.grpc_rere.fleet_servicer import FleetServicer
|
53
47
|
from flwr.server.history import History
|
54
48
|
from flwr.server.server import Server
|
55
|
-
from flwr.server.state import StateFactory
|
56
49
|
from flwr.server.strategy import FedAvg, Strategy
|
50
|
+
from flwr.server.superlink.driver.driver_servicer import DriverServicer
|
51
|
+
from flwr.server.superlink.fleet.grpc_bidi.grpc_server import (
|
52
|
+
generic_create_grpc_server,
|
53
|
+
start_grpc_server,
|
54
|
+
)
|
55
|
+
from flwr.server.superlink.fleet.grpc_rere.fleet_servicer import FleetServicer
|
56
|
+
from flwr.server.superlink.state import StateFactory
|
57
57
|
|
58
58
|
ADDRESS_DRIVER_API = "0.0.0.0:9091"
|
59
59
|
ADDRESS_FLEET_API_GRPC_RERE = "0.0.0.0:9092"
|
@@ -75,6 +75,60 @@ class ServerConfig:
|
|
75
75
|
round_timeout: Optional[float] = None
|
76
76
|
|
77
77
|
|
78
|
+
def run_server_app() -> None:
|
79
|
+
"""Run Flower server app."""
|
80
|
+
event(EventType.RUN_SERVER_APP_ENTER)
|
81
|
+
|
82
|
+
args = _parse_args_run_server_app().parse_args()
|
83
|
+
|
84
|
+
# Obtain certificates
|
85
|
+
if args.insecure:
|
86
|
+
if args.root_certificates is not None:
|
87
|
+
sys.exit(
|
88
|
+
"Conflicting options: The '--insecure' flag disables HTTPS, "
|
89
|
+
"but '--root-certificates' was also specified. Please remove "
|
90
|
+
"the '--root-certificates' option when running in insecure mode, "
|
91
|
+
"or omit '--insecure' to use HTTPS."
|
92
|
+
)
|
93
|
+
log(
|
94
|
+
WARN,
|
95
|
+
"Option `--insecure` was set. "
|
96
|
+
"Starting insecure HTTP client connected to %s.",
|
97
|
+
args.server,
|
98
|
+
)
|
99
|
+
root_certificates = None
|
100
|
+
else:
|
101
|
+
# Load the certificates if provided, or load the system certificates
|
102
|
+
cert_path = args.root_certificates
|
103
|
+
if cert_path is None:
|
104
|
+
root_certificates = None
|
105
|
+
else:
|
106
|
+
root_certificates = Path(cert_path).read_bytes()
|
107
|
+
log(
|
108
|
+
DEBUG,
|
109
|
+
"Starting secure HTTPS client connected to %s "
|
110
|
+
"with the following certificates: %s.",
|
111
|
+
args.server,
|
112
|
+
cert_path,
|
113
|
+
)
|
114
|
+
|
115
|
+
log(
|
116
|
+
DEBUG,
|
117
|
+
"Flower will load ServerApp `%s`",
|
118
|
+
getattr(args, "server-app"),
|
119
|
+
)
|
120
|
+
|
121
|
+
log(
|
122
|
+
DEBUG,
|
123
|
+
"root_certificates: `%s`",
|
124
|
+
root_certificates,
|
125
|
+
)
|
126
|
+
|
127
|
+
log(WARN, "Not implemented: run_server_app")
|
128
|
+
|
129
|
+
event(EventType.RUN_SERVER_APP_LEAVE)
|
130
|
+
|
131
|
+
|
78
132
|
def start_server( # pylint: disable=too-many-arguments,too-many-locals
|
79
133
|
*,
|
80
134
|
server_address: str = ADDRESS_FLEET_API_GRPC_BIDI,
|
@@ -239,7 +293,7 @@ def run_driver_api() -> None:
|
|
239
293
|
"""Run Flower server (Driver API)."""
|
240
294
|
log(INFO, "Starting Flower server (Driver API)")
|
241
295
|
event(EventType.RUN_DRIVER_API_ENTER)
|
242
|
-
args =
|
296
|
+
args = _parse_args_run_driver_api().parse_args()
|
243
297
|
|
244
298
|
# Parse IP address
|
245
299
|
parsed_address = parse_address(args.driver_api_address)
|
@@ -276,7 +330,7 @@ def run_fleet_api() -> None:
|
|
276
330
|
"""Run Flower server (Fleet API)."""
|
277
331
|
log(INFO, "Starting Flower server (Fleet API)")
|
278
332
|
event(EventType.RUN_FLEET_API_ENTER)
|
279
|
-
args =
|
333
|
+
args = _parse_args_run_fleet_api().parse_args()
|
280
334
|
|
281
335
|
# Obtain certificates
|
282
336
|
certificates = _try_obtain_certificates(args)
|
@@ -344,11 +398,11 @@ def run_fleet_api() -> None:
|
|
344
398
|
|
345
399
|
|
346
400
|
# pylint: disable=too-many-branches, too-many-locals, too-many-statements
|
347
|
-
def
|
401
|
+
def run_superlink() -> None:
|
348
402
|
"""Run Flower server (Driver API and Fleet API)."""
|
349
403
|
log(INFO, "Starting Flower server")
|
350
|
-
event(EventType.
|
351
|
-
args =
|
404
|
+
event(EventType.RUN_SUPERLINK_ENTER)
|
405
|
+
args = _parse_args_run_superlink().parse_args()
|
352
406
|
|
353
407
|
# Parse IP address
|
354
408
|
parsed_address = parse_address(args.driver_api_address)
|
@@ -419,7 +473,7 @@ def run_server() -> None:
|
|
419
473
|
_register_exit_handlers(
|
420
474
|
grpc_servers=grpc_servers,
|
421
475
|
bckg_threads=bckg_threads,
|
422
|
-
event_type=EventType.
|
476
|
+
event_type=EventType.RUN_SUPERLINK_LEAVE,
|
423
477
|
)
|
424
478
|
|
425
479
|
# Block
|
@@ -561,7 +615,7 @@ def _run_fleet_api_rest(
|
|
561
615
|
try:
|
562
616
|
import uvicorn
|
563
617
|
|
564
|
-
from flwr.server.fleet.rest_rere.rest_api import app as fast_api_app
|
618
|
+
from flwr.server.superlink.fleet.rest_rere.rest_api import app as fast_api_app
|
565
619
|
except ModuleNotFoundError:
|
566
620
|
sys.exit(MISSING_EXTRA_REST)
|
567
621
|
if workers != 1:
|
@@ -584,7 +638,7 @@ def _run_fleet_api_rest(
|
|
584
638
|
raise ValueError(validation_exceptions)
|
585
639
|
|
586
640
|
uvicorn.run(
|
587
|
-
app="flwr.server.fleet.rest_rere.rest_api:app",
|
641
|
+
app="flwr.server.superlink.fleet.rest_rere.rest_api:app",
|
588
642
|
port=port,
|
589
643
|
host=host,
|
590
644
|
reload=False,
|
@@ -621,7 +675,7 @@ def _validate_ssl_files(
|
|
621
675
|
return validation_exceptions
|
622
676
|
|
623
677
|
|
624
|
-
def
|
678
|
+
def _parse_args_run_driver_api() -> argparse.ArgumentParser:
|
625
679
|
"""Parse command line arguments for Driver API."""
|
626
680
|
parser = argparse.ArgumentParser(
|
627
681
|
description="Start a Flower Driver API server. "
|
@@ -638,7 +692,7 @@ def _parse_args_driver() -> argparse.ArgumentParser:
|
|
638
692
|
return parser
|
639
693
|
|
640
694
|
|
641
|
-
def
|
695
|
+
def _parse_args_run_fleet_api() -> argparse.ArgumentParser:
|
642
696
|
"""Parse command line arguments for Fleet API."""
|
643
697
|
parser = argparse.ArgumentParser(
|
644
698
|
description="Start a Flower Fleet API server."
|
@@ -655,7 +709,7 @@ def _parse_args_fleet() -> argparse.ArgumentParser:
|
|
655
709
|
return parser
|
656
710
|
|
657
711
|
|
658
|
-
def
|
712
|
+
def _parse_args_run_superlink() -> argparse.ArgumentParser:
|
659
713
|
"""Parse command line arguments for both Driver API and Fleet API."""
|
660
714
|
parser = argparse.ArgumentParser(
|
661
715
|
description="This will start a Flower server "
|
@@ -760,3 +814,42 @@ def _add_args_fleet_api(parser: argparse.ArgumentParser) -> None:
|
|
760
814
|
type=int,
|
761
815
|
default=1,
|
762
816
|
)
|
817
|
+
|
818
|
+
|
819
|
+
def _parse_args_run_server_app() -> argparse.ArgumentParser:
|
820
|
+
"""Parse flower-server-app command line arguments."""
|
821
|
+
parser = argparse.ArgumentParser(
|
822
|
+
description="Start a Flower server app",
|
823
|
+
)
|
824
|
+
|
825
|
+
parser.add_argument(
|
826
|
+
"server-app",
|
827
|
+
help="For example: `server:app` or `project.package.module:wrapper.app`",
|
828
|
+
)
|
829
|
+
parser.add_argument(
|
830
|
+
"--insecure",
|
831
|
+
action="store_true",
|
832
|
+
help="Run the server app without HTTPS. By default, the app runs with "
|
833
|
+
"HTTPS enabled. Use this flag only if you understand the risks.",
|
834
|
+
)
|
835
|
+
parser.add_argument(
|
836
|
+
"--root-certificates",
|
837
|
+
metavar="ROOT_CERT",
|
838
|
+
type=str,
|
839
|
+
help="Specifies the path to the PEM-encoded root certificate file for "
|
840
|
+
"establishing secure HTTPS connections.",
|
841
|
+
)
|
842
|
+
parser.add_argument(
|
843
|
+
"--server",
|
844
|
+
default="0.0.0.0:9092",
|
845
|
+
help="Server address",
|
846
|
+
)
|
847
|
+
parser.add_argument(
|
848
|
+
"--dir",
|
849
|
+
default="",
|
850
|
+
help="Add specified directory to the PYTHONPATH and load Flower "
|
851
|
+
"app from there."
|
852
|
+
" Default: current working directory.",
|
853
|
+
)
|
854
|
+
|
855
|
+
return parser
|
@@ -72,7 +72,7 @@ def start_driver( # pylint: disable=too-many-arguments, too-many-locals
|
|
72
72
|
An implementation of the abstract base class
|
73
73
|
`flwr.server.strategy.Strategy`. If no strategy is provided, then
|
74
74
|
`start_server` will use `flwr.server.strategy.FedAvg`.
|
75
|
-
client_manager : Optional[flwr.server.
|
75
|
+
client_manager : Optional[flwr.server.ClientManager] (default: None)
|
76
76
|
An implementation of the class `flwr.server.ClientManager`. If no
|
77
77
|
implementation is provided, then `start_driver` will use
|
78
78
|
`flwr.server.SimpleClientManager`.
|
@@ -17,7 +17,6 @@
|
|
17
17
|
|
18
18
|
from typing import Iterable, List, Optional, Tuple
|
19
19
|
|
20
|
-
from flwr.driver.grpc_driver import DEFAULT_SERVER_ADDRESS_DRIVER, GrpcDriver
|
21
20
|
from flwr.proto.driver_pb2 import ( # pylint: disable=E0611
|
22
21
|
CreateRunRequest,
|
23
22
|
GetNodesRequest,
|
@@ -26,6 +25,7 @@ from flwr.proto.driver_pb2 import ( # pylint: disable=E0611
|
|
26
25
|
)
|
27
26
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
28
27
|
from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611
|
28
|
+
from flwr.server.driver.grpc_driver import DEFAULT_SERVER_ADDRESS_DRIVER, GrpcDriver
|
29
29
|
|
30
30
|
|
31
31
|
class Driver:
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
"""Flower SuperLink."""
|
@@ -35,7 +35,7 @@ from flwr.proto.driver_pb2 import ( # pylint: disable=E0611
|
|
35
35
|
)
|
36
36
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
37
37
|
from flwr.proto.task_pb2 import TaskRes # pylint: disable=E0611
|
38
|
-
from flwr.server.state import State, StateFactory
|
38
|
+
from flwr.server.superlink.state import State, StateFactory
|
39
39
|
from flwr.server.utils.validator import validate_task_ins_or_res
|
40
40
|
|
41
41
|
|
@@ -30,8 +30,12 @@ from flwr.proto.transport_pb2 import ( # pylint: disable=E0611
|
|
30
30
|
ServerMessage,
|
31
31
|
)
|
32
32
|
from flwr.server.client_manager import ClientManager
|
33
|
-
from flwr.server.fleet.grpc_bidi.grpc_bridge import
|
34
|
-
|
33
|
+
from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import (
|
34
|
+
GrpcBridge,
|
35
|
+
InsWrapper,
|
36
|
+
ResWrapper,
|
37
|
+
)
|
38
|
+
from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy
|
35
39
|
|
36
40
|
|
37
41
|
def default_bridge_factory() -> GrpcBridge:
|
@@ -24,7 +24,11 @@ from flwr.proto.transport_pb2 import ( # pylint: disable=E0611
|
|
24
24
|
ServerMessage,
|
25
25
|
)
|
26
26
|
from flwr.server.client_proxy import ClientProxy
|
27
|
-
from flwr.server.fleet.grpc_bidi.grpc_bridge import
|
27
|
+
from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import (
|
28
|
+
GrpcBridge,
|
29
|
+
InsWrapper,
|
30
|
+
ResWrapper,
|
31
|
+
)
|
28
32
|
|
29
33
|
|
30
34
|
class GrpcClientProxy(ClientProxy):
|
@@ -28,9 +28,11 @@ from flwr.proto.transport_pb2_grpc import ( # pylint: disable=E0611
|
|
28
28
|
add_FlowerServiceServicer_to_server,
|
29
29
|
)
|
30
30
|
from flwr.server.client_manager import ClientManager
|
31
|
-
from flwr.server.driver.driver_servicer import DriverServicer
|
32
|
-
from flwr.server.fleet.grpc_bidi.flower_service_servicer import
|
33
|
-
|
31
|
+
from flwr.server.superlink.driver.driver_servicer import DriverServicer
|
32
|
+
from flwr.server.superlink.fleet.grpc_bidi.flower_service_servicer import (
|
33
|
+
FlowerServiceServicer,
|
34
|
+
)
|
35
|
+
from flwr.server.superlink.fleet.grpc_rere.fleet_servicer import FleetServicer
|
34
36
|
|
35
37
|
INVALID_CERTIFICATES_ERR_MSG = """
|
36
38
|
When setting any of root_certificate, certificate, or private_key,
|
@@ -31,8 +31,8 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
31
31
|
PushTaskResRequest,
|
32
32
|
PushTaskResResponse,
|
33
33
|
)
|
34
|
-
from flwr.server.fleet.message_handler import message_handler
|
35
|
-
from flwr.server.state import StateFactory
|
34
|
+
from flwr.server.superlink.fleet.message_handler import message_handler
|
35
|
+
from flwr.server.superlink.state import StateFactory
|
36
36
|
|
37
37
|
|
38
38
|
class FleetServicer(fleet_pb2_grpc.FleetServicer):
|
@@ -31,7 +31,7 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
31
31
|
)
|
32
32
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
33
33
|
from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611
|
34
|
-
from flwr.server.state import State
|
34
|
+
from flwr.server.superlink.state import State
|
35
35
|
|
36
36
|
|
37
37
|
def create_node(
|
@@ -24,8 +24,8 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
24
24
|
PullTaskInsRequest,
|
25
25
|
PushTaskResRequest,
|
26
26
|
)
|
27
|
-
from flwr.server.fleet.message_handler import message_handler
|
28
|
-
from flwr.server.state import State
|
27
|
+
from flwr.server.superlink.fleet.message_handler import message_handler
|
28
|
+
from flwr.server.superlink.state import State
|
29
29
|
|
30
30
|
try:
|
31
31
|
from starlette.applications import Starlette
|
@@ -23,7 +23,7 @@ from uuid import UUID, uuid4
|
|
23
23
|
|
24
24
|
from flwr.common import log, now
|
25
25
|
from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611
|
26
|
-
from flwr.server.state.state import State
|
26
|
+
from flwr.server.superlink.state.state import State
|
27
27
|
from flwr.server.utils import validate_task_ins_or_res
|
28
28
|
|
29
29
|
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/mod/utils.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/node_state.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/numpy_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/client/typing.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/address.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/constant.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/context.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/date.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/grpc.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/logger.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/message.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/parameter.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/recordset.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/serde.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/typing.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/common/version.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/driver_pb2.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/fleet_pb2.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2.pyi
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/node_pb2_grpc.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/recordset_pb2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2.pyi
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/task_pb2_grpc.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/proto/transport_pb2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/client_proxy.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/criterion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/history.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/server/server.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.8.0.dev20240209 → flwr_nightly-1.8.0.dev20240211}/src/py/flwr/simulation/app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|