flwr-nightly 1.7.0.dev20240130__tar.gz → 1.7.0.dev20240201__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/PKG-INFO +17 -5
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/README.md +16 -4
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/pyproject.toml +3 -3
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/app.py +25 -7
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/dpfedavg_numpy_client.py +8 -1
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/middleware/__init__.py +2 -0
- flwr_nightly-1.7.0.dev20240201/src/py/flwr/client/middleware/secure_aggregation/__init__.py +20 -0
- flwr_nightly-1.7.0.dev20240130/src/py/flwr/client/secure_aggregation/secaggplus_handler.py → flwr_nightly-1.7.0.dev20240201/src/py/flwr/client/middleware/secure_aggregation/secaggplus_middleware.py +147 -105
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/dp.py +4 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +2 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/driver/app.py +3 -1
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/driver/driver.py +4 -3
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/driver/grpc_driver.py +4 -4
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/app.py +1 -1
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py +6 -3
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py +7 -7
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +8 -1
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/dpfedavg_fixed.py +8 -2
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedxgb_bagging.py +5 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedxgb_cyclic.py +5 -0
- flwr_nightly-1.7.0.dev20240130/src/py/flwr/client/secure_aggregation/__init__.py +0 -24
- flwr_nightly-1.7.0.dev20240130/src/py/flwr/client/secure_aggregation/handler.py +0 -43
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/LICENSE +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/flower.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/middleware/utils.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/configsrecord.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/metricsrecord.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/parametersrecord.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/recordset.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/driver/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/driver/driver_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/flower/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/driver_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/driver_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/driver/driver_servicer.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/state/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/state/in_memory_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/state/sqlite_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/state/state.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/state/state_factory.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240130 → flwr_nightly-1.7.0.dev20240201}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.7.0.
|
3
|
+
Version: 1.7.0.dev20240201
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
5
5
|
Home-page: https://flower.dev
|
6
6
|
License: Apache-2.0
|
@@ -82,8 +82,7 @@ design of Flower is based on a few guiding principles:
|
|
82
82
|
|
83
83
|
- **Framework-agnostic**: Different machine learning frameworks have different
|
84
84
|
strengths. Flower can be used with any machine learning framework, for
|
85
|
-
example, [PyTorch](https://pytorch.org),
|
86
|
-
[TensorFlow](https://tensorflow.org), [Hugging Face Transformers](https://huggingface.co/), [PyTorch Lightning](https://pytorchlightning.ai/), [scikit-learn](https://scikit-learn.org/), [JAX](https://jax.readthedocs.io/), [TFLite](https://tensorflow.org/lite/), [fastai](https://www.fast.ai/), [Pandas](https://pandas.pydata.org/) for federated analytics, or even raw [NumPy](https://numpy.org/)
|
85
|
+
example, [PyTorch](https://pytorch.org), [TensorFlow](https://tensorflow.org), [Hugging Face Transformers](https://huggingface.co/), [PyTorch Lightning](https://pytorchlightning.ai/), [scikit-learn](https://scikit-learn.org/), [JAX](https://jax.readthedocs.io/), [TFLite](https://tensorflow.org/lite/), [fastai](https://www.fast.ai/), [MLX](https://ml-explore.github.io/mlx/build/html/index.html), [XGBoost](https://xgboost.readthedocs.io/en/stable/), [Pandas](https://pandas.pydata.org/) for federated analytics, or even raw [NumPy](https://numpy.org/)
|
87
86
|
for users who enjoy computing gradients by hand.
|
88
87
|
|
89
88
|
- **Understandable**: Flower is written with maintainability in mind. The
|
@@ -129,7 +128,7 @@ Stay tuned, more tutorials are coming soon. Topics include **Privacy and Securit
|
|
129
128
|
- [Quickstart (TensorFlow)](https://flower.dev/docs/framework/tutorial-quickstart-tensorflow.html)
|
130
129
|
- [Quickstart (PyTorch)](https://flower.dev/docs/framework/tutorial-quickstart-pytorch.html)
|
131
130
|
- [Quickstart (Hugging Face)](https://flower.dev/docs/framework/tutorial-quickstart-huggingface.html)
|
132
|
-
- [Quickstart (PyTorch Lightning
|
131
|
+
- [Quickstart (PyTorch Lightning)](https://flower.dev/docs/framework/tutorial-quickstart-pytorch-lightning.html)
|
133
132
|
- [Quickstart (Pandas)](https://flower.dev/docs/framework/tutorial-quickstart-pandas.html)
|
134
133
|
- [Quickstart (fastai)](https://flower.dev/docs/framework/tutorial-quickstart-fastai.html)
|
135
134
|
- [Quickstart (JAX)](https://flower.dev/docs/framework/tutorial-quickstart-jax.html)
|
@@ -148,11 +147,17 @@ Flower Baselines is a collection of community-contributed projects that reproduc
|
|
148
147
|
- [FedMLB](https://github.com/adap/flower/tree/main/baselines/fedmlb)
|
149
148
|
- [FedPer](https://github.com/adap/flower/tree/main/baselines/fedper)
|
150
149
|
- [FedProx](https://github.com/adap/flower/tree/main/baselines/fedprox)
|
150
|
+
- [FedNova](https://github.com/adap/flower/tree/main/baselines/fednova)
|
151
|
+
- [HeteroFL](https://github.com/adap/flower/tree/main/baselines/heterofl)
|
152
|
+
- [FedAvgM](https://github.com/adap/flower/tree/main/baselines/fedavgm)
|
151
153
|
- [FedWav2vec2](https://github.com/adap/flower/tree/main/baselines/fedwav2vec2)
|
152
154
|
- [FjORD](https://github.com/adap/flower/tree/main/baselines/fjord)
|
153
155
|
- [MOON](https://github.com/adap/flower/tree/main/baselines/moon)
|
154
156
|
- [niid-Bench](https://github.com/adap/flower/tree/main/baselines/niid_bench)
|
155
157
|
- [TAMUNA](https://github.com/adap/flower/tree/main/baselines/tamuna)
|
158
|
+
- [FedVSSL](https://github.com/adap/flower/tree/main/baselines/fedvssl)
|
159
|
+
- [FedXGBoost](https://github.com/adap/flower/tree/main/baselines/hfedxgboost)
|
160
|
+
- [FedPara](https://github.com/adap/flower/tree/main/baselines/fedpara)
|
156
161
|
- [FedAvg](https://github.com/adap/flower/tree/main/baselines/flwr_baselines/flwr_baselines/publications/fedavg_mnist)
|
157
162
|
- [FedOpt](https://github.com/adap/flower/tree/main/baselines/flwr_baselines/flwr_baselines/publications/adaptive_federated_optimization)
|
158
163
|
|
@@ -174,16 +179,23 @@ Quickstart examples:
|
|
174
179
|
- [Quickstart (Pandas)](https://github.com/adap/flower/tree/main/examples/quickstart-pandas)
|
175
180
|
- [Quickstart (JAX)](https://github.com/adap/flower/tree/main/examples/quickstart-jax)
|
176
181
|
- [Quickstart (scikit-learn)](https://github.com/adap/flower/tree/main/examples/sklearn-logreg-mnist)
|
182
|
+
- [Quickstart (XGBoost)](https://github.com/adap/flower/tree/main/examples/xgboost-quickstart)
|
177
183
|
- [Quickstart (Android [TFLite])](https://github.com/adap/flower/tree/main/examples/android)
|
178
184
|
- [Quickstart (iOS [CoreML])](https://github.com/adap/flower/tree/main/examples/ios)
|
185
|
+
- [Quickstart (MLX)](https://github.com/adap/flower/tree/main/examples/quickstart-mlx)
|
186
|
+
- [Quickstart (XGBoost)](https://github.com/adap/flower/tree/main/examples/xgboost-quickstart)
|
179
187
|
|
180
188
|
Other [examples](https://github.com/adap/flower/tree/main/examples):
|
181
189
|
|
182
190
|
- [Raspberry Pi & Nvidia Jetson Tutorial](https://github.com/adap/flower/tree/main/examples/embedded-devices)
|
183
191
|
- [PyTorch: From Centralized to Federated](https://github.com/adap/flower/tree/main/examples/pytorch-from-centralized-to-federated)
|
192
|
+
- [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
|
193
|
+
- [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
|
194
|
+
- [Comprehensive XGBoost](https://github.com/adap/flower/tree/main/examples/xgboost-comprehensive)
|
184
195
|
- [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
|
185
196
|
- [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
|
186
|
-
- Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/
|
197
|
+
- Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
|
198
|
+
- [Comprehensive Flower+XGBoost](https://github.com/adap/flower/tree/main/examples/xgboost-comprehensive)
|
187
199
|
- [Flower through Docker Compose and with Grafana dashboard](https://github.com/adap/flower/tree/main/examples/flower-via-docker-compose)
|
188
200
|
|
189
201
|
## Community
|
@@ -33,8 +33,7 @@ design of Flower is based on a few guiding principles:
|
|
33
33
|
|
34
34
|
- **Framework-agnostic**: Different machine learning frameworks have different
|
35
35
|
strengths. Flower can be used with any machine learning framework, for
|
36
|
-
example, [PyTorch](https://pytorch.org),
|
37
|
-
[TensorFlow](https://tensorflow.org), [Hugging Face Transformers](https://huggingface.co/), [PyTorch Lightning](https://pytorchlightning.ai/), [scikit-learn](https://scikit-learn.org/), [JAX](https://jax.readthedocs.io/), [TFLite](https://tensorflow.org/lite/), [fastai](https://www.fast.ai/), [Pandas](https://pandas.pydata.org/) for federated analytics, or even raw [NumPy](https://numpy.org/)
|
36
|
+
example, [PyTorch](https://pytorch.org), [TensorFlow](https://tensorflow.org), [Hugging Face Transformers](https://huggingface.co/), [PyTorch Lightning](https://pytorchlightning.ai/), [scikit-learn](https://scikit-learn.org/), [JAX](https://jax.readthedocs.io/), [TFLite](https://tensorflow.org/lite/), [fastai](https://www.fast.ai/), [MLX](https://ml-explore.github.io/mlx/build/html/index.html), [XGBoost](https://xgboost.readthedocs.io/en/stable/), [Pandas](https://pandas.pydata.org/) for federated analytics, or even raw [NumPy](https://numpy.org/)
|
38
37
|
for users who enjoy computing gradients by hand.
|
39
38
|
|
40
39
|
- **Understandable**: Flower is written with maintainability in mind. The
|
@@ -80,7 +79,7 @@ Stay tuned, more tutorials are coming soon. Topics include **Privacy and Securit
|
|
80
79
|
- [Quickstart (TensorFlow)](https://flower.dev/docs/framework/tutorial-quickstart-tensorflow.html)
|
81
80
|
- [Quickstart (PyTorch)](https://flower.dev/docs/framework/tutorial-quickstart-pytorch.html)
|
82
81
|
- [Quickstart (Hugging Face)](https://flower.dev/docs/framework/tutorial-quickstart-huggingface.html)
|
83
|
-
- [Quickstart (PyTorch Lightning
|
82
|
+
- [Quickstart (PyTorch Lightning)](https://flower.dev/docs/framework/tutorial-quickstart-pytorch-lightning.html)
|
84
83
|
- [Quickstart (Pandas)](https://flower.dev/docs/framework/tutorial-quickstart-pandas.html)
|
85
84
|
- [Quickstart (fastai)](https://flower.dev/docs/framework/tutorial-quickstart-fastai.html)
|
86
85
|
- [Quickstart (JAX)](https://flower.dev/docs/framework/tutorial-quickstart-jax.html)
|
@@ -99,11 +98,17 @@ Flower Baselines is a collection of community-contributed projects that reproduc
|
|
99
98
|
- [FedMLB](https://github.com/adap/flower/tree/main/baselines/fedmlb)
|
100
99
|
- [FedPer](https://github.com/adap/flower/tree/main/baselines/fedper)
|
101
100
|
- [FedProx](https://github.com/adap/flower/tree/main/baselines/fedprox)
|
101
|
+
- [FedNova](https://github.com/adap/flower/tree/main/baselines/fednova)
|
102
|
+
- [HeteroFL](https://github.com/adap/flower/tree/main/baselines/heterofl)
|
103
|
+
- [FedAvgM](https://github.com/adap/flower/tree/main/baselines/fedavgm)
|
102
104
|
- [FedWav2vec2](https://github.com/adap/flower/tree/main/baselines/fedwav2vec2)
|
103
105
|
- [FjORD](https://github.com/adap/flower/tree/main/baselines/fjord)
|
104
106
|
- [MOON](https://github.com/adap/flower/tree/main/baselines/moon)
|
105
107
|
- [niid-Bench](https://github.com/adap/flower/tree/main/baselines/niid_bench)
|
106
108
|
- [TAMUNA](https://github.com/adap/flower/tree/main/baselines/tamuna)
|
109
|
+
- [FedVSSL](https://github.com/adap/flower/tree/main/baselines/fedvssl)
|
110
|
+
- [FedXGBoost](https://github.com/adap/flower/tree/main/baselines/hfedxgboost)
|
111
|
+
- [FedPara](https://github.com/adap/flower/tree/main/baselines/fedpara)
|
107
112
|
- [FedAvg](https://github.com/adap/flower/tree/main/baselines/flwr_baselines/flwr_baselines/publications/fedavg_mnist)
|
108
113
|
- [FedOpt](https://github.com/adap/flower/tree/main/baselines/flwr_baselines/flwr_baselines/publications/adaptive_federated_optimization)
|
109
114
|
|
@@ -125,16 +130,23 @@ Quickstart examples:
|
|
125
130
|
- [Quickstart (Pandas)](https://github.com/adap/flower/tree/main/examples/quickstart-pandas)
|
126
131
|
- [Quickstart (JAX)](https://github.com/adap/flower/tree/main/examples/quickstart-jax)
|
127
132
|
- [Quickstart (scikit-learn)](https://github.com/adap/flower/tree/main/examples/sklearn-logreg-mnist)
|
133
|
+
- [Quickstart (XGBoost)](https://github.com/adap/flower/tree/main/examples/xgboost-quickstart)
|
128
134
|
- [Quickstart (Android [TFLite])](https://github.com/adap/flower/tree/main/examples/android)
|
129
135
|
- [Quickstart (iOS [CoreML])](https://github.com/adap/flower/tree/main/examples/ios)
|
136
|
+
- [Quickstart (MLX)](https://github.com/adap/flower/tree/main/examples/quickstart-mlx)
|
137
|
+
- [Quickstart (XGBoost)](https://github.com/adap/flower/tree/main/examples/xgboost-quickstart)
|
130
138
|
|
131
139
|
Other [examples](https://github.com/adap/flower/tree/main/examples):
|
132
140
|
|
133
141
|
- [Raspberry Pi & Nvidia Jetson Tutorial](https://github.com/adap/flower/tree/main/examples/embedded-devices)
|
134
142
|
- [PyTorch: From Centralized to Federated](https://github.com/adap/flower/tree/main/examples/pytorch-from-centralized-to-federated)
|
143
|
+
- [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
|
144
|
+
- [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
|
145
|
+
- [Comprehensive XGBoost](https://github.com/adap/flower/tree/main/examples/xgboost-comprehensive)
|
135
146
|
- [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
|
136
147
|
- [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
|
137
|
-
- Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/
|
148
|
+
- Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
|
149
|
+
- [Comprehensive Flower+XGBoost](https://github.com/adap/flower/tree/main/examples/xgboost-comprehensive)
|
138
150
|
- [Flower through Docker Compose and with Grafana dashboard](https://github.com/adap/flower/tree/main/examples/flower-via-docker-compose)
|
139
151
|
|
140
152
|
## Community
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "flwr-nightly"
|
7
|
-
version = "1.7.0-
|
7
|
+
version = "1.7.0-dev20240201"
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
9
9
|
license = "Apache-2.0"
|
10
10
|
authors = ["The Flower Authors <hello@flower.dev>"]
|
@@ -83,7 +83,7 @@ types-dataclasses = "==0.6.6"
|
|
83
83
|
types-protobuf = "==3.19.18"
|
84
84
|
types-requests = "==2.31.0.20240125"
|
85
85
|
types-setuptools = "==69.0.0.20240125"
|
86
|
-
clang-format = "==17.0.
|
86
|
+
clang-format = "==17.0.6"
|
87
87
|
isort = "==5.13.2"
|
88
88
|
black = { version = "==23.10.1", extras = ["jupyter"] }
|
89
89
|
docformatter = "==1.7.5"
|
@@ -95,7 +95,7 @@ pytest-cov = "==4.1.0"
|
|
95
95
|
pytest-watch = "==4.2.0"
|
96
96
|
grpcio-tools = "==1.60.0"
|
97
97
|
mypy-protobuf = "==3.2.0"
|
98
|
-
jupyterlab = "==4.0.
|
98
|
+
jupyterlab = "==4.0.12"
|
99
99
|
rope = "==1.11.0"
|
100
100
|
semver = "==3.0.2"
|
101
101
|
sphinx = "==6.2.1"
|
@@ -18,7 +18,7 @@
|
|
18
18
|
import argparse
|
19
19
|
import sys
|
20
20
|
import time
|
21
|
-
from logging import INFO, WARN
|
21
|
+
from logging import DEBUG, INFO, WARN
|
22
22
|
from pathlib import Path
|
23
23
|
from typing import Callable, ContextManager, Optional, Tuple, Union
|
24
24
|
|
@@ -62,7 +62,12 @@ def run_client() -> None:
|
|
62
62
|
"the '--root-certificates' option when running in insecure mode, "
|
63
63
|
"or omit '--insecure' to use HTTPS."
|
64
64
|
)
|
65
|
-
log(
|
65
|
+
log(
|
66
|
+
WARN,
|
67
|
+
"Option `--insecure` was set. "
|
68
|
+
"Starting insecure HTTP client connected to %s.",
|
69
|
+
args.server,
|
70
|
+
)
|
66
71
|
root_certificates = None
|
67
72
|
else:
|
68
73
|
# Load the certificates if provided, or load the system certificates
|
@@ -71,11 +76,19 @@ def run_client() -> None:
|
|
71
76
|
root_certificates = None
|
72
77
|
else:
|
73
78
|
root_certificates = Path(cert_path).read_bytes()
|
79
|
+
log(
|
80
|
+
DEBUG,
|
81
|
+
"Starting secure HTTPS client connected to %s "
|
82
|
+
"with the following certificates: %s.",
|
83
|
+
args.server,
|
84
|
+
cert_path,
|
85
|
+
)
|
74
86
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
87
|
+
log(
|
88
|
+
DEBUG,
|
89
|
+
"The Flower client uses `%s` to execute tasks",
|
90
|
+
args.callable,
|
91
|
+
)
|
79
92
|
|
80
93
|
callable_dir = args.dir
|
81
94
|
if callable_dir is not None:
|
@@ -88,7 +101,7 @@ def run_client() -> None:
|
|
88
101
|
_start_client_internal(
|
89
102
|
server_address=args.server,
|
90
103
|
load_flower_callable_fn=_load,
|
91
|
-
transport="grpc-rere",
|
104
|
+
transport="rest" if args.rest else "grpc-rere",
|
92
105
|
root_certificates=root_certificates,
|
93
106
|
insecure=args.insecure,
|
94
107
|
)
|
@@ -111,6 +124,11 @@ def _parse_args_client() -> argparse.ArgumentParser:
|
|
111
124
|
help="Run the client without HTTPS. By default, the client runs with "
|
112
125
|
"HTTPS enabled. Use this flag only if you understand the risks.",
|
113
126
|
)
|
127
|
+
parser.add_argument(
|
128
|
+
"--rest",
|
129
|
+
action="store_true",
|
130
|
+
help="Use REST as a transport layer for the client.",
|
131
|
+
)
|
114
132
|
parser.add_argument(
|
115
133
|
"--root-certificates",
|
116
134
|
metavar="ROOT_CERT",
|
@@ -22,13 +22,20 @@ import numpy as np
|
|
22
22
|
|
23
23
|
from flwr.client.numpy_client import NumPyClient
|
24
24
|
from flwr.common.dp import add_gaussian_noise, clip_by_l2
|
25
|
+
from flwr.common.logger import warn_deprecated_feature
|
25
26
|
from flwr.common.typing import Config, NDArrays, Scalar
|
26
27
|
|
27
28
|
|
28
29
|
class DPFedAvgNumPyClient(NumPyClient):
|
29
|
-
"""Wrapper for configuring a Flower client for DP.
|
30
|
+
"""Wrapper for configuring a Flower client for DP.
|
31
|
+
|
32
|
+
Warning
|
33
|
+
-------
|
34
|
+
This class is deprecated and will be removed in a future release.
|
35
|
+
"""
|
30
36
|
|
31
37
|
def __init__(self, client: NumPyClient) -> None:
|
38
|
+
warn_deprecated_feature("`DPFedAvgNumPyClient` wrapper")
|
32
39
|
super().__init__()
|
33
40
|
self.client = client
|
34
41
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Copyright 2023 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
|
+
"""Secure Aggregation handlers."""
|
16
|
+
from .secaggplus_middleware import secaggplus_middleware
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
"secaggplus_middleware",
|
20
|
+
]
|