flwr-nightly 1.7.0.dev20240118__tar.gz → 1.7.0.dev20240119__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/PKG-INFO +1 -1
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/pyproject.toml +2 -2
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/configsrecord.py +14 -5
- flwr_nightly-1.7.0.dev20240119/src/py/flwr/common/flowercontext.py +77 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/metricsrecord.py +17 -6
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/parametersrecord.py +12 -5
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/typing.py +2 -2
- flwr_nightly-1.7.0.dev20240119/src/py/flwr/proto/task_pb2.py +54 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2.pyi +4 -1
- flwr_nightly-1.7.0.dev20240118/src/py/flwr/proto/task_pb2.py +0 -54
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/LICENSE +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/README.md +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/flower.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/middleware/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/middleware/utils.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/run_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/secaggplus_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/recordset.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/recordset_utils.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/app.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/driver.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/driver_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/flower/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/driver/driver_servicer.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/driver_client_manager.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/ins_scheduler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/in_memory_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/sqlite_state.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/state.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/state_factory.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/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.7.0-
|
7
|
+
version = "1.7.0-dev20240119"
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
9
9
|
license = "Apache-2.0"
|
10
10
|
authors = ["The Flower Authors <hello@flower.dev>"]
|
@@ -87,7 +87,7 @@ clang-format = "==17.0.4"
|
|
87
87
|
isort = "==5.13.2"
|
88
88
|
black = { version = "==23.10.1", extras = ["jupyter"] }
|
89
89
|
docformatter = "==1.7.5"
|
90
|
-
mypy = "==1.
|
90
|
+
mypy = "==1.8.0"
|
91
91
|
pylint = "==3.0.3"
|
92
92
|
flake8 = "==5.0.4"
|
93
93
|
pytest = "==7.4.4"
|
@@ -25,7 +25,6 @@ from .typing import ConfigsRecordValues, ConfigsScalar
|
|
25
25
|
class ConfigsRecord:
|
26
26
|
"""Configs record."""
|
27
27
|
|
28
|
-
keep_input: bool
|
29
28
|
data: Dict[str, ConfigsRecordValues] = field(default_factory=dict)
|
30
29
|
|
31
30
|
def __init__(
|
@@ -47,12 +46,13 @@ class ConfigsRecord:
|
|
47
46
|
to True, the data is duplicated in memory. If memory is a concern, set
|
48
47
|
it to False.
|
49
48
|
"""
|
50
|
-
self.keep_input = keep_input
|
51
49
|
self.data = {}
|
52
50
|
if configs_dict:
|
53
|
-
self.set_configs(configs_dict)
|
51
|
+
self.set_configs(configs_dict, keep_input=keep_input)
|
54
52
|
|
55
|
-
def set_configs(
|
53
|
+
def set_configs(
|
54
|
+
self, configs_dict: Dict[str, ConfigsRecordValues], keep_input: bool = True
|
55
|
+
) -> None:
|
56
56
|
"""Add configs to the record.
|
57
57
|
|
58
58
|
Parameters
|
@@ -61,6 +61,11 @@ class ConfigsRecord:
|
|
61
61
|
A dictionary that stores basic types (i.e. `str`,`int`, `float`, `bytes` as
|
62
62
|
defined in `ConfigsRecordValues`) and list of such types (see
|
63
63
|
`ConfigsScalarList`).
|
64
|
+
keep_input : bool (default: True)
|
65
|
+
A boolean indicating whether config passed should be deleted from the input
|
66
|
+
dictionary immediately after adding them to the record. When set
|
67
|
+
to True, the data is duplicated in memory. If memory is a concern, set
|
68
|
+
it to False.
|
64
69
|
"""
|
65
70
|
if any(not isinstance(k, str) for k in configs_dict.keys()):
|
66
71
|
raise TypeError(f"Not all keys are of valid type. Expected {str}")
|
@@ -88,7 +93,7 @@ class ConfigsRecord:
|
|
88
93
|
is_valid(value)
|
89
94
|
|
90
95
|
# Add configs to record
|
91
|
-
if
|
96
|
+
if keep_input:
|
92
97
|
# Copy
|
93
98
|
self.data = configs_dict.copy()
|
94
99
|
else:
|
@@ -96,3 +101,7 @@ class ConfigsRecord:
|
|
96
101
|
for key in list(configs_dict.keys()):
|
97
102
|
self.data[key] = configs_dict[key]
|
98
103
|
del configs_dict[key]
|
104
|
+
|
105
|
+
def __getitem__(self, key: str) -> ConfigsRecordValues:
|
106
|
+
"""Retrieve an element stored in record."""
|
107
|
+
return self.data[key]
|
@@ -0,0 +1,77 @@
|
|
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
|
+
"""FlowerContext and Metadata."""
|
16
|
+
|
17
|
+
|
18
|
+
from dataclasses import dataclass
|
19
|
+
|
20
|
+
from .recordset import RecordSet
|
21
|
+
|
22
|
+
|
23
|
+
@dataclass
|
24
|
+
class Metadata:
|
25
|
+
"""A dataclass holding metadata associated with the current task.
|
26
|
+
|
27
|
+
Parameters
|
28
|
+
----------
|
29
|
+
run_id : int
|
30
|
+
An identifier for the current run.
|
31
|
+
task_id : str
|
32
|
+
An identifier for the current task.
|
33
|
+
group_id : str
|
34
|
+
An identifier for grouping tasks. In some settings
|
35
|
+
this is used as the FL round.
|
36
|
+
ttl : str
|
37
|
+
Time-to-live for this task.
|
38
|
+
task_type : str
|
39
|
+
A string that encodes the action to be executed on
|
40
|
+
the receiving end.
|
41
|
+
"""
|
42
|
+
|
43
|
+
run_id: int
|
44
|
+
task_id: str
|
45
|
+
group_id: str
|
46
|
+
ttl: str
|
47
|
+
task_type: str
|
48
|
+
|
49
|
+
|
50
|
+
@dataclass
|
51
|
+
class FlowerContext:
|
52
|
+
"""State of your application from the viewpoint of the entity using it.
|
53
|
+
|
54
|
+
Parameters
|
55
|
+
----------
|
56
|
+
in_message : RecordSet
|
57
|
+
Holds records sent by another entity (e.g. sent by the server-side
|
58
|
+
logic to a client, or vice-versa)
|
59
|
+
out_message : RecordSet
|
60
|
+
Holds records added by the current entity. This `RecordSet` will
|
61
|
+
be sent out (e.g. back to the server-side for aggregation of
|
62
|
+
parameter, or to the client to perform a certain task)
|
63
|
+
local : RecordSet
|
64
|
+
Holds record added by the current entity and that will stay local.
|
65
|
+
This means that the data it holds will never leave the system it's running from.
|
66
|
+
This can be used as an intermediate storage or scratchpad when
|
67
|
+
executing middleware layers. It can also be used as a memory to access
|
68
|
+
at different points during the lifecycle of this entity (e.g. across
|
69
|
+
multiple rounds)
|
70
|
+
metadata : Metadata
|
71
|
+
A dataclass including information about the task to be executed.
|
72
|
+
"""
|
73
|
+
|
74
|
+
in_message: RecordSet
|
75
|
+
out_message: RecordSet
|
76
|
+
local: RecordSet
|
77
|
+
metadata: Metadata
|
@@ -25,7 +25,6 @@ from .typing import MetricsRecordValues, MetricsScalar
|
|
25
25
|
class MetricsRecord:
|
26
26
|
"""Metrics record."""
|
27
27
|
|
28
|
-
keep_input: bool
|
29
28
|
data: Dict[str, MetricsRecordValues] = field(default_factory=dict)
|
30
29
|
|
31
30
|
def __init__(
|
@@ -46,12 +45,13 @@ class MetricsRecord:
|
|
46
45
|
to True, the data is duplicated in memory. If memory is a concern, set
|
47
46
|
it to False.
|
48
47
|
"""
|
49
|
-
self.keep_input = keep_input
|
50
48
|
self.data = {}
|
51
49
|
if metrics_dict:
|
52
|
-
self.set_metrics(metrics_dict)
|
50
|
+
self.set_metrics(metrics_dict, keep_input=keep_input)
|
53
51
|
|
54
|
-
def set_metrics(
|
52
|
+
def set_metrics(
|
53
|
+
self, metrics_dict: Dict[str, MetricsRecordValues], keep_input: bool = True
|
54
|
+
) -> None:
|
55
55
|
"""Add metrics to the record.
|
56
56
|
|
57
57
|
Parameters
|
@@ -59,13 +59,20 @@ class MetricsRecord:
|
|
59
59
|
metrics_dict : Dict[str, MetricsRecordValues]
|
60
60
|
A dictionary that stores basic types (i.e. `int`, `float` as defined
|
61
61
|
in `MetricsScalar`) and list of such types (see `MetricsScalarList`).
|
62
|
+
keep_input : bool (default: True)
|
63
|
+
A boolean indicating whether metrics should be deleted from the input
|
64
|
+
dictionary immediately after adding them to the record. When set
|
65
|
+
to True, the data is duplicated in memory. If memory is a concern, set
|
66
|
+
it to False.
|
62
67
|
"""
|
63
68
|
if any(not isinstance(k, str) for k in metrics_dict.keys()):
|
64
69
|
raise TypeError(f"Not all keys are of valid type. Expected {str}.")
|
65
70
|
|
66
71
|
def is_valid(value: MetricsScalar) -> None:
|
67
72
|
"""Check if value is of expected type."""
|
68
|
-
if not isinstance(value, get_args(MetricsScalar))
|
73
|
+
if not isinstance(value, get_args(MetricsScalar)) or isinstance(
|
74
|
+
value, bool
|
75
|
+
):
|
69
76
|
raise TypeError(
|
70
77
|
"Not all values are of valid type."
|
71
78
|
f" Expected {MetricsRecordValues} but you passed {type(value)}."
|
@@ -86,7 +93,7 @@ class MetricsRecord:
|
|
86
93
|
is_valid(value)
|
87
94
|
|
88
95
|
# Add metrics to record
|
89
|
-
if
|
96
|
+
if keep_input:
|
90
97
|
# Copy
|
91
98
|
self.data = metrics_dict.copy()
|
92
99
|
else:
|
@@ -94,3 +101,7 @@ class MetricsRecord:
|
|
94
101
|
for key in list(metrics_dict.keys()):
|
95
102
|
self.data[key] = metrics_dict[key]
|
96
103
|
del metrics_dict[key]
|
104
|
+
|
105
|
+
def __getitem__(self, key: str) -> MetricsRecordValues:
|
106
|
+
"""Retrieve an element stored in record."""
|
107
|
+
return self.data[key]
|
@@ -59,7 +59,6 @@ class ParametersRecord:
|
|
59
59
|
PyTorch's state_dict, but holding serialised tensors instead.
|
60
60
|
"""
|
61
61
|
|
62
|
-
keep_input: bool
|
63
62
|
data: OrderedDict[str, Array] = field(default_factory=OrderedDict[str, Array])
|
64
63
|
|
65
64
|
def __init__(
|
@@ -82,25 +81,29 @@ class ParametersRecord:
|
|
82
81
|
parameters after adding it to the record, set this flag to True. When set
|
83
82
|
to True, the data is duplicated in memory.
|
84
83
|
"""
|
85
|
-
self.keep_input = keep_input
|
86
84
|
self.data = OrderedDict()
|
87
85
|
if array_dict:
|
88
|
-
self.set_parameters(array_dict)
|
86
|
+
self.set_parameters(array_dict, keep_input=keep_input)
|
89
87
|
|
90
|
-
def set_parameters(
|
88
|
+
def set_parameters(
|
89
|
+
self, array_dict: OrderedDict[str, Array], keep_input: bool = False
|
90
|
+
) -> None:
|
91
91
|
"""Add parameters to record.
|
92
92
|
|
93
93
|
Parameters
|
94
94
|
----------
|
95
95
|
array_dict : OrderedDict[str, Array]
|
96
96
|
A dictionary that stores serialized array-like or tensor-like objects.
|
97
|
+
keep_input : bool (default: False)
|
98
|
+
A boolean indicating whether parameters should be deleted from the input
|
99
|
+
dictionary immediately after adding them to the record.
|
97
100
|
"""
|
98
101
|
if any(not isinstance(k, str) for k in array_dict.keys()):
|
99
102
|
raise TypeError(f"Not all keys are of valid type. Expected {str}")
|
100
103
|
if any(not isinstance(v, Array) for v in array_dict.values()):
|
101
104
|
raise TypeError(f"Not all values are of valid type. Expected {Array}")
|
102
105
|
|
103
|
-
if
|
106
|
+
if keep_input:
|
104
107
|
# Copy
|
105
108
|
self.data = OrderedDict(array_dict)
|
106
109
|
else:
|
@@ -108,3 +111,7 @@ class ParametersRecord:
|
|
108
111
|
for key in list(array_dict.keys()):
|
109
112
|
self.data[key] = array_dict[key]
|
110
113
|
del array_dict[key]
|
114
|
+
|
115
|
+
def __getitem__(self, key: str) -> Array:
|
116
|
+
"""Retrieve an element stored in record."""
|
117
|
+
return self.data[key]
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/typing.py
RENAMED
@@ -50,8 +50,8 @@ MetricsScalar = Union[int, float]
|
|
50
50
|
MetricsScalarList = Union[List[int], List[float]]
|
51
51
|
MetricsRecordValues = Union[MetricsScalar, MetricsScalarList]
|
52
52
|
# Value types for common.ConfigsRecord
|
53
|
-
ConfigsScalar = Union[MetricsScalar, str, bytes]
|
54
|
-
ConfigsScalarList = Union[MetricsScalarList, List[str], List[bytes]]
|
53
|
+
ConfigsScalar = Union[MetricsScalar, str, bytes, bool]
|
54
|
+
ConfigsScalarList = Union[MetricsScalarList, List[str], List[bytes], List[bool]]
|
55
55
|
ConfigsRecordValues = Union[ConfigsScalar, ConfigsScalarList]
|
56
56
|
|
57
57
|
Metrics = Dict[str, Scalar]
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: flwr/proto/task.proto
|
4
|
+
# Protobuf Python Version: 4.25.0
|
5
|
+
"""Generated protocol buffer code."""
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
9
|
+
from google.protobuf.internal import builder as _builder
|
10
|
+
# @@protoc_insertion_point(imports)
|
11
|
+
|
12
|
+
_sym_db = _symbol_database.Default()
|
13
|
+
|
14
|
+
|
15
|
+
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
16
|
+
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
17
|
+
|
18
|
+
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xd1\x02\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12\x11\n\ttask_type\x18\x07 \x01(\t\x12)\n\x02sa\x18\x08 \x01(\x0b\x32\x1d.flwr.proto.SecureAggregation\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xf3\x03\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12\x33\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x1c.flwr.proto.Value.DoubleListH\x00\x12\x33\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x1c.flwr.proto.Value.Sint64ListH\x00\x12/\n\tbool_list\x18\x17 \x01(\x0b\x32\x1a.flwr.proto.Value.BoolListH\x00\x12\x33\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x1c.flwr.proto.Value.StringListH\x00\x12\x31\n\nbytes_list\x18\x19 \x01(\x0b\x32\x1b.flwr.proto.Value.BytesListH\x00\x1a\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\x1a\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\x1a\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\x1a\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\x1a\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
|
20
|
+
|
21
|
+
_globals = globals()
|
22
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
23
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
|
24
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
25
|
+
DESCRIPTOR._options = None
|
26
|
+
_globals['_TASK'].fields_by_name['legacy_server_message']._options = None
|
27
|
+
_globals['_TASK'].fields_by_name['legacy_server_message']._serialized_options = b'\030\001'
|
28
|
+
_globals['_TASK'].fields_by_name['legacy_client_message']._options = None
|
29
|
+
_globals['_TASK'].fields_by_name['legacy_client_message']._serialized_options = b'\030\001'
|
30
|
+
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._options = None
|
31
|
+
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_options = b'8\001'
|
32
|
+
_globals['_TASK']._serialized_start=89
|
33
|
+
_globals['_TASK']._serialized_end=426
|
34
|
+
_globals['_TASKINS']._serialized_start=428
|
35
|
+
_globals['_TASKINS']._serialized_end=520
|
36
|
+
_globals['_TASKRES']._serialized_start=522
|
37
|
+
_globals['_TASKRES']._serialized_end=614
|
38
|
+
_globals['_VALUE']._serialized_start=617
|
39
|
+
_globals['_VALUE']._serialized_end=1116
|
40
|
+
_globals['_VALUE_DOUBLELIST']._serialized_start=972
|
41
|
+
_globals['_VALUE_DOUBLELIST']._serialized_end=998
|
42
|
+
_globals['_VALUE_SINT64LIST']._serialized_start=1000
|
43
|
+
_globals['_VALUE_SINT64LIST']._serialized_end=1026
|
44
|
+
_globals['_VALUE_BOOLLIST']._serialized_start=1028
|
45
|
+
_globals['_VALUE_BOOLLIST']._serialized_end=1052
|
46
|
+
_globals['_VALUE_STRINGLIST']._serialized_start=1054
|
47
|
+
_globals['_VALUE_STRINGLIST']._serialized_end=1080
|
48
|
+
_globals['_VALUE_BYTESLIST']._serialized_start=1082
|
49
|
+
_globals['_VALUE_BYTESLIST']._serialized_end=1107
|
50
|
+
_globals['_SECUREAGGREGATION']._serialized_start=1119
|
51
|
+
_globals['_SECUREAGGREGATION']._serialized_end=1279
|
52
|
+
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1210
|
53
|
+
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1279
|
54
|
+
# @@protoc_insertion_point(module_scope)
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2.pyi
RENAMED
@@ -21,6 +21,7 @@ class Task(google.protobuf.message.Message):
|
|
21
21
|
DELIVERED_AT_FIELD_NUMBER: builtins.int
|
22
22
|
TTL_FIELD_NUMBER: builtins.int
|
23
23
|
ANCESTRY_FIELD_NUMBER: builtins.int
|
24
|
+
TASK_TYPE_FIELD_NUMBER: builtins.int
|
24
25
|
SA_FIELD_NUMBER: builtins.int
|
25
26
|
LEGACY_SERVER_MESSAGE_FIELD_NUMBER: builtins.int
|
26
27
|
LEGACY_CLIENT_MESSAGE_FIELD_NUMBER: builtins.int
|
@@ -33,6 +34,7 @@ class Task(google.protobuf.message.Message):
|
|
33
34
|
ttl: typing.Text
|
34
35
|
@property
|
35
36
|
def ancestry(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
37
|
+
task_type: typing.Text
|
36
38
|
@property
|
37
39
|
def sa(self) -> global___SecureAggregation: ...
|
38
40
|
@property
|
@@ -47,12 +49,13 @@ class Task(google.protobuf.message.Message):
|
|
47
49
|
delivered_at: typing.Text = ...,
|
48
50
|
ttl: typing.Text = ...,
|
49
51
|
ancestry: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
52
|
+
task_type: typing.Text = ...,
|
50
53
|
sa: typing.Optional[global___SecureAggregation] = ...,
|
51
54
|
legacy_server_message: typing.Optional[flwr.proto.transport_pb2.ServerMessage] = ...,
|
52
55
|
legacy_client_message: typing.Optional[flwr.proto.transport_pb2.ClientMessage] = ...,
|
53
56
|
) -> None: ...
|
54
57
|
def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa"]) -> builtins.bool: ...
|
55
|
-
def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa","ttl",b"ttl"]) -> None: ...
|
58
|
+
def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
|
56
59
|
global___Task = Task
|
57
60
|
|
58
61
|
class TaskIns(google.protobuf.message.Message):
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
-
# source: flwr/proto/task.proto
|
4
|
-
# Protobuf Python Version: 4.25.0
|
5
|
-
"""Generated protocol buffer code."""
|
6
|
-
from google.protobuf import descriptor as _descriptor
|
7
|
-
from google.protobuf import descriptor_pool as _descriptor_pool
|
8
|
-
from google.protobuf import symbol_database as _symbol_database
|
9
|
-
from google.protobuf.internal import builder as _builder
|
10
|
-
# @@protoc_insertion_point(imports)
|
11
|
-
|
12
|
-
_sym_db = _symbol_database.Default()
|
13
|
-
|
14
|
-
|
15
|
-
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
16
|
-
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
17
|
-
|
18
|
-
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xbe\x02\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12)\n\x02sa\x18\x07 \x01(\x0b\x32\x1d.flwr.proto.SecureAggregation\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xf3\x03\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12\x33\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x1c.flwr.proto.Value.DoubleListH\x00\x12\x33\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x1c.flwr.proto.Value.Sint64ListH\x00\x12/\n\tbool_list\x18\x17 \x01(\x0b\x32\x1a.flwr.proto.Value.BoolListH\x00\x12\x33\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x1c.flwr.proto.Value.StringListH\x00\x12\x31\n\nbytes_list\x18\x19 \x01(\x0b\x32\x1b.flwr.proto.Value.BytesListH\x00\x1a\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\x1a\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\x1a\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\x1a\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\x1a\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
|
20
|
-
|
21
|
-
_globals = globals()
|
22
|
-
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
23
|
-
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
|
24
|
-
if _descriptor._USE_C_DESCRIPTORS == False:
|
25
|
-
DESCRIPTOR._options = None
|
26
|
-
_globals['_TASK'].fields_by_name['legacy_server_message']._options = None
|
27
|
-
_globals['_TASK'].fields_by_name['legacy_server_message']._serialized_options = b'\030\001'
|
28
|
-
_globals['_TASK'].fields_by_name['legacy_client_message']._options = None
|
29
|
-
_globals['_TASK'].fields_by_name['legacy_client_message']._serialized_options = b'\030\001'
|
30
|
-
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._options = None
|
31
|
-
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_options = b'8\001'
|
32
|
-
_globals['_TASK']._serialized_start=89
|
33
|
-
_globals['_TASK']._serialized_end=407
|
34
|
-
_globals['_TASKINS']._serialized_start=409
|
35
|
-
_globals['_TASKINS']._serialized_end=501
|
36
|
-
_globals['_TASKRES']._serialized_start=503
|
37
|
-
_globals['_TASKRES']._serialized_end=595
|
38
|
-
_globals['_VALUE']._serialized_start=598
|
39
|
-
_globals['_VALUE']._serialized_end=1097
|
40
|
-
_globals['_VALUE_DOUBLELIST']._serialized_start=953
|
41
|
-
_globals['_VALUE_DOUBLELIST']._serialized_end=979
|
42
|
-
_globals['_VALUE_SINT64LIST']._serialized_start=981
|
43
|
-
_globals['_VALUE_SINT64LIST']._serialized_end=1007
|
44
|
-
_globals['_VALUE_BOOLLIST']._serialized_start=1009
|
45
|
-
_globals['_VALUE_BOOLLIST']._serialized_end=1033
|
46
|
-
_globals['_VALUE_STRINGLIST']._serialized_start=1035
|
47
|
-
_globals['_VALUE_STRINGLIST']._serialized_end=1061
|
48
|
-
_globals['_VALUE_BYTESLIST']._serialized_start=1063
|
49
|
-
_globals['_VALUE_BYTESLIST']._serialized_end=1088
|
50
|
-
_globals['_SECUREAGGREGATION']._serialized_start=1100
|
51
|
-
_globals['_SECUREAGGREGATION']._serialized_end=1260
|
52
|
-
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1191
|
53
|
-
_globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1260
|
54
|
-
# @@protoc_insertion_point(module_scope)
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/client.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/flower.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
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/node_state.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/numpy_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/run_state.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/typing.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/address.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/constant.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/date.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/grpc.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/logger.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/parameter.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/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.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/serde.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/telemetry.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/version.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/__init__.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/driver.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/grpc_driver.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/flower/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.pyi
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.pyi
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2_grpc.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2_grpc.py
RENAMED
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/client_proxy.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/criterion.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
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/history.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/server.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/state.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
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/__init__.py
RENAMED
File without changes
|
{flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|