flwr-nightly 1.9.0.dev20240409__tar.gz → 1.9.0.dev20240412__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/PKG-INFO +1 -1
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/pyproject.toml +1 -1
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/new.py +16 -5
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -4
- flwr_nightly-1.9.0.dev20240412/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +19 -0
- flwr_nightly-1.9.0.dev20240412/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +21 -0
- flwr_nightly-1.9.0.dev20240412/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +20 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/utils.py +60 -4
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/heartbeat.py +3 -1
- flwr_nightly-1.9.0.dev20240412/src/py/flwr/proto/driver_pb2.py +44 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/driver_pb2.pyi +8 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/compat/app_utils.py +3 -2
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -19
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -21
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -21
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/requirements.numpy.txt.tpl +0 -2
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/requirements.pytorch.txt.tpl +0 -4
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/requirements.tensorflow.txt.tpl +0 -4
- flwr_nightly-1.9.0.dev20240409/src/py/flwr/proto/driver_pb2.py +0 -44
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/LICENSE +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/README.md +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/example.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/flower_toml.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/templates/app/flower.toml.tpl +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/run/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/run/run.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/client.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/client_app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/grpc_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/grpc_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/message_handler/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/message_handler/task_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/comms_mods.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/localdp_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/node_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/node_state_tests.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/numpy_client.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/rest_client/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/rest_client/connection.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/address.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/constant.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/context.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/date.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/differential_privacy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/differential_privacy_constants.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/dp.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/exit_handlers.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/logger.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/message.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/object_ref.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/parameter.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/pyproject.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/configsrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/conversion_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/metricsrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/parametersrecord.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/recordset.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/record/typeddict.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/recordset_compat.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/retry_invoker.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/serde.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/telemetry.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/version.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/error_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/error_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/fleet_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/node_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/node_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/recordset_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/task_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/task_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/transport_pb2.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/transport_pb2.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/py.typed +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/client_manager.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/compat/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/compat/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/compat/legacy_context.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/criterion.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/driver/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/driver/driver.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/driver/grpc_driver.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/history.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/run_serverapp.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/server.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/server_app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/server_config.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/aggregate.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/bulyan.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedadam.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedavgm.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedmedian.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedopt.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedprox.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/fedyogi.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/krum.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/qfedavg.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/strategy/strategy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/state.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/superlink/state/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/typing.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/utils/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/utils/tensorboard.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/utils/validator.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/constant.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/default_workflows.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/app.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
- {flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/simulation/run_simulation.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "flwr-nightly"
|
|
7
|
-
version = "1.9.0-
|
|
7
|
+
version = "1.9.0-dev20240412"
|
|
8
8
|
description = "Flower: A Friendly Federated Learning Framework"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
authors = ["The Flower Authors <hello@flower.ai>"]
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/new.py
RENAMED
|
@@ -22,7 +22,12 @@ from typing import Dict, Optional
|
|
|
22
22
|
import typer
|
|
23
23
|
from typing_extensions import Annotated
|
|
24
24
|
|
|
25
|
-
from ..utils import
|
|
25
|
+
from ..utils import (
|
|
26
|
+
is_valid_project_name,
|
|
27
|
+
prompt_options,
|
|
28
|
+
prompt_text,
|
|
29
|
+
sanitize_project_name,
|
|
30
|
+
)
|
|
26
31
|
|
|
27
32
|
|
|
28
33
|
class MlFramework(str, Enum):
|
|
@@ -81,6 +86,16 @@ def new(
|
|
|
81
86
|
] = None,
|
|
82
87
|
) -> None:
|
|
83
88
|
"""Create new Flower project."""
|
|
89
|
+
if project_name is None:
|
|
90
|
+
project_name = prompt_text("Please provide project name")
|
|
91
|
+
if not is_valid_project_name(project_name):
|
|
92
|
+
project_name = prompt_text(
|
|
93
|
+
"Please provide a name that only contains "
|
|
94
|
+
"characters in {'_', 'a-zA-Z', '0-9'}",
|
|
95
|
+
predicate=is_valid_project_name,
|
|
96
|
+
default=sanitize_project_name(project_name),
|
|
97
|
+
)
|
|
98
|
+
|
|
84
99
|
print(
|
|
85
100
|
typer.style(
|
|
86
101
|
f"🔨 Creating Flower project {project_name}...",
|
|
@@ -89,9 +104,6 @@ def new(
|
|
|
89
104
|
)
|
|
90
105
|
)
|
|
91
106
|
|
|
92
|
-
if project_name is None:
|
|
93
|
-
project_name = prompt_text("Please provide project name")
|
|
94
|
-
|
|
95
107
|
if framework is not None:
|
|
96
108
|
framework_str = str(framework.value)
|
|
97
109
|
else:
|
|
@@ -116,7 +128,6 @@ def new(
|
|
|
116
128
|
# List of files to render
|
|
117
129
|
files = {
|
|
118
130
|
"README.md": {"template": "app/README.md.tpl"},
|
|
119
|
-
"requirements.txt": {"template": f"app/requirements.{framework_str}.txt.tpl"},
|
|
120
131
|
"flower.toml": {"template": "app/flower.toml.tpl"},
|
|
121
132
|
"pyproject.toml": {"template": f"app/pyproject.{framework_str}.toml.tpl"},
|
|
122
133
|
f"{pnl}/__init__.py": {"template": "app/code/__init__.py.tpl"},
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "$project_name"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = ""
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "The Flower Authors", email = "hello@flower.ai" },
|
|
11
|
+
]
|
|
12
|
+
license = {text = "Apache License (2.0)"}
|
|
13
|
+
dependencies = [
|
|
14
|
+
"flwr[simulation]>=1.8.0,<2.0",
|
|
15
|
+
"numpy>=1.21.0",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[tool.hatch.build.targets.wheel]
|
|
19
|
+
packages = ["."]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "$project_name"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = ""
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "The Flower Authors", email = "hello@flower.ai" },
|
|
11
|
+
]
|
|
12
|
+
license = {text = "Apache License (2.0)"}
|
|
13
|
+
dependencies = [
|
|
14
|
+
"flwr[simulation]>=1.8.0,<2.0",
|
|
15
|
+
"flwr-datasets[vision]>=0.0.2,<1.0.0",
|
|
16
|
+
"torch==2.2.1",
|
|
17
|
+
"torchvision==0.17.1",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[tool.hatch.build.targets.wheel]
|
|
21
|
+
packages = ["."]
|
flwr_nightly-1.9.0.dev20240412/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "$project_name"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = ""
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "The Flower Authors", email = "hello@flower.ai" },
|
|
11
|
+
]
|
|
12
|
+
license = {text = "Apache License (2.0)"}
|
|
13
|
+
dependencies = [
|
|
14
|
+
"flwr[simulation]>=1.8.0,<2.0",
|
|
15
|
+
"flwr-datasets[vision]>=0.0.2,<1.0.0",
|
|
16
|
+
"tensorflow>=2.11.1",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[tool.hatch.build.targets.wheel]
|
|
20
|
+
packages = ["."]
|
|
@@ -14,18 +14,23 @@
|
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
"""Flower command line interface utils."""
|
|
16
16
|
|
|
17
|
-
from typing import List, cast
|
|
17
|
+
from typing import Callable, List, Optional, cast
|
|
18
18
|
|
|
19
19
|
import typer
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
def prompt_text(
|
|
22
|
+
def prompt_text(
|
|
23
|
+
text: str,
|
|
24
|
+
predicate: Callable[[str], bool] = lambda _: True,
|
|
25
|
+
default: Optional[str] = None,
|
|
26
|
+
) -> str:
|
|
23
27
|
"""Ask user to enter text input."""
|
|
24
28
|
while True:
|
|
25
29
|
result = typer.prompt(
|
|
26
|
-
typer.style(f"\n💬 {text}", fg=typer.colors.MAGENTA, bold=True)
|
|
30
|
+
typer.style(f"\n💬 {text}", fg=typer.colors.MAGENTA, bold=True),
|
|
31
|
+
default=default,
|
|
27
32
|
)
|
|
28
|
-
if len(result) > 0:
|
|
33
|
+
if predicate(result) and len(result) > 0:
|
|
29
34
|
break
|
|
30
35
|
print(typer.style("❌ Invalid entry", fg=typer.colors.RED, bold=True))
|
|
31
36
|
|
|
@@ -65,3 +70,54 @@ def prompt_options(text: str, options: List[str]) -> str:
|
|
|
65
70
|
|
|
66
71
|
result = options[int(index)]
|
|
67
72
|
return result
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def is_valid_project_name(name: str) -> bool:
|
|
76
|
+
"""Check if the given string is a valid Python module name.
|
|
77
|
+
|
|
78
|
+
A valid module name must start with a letter or an underscore, and can only contain
|
|
79
|
+
letters, digits, and underscores.
|
|
80
|
+
"""
|
|
81
|
+
if not name:
|
|
82
|
+
return False
|
|
83
|
+
|
|
84
|
+
# Check if the first character is a letter or underscore
|
|
85
|
+
if not (name[0].isalpha() or name[0] == "_"):
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
# Check if the rest of the characters are valid (letter, digit, or underscore)
|
|
89
|
+
for char in name[1:]:
|
|
90
|
+
if not (char.isalnum() or char == "_"):
|
|
91
|
+
return False
|
|
92
|
+
|
|
93
|
+
return True
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def sanitize_project_name(name: str) -> str:
|
|
97
|
+
"""Sanitize the given string to make it a valid Python module name.
|
|
98
|
+
|
|
99
|
+
This version replaces hyphens with underscores, removes any characters not allowed
|
|
100
|
+
in Python module names, makes the string lowercase, and ensures it starts with a
|
|
101
|
+
valid character.
|
|
102
|
+
"""
|
|
103
|
+
# Replace '-' with '_'
|
|
104
|
+
name_with_underscores = name.replace("-", "_").replace(" ", "_")
|
|
105
|
+
|
|
106
|
+
# Allowed characters in a module name: letters, digits, underscore
|
|
107
|
+
allowed_chars = set(
|
|
108
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
# Make the string lowercase
|
|
112
|
+
sanitized_name = name_with_underscores.lower()
|
|
113
|
+
|
|
114
|
+
# Remove any characters not allowed in Python module names
|
|
115
|
+
sanitized_name = "".join(c for c in sanitized_name if c in allowed_chars)
|
|
116
|
+
|
|
117
|
+
# Ensure the first character is a letter or underscore
|
|
118
|
+
if sanitized_name and (
|
|
119
|
+
sanitized_name[0].isdigit() or sanitized_name[0] not in allowed_chars
|
|
120
|
+
):
|
|
121
|
+
sanitized_name = "_" + sanitized_name
|
|
122
|
+
|
|
123
|
+
return sanitized_name
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/heartbeat.py
RENAMED
|
@@ -66,7 +66,9 @@ def start_ping_loop(
|
|
|
66
66
|
asynchronous ping operations. The loop can be terminated through the provided stop
|
|
67
67
|
event.
|
|
68
68
|
"""
|
|
69
|
-
thread = threading.Thread(
|
|
69
|
+
thread = threading.Thread(
|
|
70
|
+
target=_ping_loop, args=(ping_fn, stop_event), daemon=True
|
|
71
|
+
)
|
|
70
72
|
thread.start()
|
|
71
73
|
|
|
72
74
|
return thread
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: flwr/proto/driver.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 task_pb2 as flwr_dot_proto_dot_task__pb2
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66lwr/proto/driver.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\"7\n\x10\x43reateRunRequest\x12\x0e\n\x06\x66\x61\x62_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x02 \x01(\t\"#\n\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node\"@\n\x12PushTaskInsRequest\x12*\n\rtask_ins_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"\'\n\x13PushTaskInsResponse\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"F\n\x12PullTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"A\n\x13PullTaskResResponse\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes2\xc1\x02\n\x06\x44river\x12J\n\tCreateRun\x12\x1c.flwr.proto.CreateRunRequest\x1a\x1d.flwr.proto.CreateRunResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12P\n\x0bPushTaskIns\x12\x1e.flwr.proto.PushTaskInsRequest\x1a\x1f.flwr.proto.PushTaskInsResponse\"\x00\x12P\n\x0bPullTaskRes\x12\x1e.flwr.proto.PullTaskResRequest\x1a\x1f.flwr.proto.PullTaskResResponse\"\x00\x62\x06proto3')
|
|
20
|
+
|
|
21
|
+
_globals = globals()
|
|
22
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
23
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.driver_pb2', _globals)
|
|
24
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
25
|
+
DESCRIPTOR._options = None
|
|
26
|
+
_globals['_CREATERUNREQUEST']._serialized_start=85
|
|
27
|
+
_globals['_CREATERUNREQUEST']._serialized_end=140
|
|
28
|
+
_globals['_CREATERUNRESPONSE']._serialized_start=142
|
|
29
|
+
_globals['_CREATERUNRESPONSE']._serialized_end=177
|
|
30
|
+
_globals['_GETNODESREQUEST']._serialized_start=179
|
|
31
|
+
_globals['_GETNODESREQUEST']._serialized_end=212
|
|
32
|
+
_globals['_GETNODESRESPONSE']._serialized_start=214
|
|
33
|
+
_globals['_GETNODESRESPONSE']._serialized_end=265
|
|
34
|
+
_globals['_PUSHTASKINSREQUEST']._serialized_start=267
|
|
35
|
+
_globals['_PUSHTASKINSREQUEST']._serialized_end=331
|
|
36
|
+
_globals['_PUSHTASKINSRESPONSE']._serialized_start=333
|
|
37
|
+
_globals['_PUSHTASKINSRESPONSE']._serialized_end=372
|
|
38
|
+
_globals['_PULLTASKRESREQUEST']._serialized_start=374
|
|
39
|
+
_globals['_PULLTASKRESREQUEST']._serialized_end=444
|
|
40
|
+
_globals['_PULLTASKRESRESPONSE']._serialized_start=446
|
|
41
|
+
_globals['_PULLTASKRESRESPONSE']._serialized_end=511
|
|
42
|
+
_globals['_DRIVER']._serialized_start=514
|
|
43
|
+
_globals['_DRIVER']._serialized_end=835
|
|
44
|
+
# @@protoc_insertion_point(module_scope)
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/proto/driver_pb2.pyi
RENAMED
|
@@ -16,8 +16,16 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
16
16
|
class CreateRunRequest(google.protobuf.message.Message):
|
|
17
17
|
"""CreateRun"""
|
|
18
18
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
+
FAB_ID_FIELD_NUMBER: builtins.int
|
|
20
|
+
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
21
|
+
fab_id: typing.Text
|
|
22
|
+
fab_version: typing.Text
|
|
19
23
|
def __init__(self,
|
|
24
|
+
*,
|
|
25
|
+
fab_id: typing.Text = ...,
|
|
26
|
+
fab_version: typing.Text = ...,
|
|
20
27
|
) -> None: ...
|
|
28
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version"]) -> None: ...
|
|
21
29
|
global___CreateRunRequest = CreateRunRequest
|
|
22
30
|
|
|
23
31
|
class CreateRunResponse(google.protobuf.message.Message):
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
import threading
|
|
19
|
-
import time
|
|
20
19
|
from typing import Dict, Tuple
|
|
21
20
|
|
|
22
21
|
from ..client_manager import ClientManager
|
|
@@ -60,6 +59,7 @@ def start_update_client_manager_thread(
|
|
|
60
59
|
client_manager,
|
|
61
60
|
f_stop,
|
|
62
61
|
),
|
|
62
|
+
daemon=True,
|
|
63
63
|
)
|
|
64
64
|
thread.start()
|
|
65
65
|
|
|
@@ -99,4 +99,5 @@ def _update_client_manager(
|
|
|
99
99
|
raise RuntimeError("Could not register node.")
|
|
100
100
|
|
|
101
101
|
# Sleep for 3 seconds
|
|
102
|
-
|
|
102
|
+
if not f_stop.is_set():
|
|
103
|
+
f_stop.wait(3)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["poetry-core>=1.4.0"]
|
|
3
|
-
build-backend = "poetry.core.masonry.api"
|
|
4
|
-
|
|
5
|
-
[tool.poetry]
|
|
6
|
-
name = "$project_name"
|
|
7
|
-
version = "1.0.0"
|
|
8
|
-
description = ""
|
|
9
|
-
license = "Apache-2.0"
|
|
10
|
-
authors = [
|
|
11
|
-
"The Flower Authors <hello@flower.ai>",
|
|
12
|
-
]
|
|
13
|
-
readme = "README.md"
|
|
14
|
-
|
|
15
|
-
[tool.poetry.dependencies]
|
|
16
|
-
python = "^3.9"
|
|
17
|
-
# Mandatory dependencies
|
|
18
|
-
numpy = "^1.21.0"
|
|
19
|
-
flwr = { version = "^1.8.0", extras = ["simulation"] }
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["poetry-core>=1.4.0"]
|
|
3
|
-
build-backend = "poetry.core.masonry.api"
|
|
4
|
-
|
|
5
|
-
[tool.poetry]
|
|
6
|
-
name = "$project_name"
|
|
7
|
-
version = "1.0.0"
|
|
8
|
-
description = ""
|
|
9
|
-
license = "Apache-2.0"
|
|
10
|
-
authors = [
|
|
11
|
-
"The Flower Authors <hello@flower.ai>",
|
|
12
|
-
]
|
|
13
|
-
readme = "README.md"
|
|
14
|
-
|
|
15
|
-
[tool.poetry.dependencies]
|
|
16
|
-
python = "^3.9"
|
|
17
|
-
# Mandatory dependencies
|
|
18
|
-
flwr = { version = "^1.8.0", extras = ["simulation"] }
|
|
19
|
-
flwr-datasets = { version = "0.0.2", extras = ["vision"] }
|
|
20
|
-
torch = "2.2.1"
|
|
21
|
-
torchvision = "0.17.1"
|
flwr_nightly-1.9.0.dev20240409/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["poetry-core>=1.4.0"]
|
|
3
|
-
build-backend = "poetry.core.masonry.api"
|
|
4
|
-
|
|
5
|
-
[tool.poetry]
|
|
6
|
-
name = "$project_name"
|
|
7
|
-
version = "1.0.0"
|
|
8
|
-
description = ""
|
|
9
|
-
license = "Apache-2.0"
|
|
10
|
-
authors = [
|
|
11
|
-
"The Flower Authors <hello@flower.ai>",
|
|
12
|
-
]
|
|
13
|
-
readme = "README.md"
|
|
14
|
-
|
|
15
|
-
[tool.poetry.dependencies]
|
|
16
|
-
python = ">=3.9,<3.11"
|
|
17
|
-
# Mandatory dependencies
|
|
18
|
-
flwr = { version = "^1.8.0", extras = ["simulation"] }
|
|
19
|
-
flwr-datasets = { version = "^0.0.2", extras = ["vision"] }
|
|
20
|
-
tensorflow-cpu = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "platform_machine == \"x86_64\"" }
|
|
21
|
-
tensorflow-macos = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "sys_platform == \"darwin\" and platform_machine == \"arm64\"" }
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
-
# source: flwr/proto/driver.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 task_pb2 as flwr_dot_proto_dot_task__pb2
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66lwr/proto/driver.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\"\x12\n\x10\x43reateRunRequest\"#\n\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node\"@\n\x12PushTaskInsRequest\x12*\n\rtask_ins_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"\'\n\x13PushTaskInsResponse\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"F\n\x12PullTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"A\n\x13PullTaskResResponse\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes2\xc1\x02\n\x06\x44river\x12J\n\tCreateRun\x12\x1c.flwr.proto.CreateRunRequest\x1a\x1d.flwr.proto.CreateRunResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12P\n\x0bPushTaskIns\x12\x1e.flwr.proto.PushTaskInsRequest\x1a\x1f.flwr.proto.PushTaskInsResponse\"\x00\x12P\n\x0bPullTaskRes\x12\x1e.flwr.proto.PullTaskResRequest\x1a\x1f.flwr.proto.PullTaskResResponse\"\x00\x62\x06proto3')
|
|
20
|
-
|
|
21
|
-
_globals = globals()
|
|
22
|
-
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
23
|
-
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.driver_pb2', _globals)
|
|
24
|
-
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
25
|
-
DESCRIPTOR._options = None
|
|
26
|
-
_globals['_CREATERUNREQUEST']._serialized_start=85
|
|
27
|
-
_globals['_CREATERUNREQUEST']._serialized_end=103
|
|
28
|
-
_globals['_CREATERUNRESPONSE']._serialized_start=105
|
|
29
|
-
_globals['_CREATERUNRESPONSE']._serialized_end=140
|
|
30
|
-
_globals['_GETNODESREQUEST']._serialized_start=142
|
|
31
|
-
_globals['_GETNODESREQUEST']._serialized_end=175
|
|
32
|
-
_globals['_GETNODESRESPONSE']._serialized_start=177
|
|
33
|
-
_globals['_GETNODESRESPONSE']._serialized_end=228
|
|
34
|
-
_globals['_PUSHTASKINSREQUEST']._serialized_start=230
|
|
35
|
-
_globals['_PUSHTASKINSREQUEST']._serialized_end=294
|
|
36
|
-
_globals['_PUSHTASKINSRESPONSE']._serialized_start=296
|
|
37
|
-
_globals['_PUSHTASKINSRESPONSE']._serialized_end=335
|
|
38
|
-
_globals['_PULLTASKRESREQUEST']._serialized_start=337
|
|
39
|
-
_globals['_PULLTASKRESREQUEST']._serialized_end=407
|
|
40
|
-
_globals['_PULLTASKRESRESPONSE']._serialized_start=409
|
|
41
|
-
_globals['_PULLTASKRESRESPONSE']._serialized_end=474
|
|
42
|
-
_globals['_DRIVER']._serialized_start=477
|
|
43
|
-
_globals['_DRIVER']._serialized_end=798
|
|
44
|
-
# @@protoc_insertion_point(module_scope)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/example.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/flower_toml.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/new/__init__.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
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/run/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/cli/run/run.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/client.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/client_app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/mod/utils.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/node_state.py
RENAMED
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/numpy_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/client/typing.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/__init__.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/address.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/constant.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/context.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/grpc.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/logger.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/message.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/object_ref.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/parameter.py
RENAMED
|
File without changes
|
{flwr_nightly-1.9.0.dev20240409 → flwr_nightly-1.9.0.dev20240412}/src/py/flwr/common/pyproject.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|