flwr 1.23.0__py3-none-any.whl → 1.25.0__py3-none-any.whl
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.
- flwr/__init__.py +16 -5
- flwr/app/error.py +2 -2
- flwr/app/exception.py +3 -3
- flwr/cli/app.py +19 -0
- flwr/cli/{new/templates → app_cmd}/__init__.py +9 -1
- flwr/cli/app_cmd/publish.py +285 -0
- flwr/cli/app_cmd/review.py +262 -0
- flwr/cli/auth_plugin/auth_plugin.py +4 -5
- flwr/cli/auth_plugin/noop_auth_plugin.py +54 -11
- flwr/cli/auth_plugin/oidc_cli_plugin.py +32 -9
- flwr/cli/build.py +60 -18
- flwr/cli/cli_account_auth_interceptor.py +24 -7
- flwr/cli/config_utils.py +101 -13
- flwr/cli/{new/templates/app/code/flwr_tune → federation}/__init__.py +10 -1
- flwr/cli/federation/ls.py +140 -0
- flwr/cli/federation/show.py +318 -0
- flwr/cli/install.py +91 -13
- flwr/cli/log.py +52 -9
- flwr/cli/login/login.py +7 -4
- flwr/cli/ls.py +211 -130
- flwr/cli/new/new.py +123 -331
- flwr/cli/pull.py +10 -5
- flwr/cli/run/run.py +71 -29
- flwr/cli/run_utils.py +148 -0
- flwr/cli/stop.py +26 -8
- flwr/cli/supernode/ls.py +25 -12
- flwr/cli/supernode/register.py +9 -4
- flwr/cli/supernode/unregister.py +5 -3
- flwr/cli/utils.py +239 -16
- flwr/client/__init__.py +1 -1
- flwr/client/dpfedavg_numpy_client.py +4 -1
- flwr/client/grpc_adapter_client/connection.py +8 -9
- flwr/client/grpc_rere_client/connection.py +16 -14
- flwr/client/grpc_rere_client/grpc_adapter.py +6 -2
- flwr/client/grpc_rere_client/node_auth_client_interceptor.py +2 -1
- flwr/client/message_handler/message_handler.py +2 -2
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +3 -3
- flwr/client/numpy_client.py +1 -1
- flwr/client/rest_client/connection.py +18 -18
- flwr/client/run_info_store.py +4 -5
- flwr/client/typing.py +1 -1
- flwr/clientapp/client_app.py +9 -10
- flwr/clientapp/mod/centraldp_mods.py +16 -17
- flwr/clientapp/mod/localdp_mod.py +8 -9
- flwr/clientapp/typing.py +1 -1
- flwr/clientapp/utils.py +3 -3
- flwr/common/address.py +1 -2
- flwr/common/args.py +3 -4
- flwr/common/config.py +13 -16
- flwr/common/constant.py +5 -2
- flwr/common/differential_privacy.py +3 -4
- flwr/common/event_log_plugin/event_log_plugin.py +3 -4
- flwr/common/exit/exit.py +15 -2
- flwr/common/exit/exit_code.py +19 -0
- flwr/common/exit/exit_handler.py +6 -2
- flwr/common/exit/signal_handler.py +5 -5
- flwr/common/grpc.py +6 -6
- flwr/common/inflatable_protobuf_utils.py +1 -1
- flwr/common/inflatable_utils.py +38 -21
- flwr/common/logger.py +19 -19
- flwr/common/message.py +4 -4
- flwr/common/object_ref.py +7 -7
- flwr/common/record/array.py +3 -3
- flwr/common/record/arrayrecord.py +18 -30
- flwr/common/record/configrecord.py +3 -3
- flwr/common/record/recorddict.py +5 -5
- flwr/common/record/typeddict.py +9 -2
- flwr/common/recorddict_compat.py +7 -10
- flwr/common/retry_invoker.py +20 -20
- flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
- flwr/common/serde.py +11 -4
- flwr/common/serde_utils.py +2 -2
- flwr/common/telemetry.py +9 -5
- flwr/common/typing.py +58 -37
- flwr/compat/client/app.py +38 -37
- flwr/compat/client/grpc_client/connection.py +11 -11
- flwr/compat/server/app.py +5 -6
- flwr/proto/appio_pb2.py +13 -3
- flwr/proto/appio_pb2.pyi +134 -65
- flwr/proto/appio_pb2_grpc.py +20 -0
- flwr/proto/appio_pb2_grpc.pyi +27 -0
- flwr/proto/clientappio_pb2.py +17 -7
- flwr/proto/clientappio_pb2.pyi +15 -0
- flwr/proto/clientappio_pb2_grpc.py +206 -40
- flwr/proto/clientappio_pb2_grpc.pyi +168 -53
- flwr/proto/control_pb2.py +71 -52
- flwr/proto/control_pb2.pyi +277 -111
- flwr/proto/control_pb2_grpc.py +249 -40
- flwr/proto/control_pb2_grpc.pyi +185 -52
- flwr/proto/error_pb2.py +13 -3
- flwr/proto/error_pb2.pyi +24 -6
- flwr/proto/error_pb2_grpc.py +20 -0
- flwr/proto/error_pb2_grpc.pyi +27 -0
- flwr/proto/fab_pb2.py +14 -4
- flwr/proto/fab_pb2.pyi +59 -31
- flwr/proto/fab_pb2_grpc.py +20 -0
- flwr/proto/fab_pb2_grpc.pyi +27 -0
- flwr/proto/federation_pb2.py +38 -0
- flwr/proto/federation_pb2.pyi +56 -0
- flwr/proto/federation_pb2_grpc.py +24 -0
- flwr/proto/federation_pb2_grpc.pyi +31 -0
- flwr/proto/fleet_pb2.py +24 -14
- flwr/proto/fleet_pb2.pyi +141 -61
- flwr/proto/fleet_pb2_grpc.py +189 -48
- flwr/proto/fleet_pb2_grpc.pyi +175 -61
- flwr/proto/grpcadapter_pb2.py +14 -4
- flwr/proto/grpcadapter_pb2.pyi +38 -16
- flwr/proto/grpcadapter_pb2_grpc.py +35 -4
- flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
- flwr/proto/heartbeat_pb2.py +17 -7
- flwr/proto/heartbeat_pb2.pyi +51 -22
- flwr/proto/heartbeat_pb2_grpc.py +20 -0
- flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
- flwr/proto/log_pb2.py +13 -3
- flwr/proto/log_pb2.pyi +34 -11
- flwr/proto/log_pb2_grpc.py +20 -0
- flwr/proto/log_pb2_grpc.pyi +27 -0
- flwr/proto/message_pb2.py +15 -5
- flwr/proto/message_pb2.pyi +154 -86
- flwr/proto/message_pb2_grpc.py +20 -0
- flwr/proto/message_pb2_grpc.pyi +27 -0
- flwr/proto/node_pb2.py +15 -5
- flwr/proto/node_pb2.pyi +50 -25
- flwr/proto/node_pb2_grpc.py +20 -0
- flwr/proto/node_pb2_grpc.pyi +27 -0
- flwr/proto/recorddict_pb2.py +13 -3
- flwr/proto/recorddict_pb2.pyi +184 -107
- flwr/proto/recorddict_pb2_grpc.py +20 -0
- flwr/proto/recorddict_pb2_grpc.pyi +27 -0
- flwr/proto/run_pb2.py +40 -31
- flwr/proto/run_pb2.pyi +158 -84
- flwr/proto/run_pb2_grpc.py +20 -0
- flwr/proto/run_pb2_grpc.pyi +27 -0
- flwr/proto/serverappio_pb2.py +13 -3
- flwr/proto/serverappio_pb2.pyi +32 -8
- flwr/proto/serverappio_pb2_grpc.py +246 -65
- flwr/proto/serverappio_pb2_grpc.pyi +221 -85
- flwr/proto/simulationio_pb2.py +16 -8
- flwr/proto/simulationio_pb2.pyi +15 -0
- flwr/proto/simulationio_pb2_grpc.py +162 -41
- flwr/proto/simulationio_pb2_grpc.pyi +149 -55
- flwr/proto/transport_pb2.py +20 -10
- flwr/proto/transport_pb2.pyi +249 -160
- flwr/proto/transport_pb2_grpc.py +35 -4
- flwr/proto/transport_pb2_grpc.pyi +38 -8
- flwr/server/app.py +39 -17
- flwr/server/client_manager.py +4 -5
- flwr/server/client_proxy.py +10 -11
- flwr/server/compat/app.py +4 -5
- flwr/server/compat/app_utils.py +2 -1
- flwr/server/compat/grid_client_proxy.py +10 -12
- flwr/server/compat/legacy_context.py +3 -4
- flwr/server/fleet_event_log_interceptor.py +2 -1
- flwr/server/grid/grid.py +2 -3
- flwr/server/grid/grpc_grid.py +10 -8
- flwr/server/grid/inmemory_grid.py +4 -4
- flwr/server/run_serverapp.py +2 -3
- flwr/server/server.py +34 -39
- flwr/server/server_app.py +7 -8
- flwr/server/server_config.py +1 -2
- flwr/server/serverapp/app.py +34 -28
- flwr/server/serverapp_components.py +4 -5
- flwr/server/strategy/aggregate.py +9 -8
- flwr/server/strategy/bulyan.py +13 -11
- flwr/server/strategy/dp_adaptive_clipping.py +16 -20
- flwr/server/strategy/dp_fixed_clipping.py +12 -17
- flwr/server/strategy/dpfedavg_adaptive.py +3 -4
- flwr/server/strategy/dpfedavg_fixed.py +6 -10
- flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
- flwr/server/strategy/fedadagrad.py +18 -14
- flwr/server/strategy/fedadam.py +16 -14
- flwr/server/strategy/fedavg.py +16 -17
- flwr/server/strategy/fedavg_android.py +15 -15
- flwr/server/strategy/fedavgm.py +21 -18
- flwr/server/strategy/fedmedian.py +2 -3
- flwr/server/strategy/fedopt.py +11 -10
- flwr/server/strategy/fedprox.py +10 -9
- flwr/server/strategy/fedtrimmedavg.py +12 -11
- flwr/server/strategy/fedxgb_bagging.py +13 -11
- flwr/server/strategy/fedxgb_cyclic.py +6 -6
- flwr/server/strategy/fedxgb_nn_avg.py +4 -4
- flwr/server/strategy/fedyogi.py +16 -14
- flwr/server/strategy/krum.py +12 -11
- flwr/server/strategy/qfedavg.py +16 -15
- flwr/server/strategy/strategy.py +6 -9
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +2 -1
- flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
- flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
- flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +4 -4
- flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +3 -2
- flwr/server/superlink/fleet/message_handler/message_handler.py +75 -30
- flwr/server/superlink/fleet/rest_rere/rest_api.py +2 -2
- flwr/server/superlink/fleet/vce/backend/backend.py +1 -1
- flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -5
- flwr/server/superlink/fleet/vce/vce_api.py +15 -9
- flwr/server/superlink/linkstate/in_memory_linkstate.py +148 -149
- flwr/server/superlink/linkstate/linkstate.py +91 -43
- flwr/server/superlink/linkstate/linkstate_factory.py +22 -5
- flwr/server/superlink/linkstate/sqlite_linkstate.py +502 -436
- flwr/server/superlink/linkstate/utils.py +6 -6
- flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
- flwr/server/superlink/serverappio/serverappio_servicer.py +26 -21
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
- flwr/server/superlink/simulation/simulationio_servicer.py +18 -13
- flwr/server/superlink/utils.py +4 -6
- flwr/server/typing.py +1 -1
- flwr/server/utils/tensorboard.py +15 -8
- flwr/server/workflow/default_workflows.py +5 -5
- flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +8 -8
- flwr/serverapp/strategy/bulyan.py +16 -15
- flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
- flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
- flwr/serverapp/strategy/fedadagrad.py +10 -11
- flwr/serverapp/strategy/fedadam.py +10 -11
- flwr/serverapp/strategy/fedavg.py +9 -10
- flwr/serverapp/strategy/fedavgm.py +17 -16
- flwr/serverapp/strategy/fedmedian.py +2 -2
- flwr/serverapp/strategy/fedopt.py +10 -11
- flwr/serverapp/strategy/fedprox.py +7 -8
- flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
- flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
- flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
- flwr/serverapp/strategy/fedyogi.py +9 -11
- flwr/serverapp/strategy/krum.py +7 -7
- flwr/serverapp/strategy/multikrum.py +9 -9
- flwr/serverapp/strategy/qfedavg.py +17 -16
- flwr/serverapp/strategy/strategy.py +6 -9
- flwr/serverapp/strategy/strategy_utils.py +7 -8
- flwr/simulation/app.py +46 -42
- flwr/simulation/legacy_app.py +12 -12
- flwr/simulation/ray_transport/ray_actor.py +10 -11
- flwr/simulation/ray_transport/ray_client_proxy.py +11 -12
- flwr/simulation/run_simulation.py +43 -43
- flwr/simulation/simulationio_connection.py +4 -4
- flwr/supercore/cli/flower_superexec.py +3 -4
- flwr/supercore/constant.py +34 -1
- flwr/supercore/corestate/corestate.py +24 -3
- flwr/supercore/corestate/in_memory_corestate.py +138 -0
- flwr/supercore/corestate/sqlite_corestate.py +157 -0
- flwr/supercore/ffs/disk_ffs.py +1 -2
- flwr/supercore/ffs/ffs.py +1 -2
- flwr/supercore/ffs/ffs_factory.py +1 -2
- flwr/{common → supercore}/heartbeat.py +20 -25
- flwr/supercore/object_store/in_memory_object_store.py +1 -2
- flwr/supercore/object_store/object_store.py +1 -2
- flwr/supercore/object_store/object_store_factory.py +1 -2
- flwr/supercore/object_store/sqlite_object_store.py +8 -7
- flwr/supercore/primitives/asymmetric.py +1 -1
- flwr/supercore/primitives/asymmetric_ed25519.py +11 -1
- flwr/supercore/sqlite_mixin.py +37 -34
- flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
- flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
- flwr/supercore/superexec/run_superexec.py +9 -13
- flwr/supercore/utils.py +190 -0
- flwr/superlink/artifact_provider/artifact_provider.py +1 -2
- flwr/superlink/auth_plugin/auth_plugin.py +6 -9
- flwr/superlink/auth_plugin/noop_auth_plugin.py +6 -9
- flwr/{cli/new/templates/app → superlink/federation}/__init__.py +10 -1
- flwr/superlink/federation/federation_manager.py +64 -0
- flwr/superlink/federation/noop_federation_manager.py +71 -0
- flwr/superlink/servicer/control/control_account_auth_interceptor.py +22 -13
- flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
- flwr/superlink/servicer/control/control_grpc.py +7 -6
- flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
- flwr/superlink/servicer/control/control_servicer.py +190 -23
- flwr/supernode/cli/flower_supernode.py +58 -3
- flwr/supernode/nodestate/in_memory_nodestate.py +121 -49
- flwr/supernode/nodestate/nodestate.py +52 -8
- flwr/supernode/nodestate/nodestate_factory.py +7 -4
- flwr/supernode/runtime/run_clientapp.py +41 -22
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +46 -10
- flwr/supernode/start_client_internal.py +165 -46
- {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/METADATA +9 -11
- flwr-1.25.0.dist-info/RECORD +393 -0
- flwr/cli/new/templates/app/.gitignore.tpl +0 -163
- flwr/cli/new/templates/app/LICENSE.tpl +0 -202
- flwr/cli/new/templates/app/README.baseline.md.tpl +0 -127
- flwr/cli/new/templates/app/README.flowertune.md.tpl +0 -68
- flwr/cli/new/templates/app/README.md.tpl +0 -37
- flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +0 -1
- flwr/cli/new/templates/app/code/__init__.py +0 -15
- flwr/cli/new/templates/app/code/__init__.py.tpl +0 -1
- flwr/cli/new/templates/app/code/__init__.pytorch_legacy_api.py.tpl +0 -1
- flwr/cli/new/templates/app/code/client.baseline.py.tpl +0 -75
- flwr/cli/new/templates/app/code/client.huggingface.py.tpl +0 -93
- flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -71
- flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -102
- flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -46
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -80
- flwr/cli/new/templates/app/code/client.pytorch_legacy_api.py.tpl +0 -55
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -108
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -82
- flwr/cli/new/templates/app/code/client.xgboost.py.tpl +0 -110
- flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +0 -36
- flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl +0 -92
- flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +0 -87
- flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -56
- flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +0 -73
- flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +0 -78
- flwr/cli/new/templates/app/code/model.baseline.py.tpl +0 -66
- flwr/cli/new/templates/app/code/server.baseline.py.tpl +0 -43
- flwr/cli/new/templates/app/code/server.huggingface.py.tpl +0 -42
- flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -39
- flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -41
- flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -38
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -41
- flwr/cli/new/templates/app/code/server.pytorch_legacy_api.py.tpl +0 -31
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -44
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -38
- flwr/cli/new/templates/app/code/server.xgboost.py.tpl +0 -56
- flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +0 -1
- flwr/cli/new/templates/app/code/task.huggingface.py.tpl +0 -98
- flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -57
- flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -102
- flwr/cli/new/templates/app/code/task.numpy.py.tpl +0 -7
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -98
- flwr/cli/new/templates/app/code/task.pytorch_legacy_api.py.tpl +0 -111
- flwr/cli/new/templates/app/code/task.sklearn.py.tpl +0 -67
- flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -52
- flwr/cli/new/templates/app/code/task.xgboost.py.tpl +0 -67
- flwr/cli/new/templates/app/code/utils.baseline.py.tpl +0 -1
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +0 -146
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +0 -80
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +0 -65
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -52
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -56
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -49
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -53
- flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +0 -53
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -52
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -53
- flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +0 -61
- flwr/supercore/object_store/utils.py +0 -43
- flwr-1.23.0.dist-info/RECORD +0 -439
- {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/WHEEL +0 -0
- {flwr-1.23.0.dist-info → flwr-1.25.0.dist-info}/entry_points.txt +0 -0
flwr/proto/fab_pb2_grpc.py
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
|
+
import warnings
|
|
4
5
|
|
|
6
|
+
|
|
7
|
+
GRPC_GENERATED_VERSION = '1.70.0'
|
|
8
|
+
GRPC_VERSION = grpc.__version__
|
|
9
|
+
_version_not_supported = False
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from grpc._utilities import first_version_is_lower
|
|
13
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
14
|
+
except ImportError:
|
|
15
|
+
_version_not_supported = True
|
|
16
|
+
|
|
17
|
+
if _version_not_supported:
|
|
18
|
+
raise RuntimeError(
|
|
19
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
20
|
+
+ f' but the generated code in flwr/proto/fab_pb2_grpc.py depends on'
|
|
21
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
22
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
23
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
24
|
+
)
|
flwr/proto/fab_pb2_grpc.pyi
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
"""
|
|
2
2
|
@generated by mypy-protobuf. Do not edit manually!
|
|
3
3
|
isort:skip_file
|
|
4
|
+
Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
==============================================================================
|
|
4
18
|
"""
|
|
19
|
+
|
|
20
|
+
import abc
|
|
21
|
+
import collections.abc
|
|
22
|
+
import grpc
|
|
23
|
+
import grpc.aio
|
|
24
|
+
import typing
|
|
25
|
+
|
|
26
|
+
_T = typing.TypeVar("_T")
|
|
27
|
+
|
|
28
|
+
class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
|
|
29
|
+
|
|
30
|
+
class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
|
|
31
|
+
...
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: flwr/proto/federation.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.0
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
0,
|
|
17
|
+
'',
|
|
18
|
+
'flwr/proto/federation.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
26
|
+
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/federation.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x15\x66lwr/proto/node.proto\"s\n\nFederation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bmember_aids\x18\x02 \x03(\t\x12#\n\x05nodes\x18\x03 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x1d\n\x04runs\x18\x04 \x03(\x0b\x32\x0f.flwr.proto.Runb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.federation_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
DESCRIPTOR._loaded_options = None
|
|
36
|
+
_globals['_FEDERATION']._serialized_start=88
|
|
37
|
+
_globals['_FEDERATION']._serialized_end=203
|
|
38
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
==============================================================================
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import builtins
|
|
21
|
+
import collections.abc
|
|
22
|
+
import flwr.proto.node_pb2
|
|
23
|
+
import flwr.proto.run_pb2
|
|
24
|
+
import google.protobuf.descriptor
|
|
25
|
+
import google.protobuf.internal.containers
|
|
26
|
+
import google.protobuf.message
|
|
27
|
+
import typing
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
30
|
+
|
|
31
|
+
@typing.final
|
|
32
|
+
class Federation(google.protobuf.message.Message):
|
|
33
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
34
|
+
|
|
35
|
+
NAME_FIELD_NUMBER: builtins.int
|
|
36
|
+
MEMBER_AIDS_FIELD_NUMBER: builtins.int
|
|
37
|
+
NODES_FIELD_NUMBER: builtins.int
|
|
38
|
+
RUNS_FIELD_NUMBER: builtins.int
|
|
39
|
+
name: builtins.str
|
|
40
|
+
@property
|
|
41
|
+
def member_aids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
42
|
+
@property
|
|
43
|
+
def nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
|
|
44
|
+
@property
|
|
45
|
+
def runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.run_pb2.Run]: ...
|
|
46
|
+
def __init__(
|
|
47
|
+
self,
|
|
48
|
+
*,
|
|
49
|
+
name: builtins.str = ...,
|
|
50
|
+
member_aids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
51
|
+
nodes: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
|
|
52
|
+
runs: collections.abc.Iterable[flwr.proto.run_pb2.Run] | None = ...,
|
|
53
|
+
) -> None: ...
|
|
54
|
+
def ClearField(self, field_name: typing.Literal["member_aids", b"member_aids", "name", b"name", "nodes", b"nodes", "runs", b"runs"]) -> None: ...
|
|
55
|
+
|
|
56
|
+
global___Federation = Federation
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
GRPC_GENERATED_VERSION = '1.70.0'
|
|
8
|
+
GRPC_VERSION = grpc.__version__
|
|
9
|
+
_version_not_supported = False
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from grpc._utilities import first_version_is_lower
|
|
13
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
14
|
+
except ImportError:
|
|
15
|
+
_version_not_supported = True
|
|
16
|
+
|
|
17
|
+
if _version_not_supported:
|
|
18
|
+
raise RuntimeError(
|
|
19
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
20
|
+
+ f' but the generated code in flwr/proto/federation_pb2_grpc.py depends on'
|
|
21
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
22
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
23
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
24
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
==============================================================================
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import abc
|
|
21
|
+
import collections.abc
|
|
22
|
+
import grpc
|
|
23
|
+
import grpc.aio
|
|
24
|
+
import typing
|
|
25
|
+
|
|
26
|
+
_T = typing.TypeVar("_T")
|
|
27
|
+
|
|
28
|
+
class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
|
|
29
|
+
|
|
30
|
+
class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
|
|
31
|
+
...
|
flwr/proto/fleet_pb2.py
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
4
|
# source: flwr/proto/fleet.proto
|
|
4
|
-
# Protobuf Python Version:
|
|
5
|
+
# Protobuf Python Version: 5.29.0
|
|
5
6
|
"""Generated protocol buffer code."""
|
|
6
7
|
from google.protobuf import descriptor as _descriptor
|
|
7
8
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
8
10
|
from google.protobuf import symbol_database as _symbol_database
|
|
9
11
|
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
0,
|
|
17
|
+
'',
|
|
18
|
+
'flwr/proto/fleet.proto'
|
|
19
|
+
)
|
|
10
20
|
# @@protoc_insertion_point(imports)
|
|
11
21
|
|
|
12
22
|
_sym_db = _symbol_database.Default()
|
|
@@ -19,14 +29,14 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
|
19
29
|
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
|
20
30
|
|
|
21
31
|
|
|
22
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\".\n\x18RegisterNodeFleetRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\",\n\x19RegisterNodeFleetResponse\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"E\n\x13\x41\x63tivateNodeRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x1a\n\x12heartbeat_interval\x18\x02 \x01(\x01\"\'\n\x14\x41\x63tivateNodeResponse\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"(\n\x15\x44\x65\x61\x63tivateNodeRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x18\n\x16\x44\x65\x61\x63tivateNodeResponse\"-\n\x1aUnregisterNodeFleetRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x1d\n\x1bUnregisterNodeFleetResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\xa2\x01\n\x14PullMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\
|
|
32
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\".\n\x18RegisterNodeFleetRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\",\n\x19RegisterNodeFleetResponse\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"E\n\x13\x41\x63tivateNodeRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x1a\n\x12heartbeat_interval\x18\x02 \x01(\x01\"\'\n\x14\x41\x63tivateNodeResponse\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"(\n\x15\x44\x65\x61\x63tivateNodeRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x18\n\x16\x44\x65\x61\x63tivateNodeResponse\"-\n\x1aUnregisterNodeFleetRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\x1d\n\x1bUnregisterNodeFleetResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\xa2\x01\n\x14PullMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xb7\x01\n\x13PushMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\x12\x1e\n\x16\x63lientapp_runtime_list\x18\x04 \x03(\x01\"\xc9\x01\n\x14PushMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12>\n\x07results\x18\x02 \x03(\x0b\x32-.flwr.proto.PushMessagesResponse.ResultsEntry\x12\x17\n\x0fobjects_to_push\x18\x03 \x03(\t\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\xa0\x08\n\x05\x46leet\x12]\n\x0cRegisterNode\x12$.flwr.proto.RegisterNodeFleetRequest\x1a%.flwr.proto.RegisterNodeFleetResponse\"\x00\x12S\n\x0c\x41\x63tivateNode\x12\x1f.flwr.proto.ActivateNodeRequest\x1a .flwr.proto.ActivateNodeResponse\"\x00\x12Y\n\x0e\x44\x65\x61\x63tivateNode\x12!.flwr.proto.DeactivateNodeRequest\x1a\".flwr.proto.DeactivateNodeResponse\"\x00\x12\x63\n\x0eUnregisterNode\x12&.flwr.proto.UnregisterNodeFleetRequest\x1a\'.flwr.proto.UnregisterNodeFleetResponse\"\x00\x12\x62\n\x11SendNodeHeartbeat\x12$.flwr.proto.SendNodeHeartbeatRequest\x1a%.flwr.proto.SendNodeHeartbeatResponse\"\x00\x12S\n\x0cPullMessages\x12\x1f.flwr.proto.PullMessagesRequest\x1a .flwr.proto.PullMessagesResponse\"\x00\x12S\n\x0cPushMessages\x12\x1f.flwr.proto.PushMessagesRequest\x1a .flwr.proto.PushMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
|
|
23
33
|
|
|
24
34
|
_globals = globals()
|
|
25
35
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
26
36
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.fleet_pb2', _globals)
|
|
27
|
-
if _descriptor._USE_C_DESCRIPTORS
|
|
28
|
-
DESCRIPTOR.
|
|
29
|
-
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY'].
|
|
37
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
38
|
+
DESCRIPTOR._loaded_options = None
|
|
39
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._loaded_options = None
|
|
30
40
|
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
|
31
41
|
_globals['_REGISTERNODEFLEETREQUEST']._serialized_start=159
|
|
32
42
|
_globals['_REGISTERNODEFLEETREQUEST']._serialized_end=205
|
|
@@ -49,13 +59,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
49
59
|
_globals['_PULLMESSAGESRESPONSE']._serialized_start=588
|
|
50
60
|
_globals['_PULLMESSAGESRESPONSE']._serialized_end=750
|
|
51
61
|
_globals['_PUSHMESSAGESREQUEST']._serialized_start=753
|
|
52
|
-
_globals['_PUSHMESSAGESREQUEST']._serialized_end=
|
|
53
|
-
_globals['_PUSHMESSAGESRESPONSE']._serialized_start=
|
|
54
|
-
_globals['_PUSHMESSAGESRESPONSE']._serialized_end=
|
|
55
|
-
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=
|
|
56
|
-
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=
|
|
57
|
-
_globals['_RECONNECT']._serialized_start=
|
|
58
|
-
_globals['_RECONNECT']._serialized_end=
|
|
59
|
-
_globals['_FLEET']._serialized_start=
|
|
60
|
-
_globals['_FLEET']._serialized_end=
|
|
62
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_end=936
|
|
63
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_start=939
|
|
64
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_end=1140
|
|
65
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=1094
|
|
66
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=1140
|
|
67
|
+
_globals['_RECONNECT']._serialized_start=1142
|
|
68
|
+
_globals['_RECONNECT']._serialized_end=1172
|
|
69
|
+
_globals['_FLEET']._serialized_start=1175
|
|
70
|
+
_globals['_FLEET']._serialized_end=2231
|
|
61
71
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/fleet_pb2.pyi
CHANGED
|
@@ -1,123 +1,181 @@
|
|
|
1
1
|
"""
|
|
2
2
|
@generated by mypy-protobuf. Do not edit manually!
|
|
3
3
|
isort:skip_file
|
|
4
|
+
Copyright 2022 Flower Labs GmbH. All Rights Reserved.
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
==============================================================================
|
|
4
18
|
"""
|
|
19
|
+
|
|
5
20
|
import builtins
|
|
21
|
+
import collections.abc
|
|
6
22
|
import flwr.proto.message_pb2
|
|
7
23
|
import flwr.proto.node_pb2
|
|
8
24
|
import google.protobuf.descriptor
|
|
9
25
|
import google.protobuf.internal.containers
|
|
10
26
|
import google.protobuf.message
|
|
11
27
|
import typing
|
|
12
|
-
import typing_extensions
|
|
13
28
|
|
|
14
29
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
15
30
|
|
|
31
|
+
@typing.final
|
|
16
32
|
class RegisterNodeFleetRequest(google.protobuf.message.Message):
|
|
17
33
|
"""RegisterNode messages (add prefix to avoid name clash)"""
|
|
34
|
+
|
|
18
35
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
36
|
+
|
|
19
37
|
PUBLIC_KEY_FIELD_NUMBER: builtins.int
|
|
20
38
|
public_key: builtins.bytes
|
|
21
|
-
def __init__(
|
|
39
|
+
def __init__(
|
|
40
|
+
self,
|
|
22
41
|
*,
|
|
23
42
|
public_key: builtins.bytes = ...,
|
|
24
|
-
|
|
25
|
-
def ClearField(self, field_name:
|
|
43
|
+
) -> None: ...
|
|
44
|
+
def ClearField(self, field_name: typing.Literal["public_key", b"public_key"]) -> None: ...
|
|
45
|
+
|
|
26
46
|
global___RegisterNodeFleetRequest = RegisterNodeFleetRequest
|
|
27
47
|
|
|
48
|
+
@typing.final
|
|
28
49
|
class RegisterNodeFleetResponse(google.protobuf.message.Message):
|
|
29
50
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
51
|
+
|
|
30
52
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
31
53
|
node_id: builtins.int
|
|
32
|
-
def __init__(
|
|
54
|
+
def __init__(
|
|
55
|
+
self,
|
|
33
56
|
*,
|
|
34
57
|
node_id: builtins.int = ...,
|
|
35
|
-
|
|
36
|
-
def ClearField(self, field_name:
|
|
58
|
+
) -> None: ...
|
|
59
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
60
|
+
|
|
37
61
|
global___RegisterNodeFleetResponse = RegisterNodeFleetResponse
|
|
38
62
|
|
|
63
|
+
@typing.final
|
|
39
64
|
class ActivateNodeRequest(google.protobuf.message.Message):
|
|
40
65
|
"""ActivateNode messages"""
|
|
66
|
+
|
|
41
67
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
68
|
+
|
|
42
69
|
PUBLIC_KEY_FIELD_NUMBER: builtins.int
|
|
43
70
|
HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
|
|
44
71
|
public_key: builtins.bytes
|
|
45
72
|
heartbeat_interval: builtins.float
|
|
46
|
-
def __init__(
|
|
73
|
+
def __init__(
|
|
74
|
+
self,
|
|
47
75
|
*,
|
|
48
76
|
public_key: builtins.bytes = ...,
|
|
49
77
|
heartbeat_interval: builtins.float = ...,
|
|
50
|
-
|
|
51
|
-
def ClearField(self, field_name:
|
|
78
|
+
) -> None: ...
|
|
79
|
+
def ClearField(self, field_name: typing.Literal["heartbeat_interval", b"heartbeat_interval", "public_key", b"public_key"]) -> None: ...
|
|
80
|
+
|
|
52
81
|
global___ActivateNodeRequest = ActivateNodeRequest
|
|
53
82
|
|
|
83
|
+
@typing.final
|
|
54
84
|
class ActivateNodeResponse(google.protobuf.message.Message):
|
|
55
85
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
86
|
+
|
|
56
87
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
57
88
|
node_id: builtins.int
|
|
58
|
-
def __init__(
|
|
89
|
+
def __init__(
|
|
90
|
+
self,
|
|
59
91
|
*,
|
|
60
92
|
node_id: builtins.int = ...,
|
|
61
|
-
|
|
62
|
-
def ClearField(self, field_name:
|
|
93
|
+
) -> None: ...
|
|
94
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
95
|
+
|
|
63
96
|
global___ActivateNodeResponse = ActivateNodeResponse
|
|
64
97
|
|
|
98
|
+
@typing.final
|
|
65
99
|
class DeactivateNodeRequest(google.protobuf.message.Message):
|
|
66
100
|
"""DeactivateNode messages"""
|
|
101
|
+
|
|
67
102
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
103
|
+
|
|
68
104
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
69
105
|
node_id: builtins.int
|
|
70
|
-
def __init__(
|
|
106
|
+
def __init__(
|
|
107
|
+
self,
|
|
71
108
|
*,
|
|
72
109
|
node_id: builtins.int = ...,
|
|
73
|
-
|
|
74
|
-
def ClearField(self, field_name:
|
|
110
|
+
) -> None: ...
|
|
111
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
112
|
+
|
|
75
113
|
global___DeactivateNodeRequest = DeactivateNodeRequest
|
|
76
114
|
|
|
115
|
+
@typing.final
|
|
77
116
|
class DeactivateNodeResponse(google.protobuf.message.Message):
|
|
78
117
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
79
|
-
|
|
80
|
-
|
|
118
|
+
|
|
119
|
+
def __init__(
|
|
120
|
+
self,
|
|
121
|
+
) -> None: ...
|
|
122
|
+
|
|
81
123
|
global___DeactivateNodeResponse = DeactivateNodeResponse
|
|
82
124
|
|
|
125
|
+
@typing.final
|
|
83
126
|
class UnregisterNodeFleetRequest(google.protobuf.message.Message):
|
|
84
127
|
"""UnregisterNode messages (add prefix to avoid name clash)"""
|
|
128
|
+
|
|
85
129
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
130
|
+
|
|
86
131
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
87
132
|
node_id: builtins.int
|
|
88
|
-
def __init__(
|
|
133
|
+
def __init__(
|
|
134
|
+
self,
|
|
89
135
|
*,
|
|
90
136
|
node_id: builtins.int = ...,
|
|
91
|
-
|
|
92
|
-
def ClearField(self, field_name:
|
|
137
|
+
) -> None: ...
|
|
138
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
139
|
+
|
|
93
140
|
global___UnregisterNodeFleetRequest = UnregisterNodeFleetRequest
|
|
94
141
|
|
|
142
|
+
@typing.final
|
|
95
143
|
class UnregisterNodeFleetResponse(google.protobuf.message.Message):
|
|
96
144
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
97
|
-
|
|
98
|
-
|
|
145
|
+
|
|
146
|
+
def __init__(
|
|
147
|
+
self,
|
|
148
|
+
) -> None: ...
|
|
149
|
+
|
|
99
150
|
global___UnregisterNodeFleetResponse = UnregisterNodeFleetResponse
|
|
100
151
|
|
|
152
|
+
@typing.final
|
|
101
153
|
class PullMessagesRequest(google.protobuf.message.Message):
|
|
102
154
|
"""PullMessages messages"""
|
|
155
|
+
|
|
103
156
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
157
|
+
|
|
104
158
|
NODE_FIELD_NUMBER: builtins.int
|
|
105
159
|
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
|
106
160
|
@property
|
|
107
161
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
108
162
|
@property
|
|
109
|
-
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
|
|
110
|
-
def __init__(
|
|
163
|
+
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
164
|
+
def __init__(
|
|
165
|
+
self,
|
|
111
166
|
*,
|
|
112
|
-
node:
|
|
113
|
-
message_ids:
|
|
114
|
-
|
|
115
|
-
def HasField(self, field_name:
|
|
116
|
-
def ClearField(self, field_name:
|
|
167
|
+
node: flwr.proto.node_pb2.Node | None = ...,
|
|
168
|
+
message_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
169
|
+
) -> None: ...
|
|
170
|
+
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
171
|
+
def ClearField(self, field_name: typing.Literal["message_ids", b"message_ids", "node", b"node"]) -> None: ...
|
|
172
|
+
|
|
117
173
|
global___PullMessagesRequest = PullMessagesRequest
|
|
118
174
|
|
|
175
|
+
@typing.final
|
|
119
176
|
class PullMessagesResponse(google.protobuf.message.Message):
|
|
120
177
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
178
|
+
|
|
121
179
|
RECONNECT_FIELD_NUMBER: builtins.int
|
|
122
180
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
123
181
|
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
@@ -127,52 +185,68 @@ class PullMessagesResponse(google.protobuf.message.Message):
|
|
|
127
185
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
128
186
|
@property
|
|
129
187
|
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
130
|
-
def __init__(
|
|
188
|
+
def __init__(
|
|
189
|
+
self,
|
|
131
190
|
*,
|
|
132
|
-
reconnect:
|
|
133
|
-
messages_list:
|
|
134
|
-
message_object_trees:
|
|
135
|
-
|
|
136
|
-
def HasField(self, field_name:
|
|
137
|
-
def ClearField(self, field_name:
|
|
191
|
+
reconnect: global___Reconnect | None = ...,
|
|
192
|
+
messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
|
|
193
|
+
message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
|
|
194
|
+
) -> None: ...
|
|
195
|
+
def HasField(self, field_name: typing.Literal["reconnect", b"reconnect"]) -> builtins.bool: ...
|
|
196
|
+
def ClearField(self, field_name: typing.Literal["message_object_trees", b"message_object_trees", "messages_list", b"messages_list", "reconnect", b"reconnect"]) -> None: ...
|
|
197
|
+
|
|
138
198
|
global___PullMessagesResponse = PullMessagesResponse
|
|
139
199
|
|
|
200
|
+
@typing.final
|
|
140
201
|
class PushMessagesRequest(google.protobuf.message.Message):
|
|
141
202
|
"""PushMessages messages"""
|
|
203
|
+
|
|
142
204
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
205
|
+
|
|
143
206
|
NODE_FIELD_NUMBER: builtins.int
|
|
144
207
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
145
208
|
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
209
|
+
CLIENTAPP_RUNTIME_LIST_FIELD_NUMBER: builtins.int
|
|
146
210
|
@property
|
|
147
211
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
148
212
|
@property
|
|
149
213
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
150
214
|
@property
|
|
151
215
|
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
152
|
-
|
|
216
|
+
@property
|
|
217
|
+
def clientapp_runtime_list(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
|
|
218
|
+
def __init__(
|
|
219
|
+
self,
|
|
153
220
|
*,
|
|
154
|
-
node:
|
|
155
|
-
messages_list:
|
|
156
|
-
message_object_trees:
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
def
|
|
221
|
+
node: flwr.proto.node_pb2.Node | None = ...,
|
|
222
|
+
messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
|
|
223
|
+
message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
|
|
224
|
+
clientapp_runtime_list: collections.abc.Iterable[builtins.float] | None = ...,
|
|
225
|
+
) -> None: ...
|
|
226
|
+
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
227
|
+
def ClearField(self, field_name: typing.Literal["clientapp_runtime_list", b"clientapp_runtime_list", "message_object_trees", b"message_object_trees", "messages_list", b"messages_list", "node", b"node"]) -> None: ...
|
|
228
|
+
|
|
160
229
|
global___PushMessagesRequest = PushMessagesRequest
|
|
161
230
|
|
|
231
|
+
@typing.final
|
|
162
232
|
class PushMessagesResponse(google.protobuf.message.Message):
|
|
163
233
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
234
|
+
|
|
235
|
+
@typing.final
|
|
164
236
|
class ResultsEntry(google.protobuf.message.Message):
|
|
165
237
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
238
|
+
|
|
166
239
|
KEY_FIELD_NUMBER: builtins.int
|
|
167
240
|
VALUE_FIELD_NUMBER: builtins.int
|
|
168
|
-
key:
|
|
241
|
+
key: builtins.str
|
|
169
242
|
value: builtins.int
|
|
170
|
-
def __init__(
|
|
243
|
+
def __init__(
|
|
244
|
+
self,
|
|
171
245
|
*,
|
|
172
|
-
key:
|
|
246
|
+
key: builtins.str = ...,
|
|
173
247
|
value: builtins.int = ...,
|
|
174
|
-
|
|
175
|
-
def ClearField(self, field_name:
|
|
248
|
+
) -> None: ...
|
|
249
|
+
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
176
250
|
|
|
177
251
|
RECONNECT_FIELD_NUMBER: builtins.int
|
|
178
252
|
RESULTS_FIELD_NUMBER: builtins.int
|
|
@@ -180,26 +254,32 @@ class PushMessagesResponse(google.protobuf.message.Message):
|
|
|
180
254
|
@property
|
|
181
255
|
def reconnect(self) -> global___Reconnect: ...
|
|
182
256
|
@property
|
|
183
|
-
def results(self) -> google.protobuf.internal.containers.ScalarMap[
|
|
257
|
+
def results(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: ...
|
|
184
258
|
@property
|
|
185
|
-
def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
|
|
186
|
-
def __init__(
|
|
259
|
+
def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
260
|
+
def __init__(
|
|
261
|
+
self,
|
|
187
262
|
*,
|
|
188
|
-
reconnect:
|
|
189
|
-
results:
|
|
190
|
-
objects_to_push:
|
|
191
|
-
|
|
192
|
-
def HasField(self, field_name:
|
|
193
|
-
def ClearField(self, field_name:
|
|
263
|
+
reconnect: global___Reconnect | None = ...,
|
|
264
|
+
results: collections.abc.Mapping[builtins.str, builtins.int] | None = ...,
|
|
265
|
+
objects_to_push: collections.abc.Iterable[builtins.str] | None = ...,
|
|
266
|
+
) -> None: ...
|
|
267
|
+
def HasField(self, field_name: typing.Literal["reconnect", b"reconnect"]) -> builtins.bool: ...
|
|
268
|
+
def ClearField(self, field_name: typing.Literal["objects_to_push", b"objects_to_push", "reconnect", b"reconnect", "results", b"results"]) -> None: ...
|
|
269
|
+
|
|
194
270
|
global___PushMessagesResponse = PushMessagesResponse
|
|
195
271
|
|
|
272
|
+
@typing.final
|
|
196
273
|
class Reconnect(google.protobuf.message.Message):
|
|
197
274
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
275
|
+
|
|
198
276
|
RECONNECT_FIELD_NUMBER: builtins.int
|
|
199
277
|
reconnect: builtins.int
|
|
200
|
-
def __init__(
|
|
278
|
+
def __init__(
|
|
279
|
+
self,
|
|
201
280
|
*,
|
|
202
281
|
reconnect: builtins.int = ...,
|
|
203
|
-
|
|
204
|
-
def ClearField(self, field_name:
|
|
282
|
+
) -> None: ...
|
|
283
|
+
def ClearField(self, field_name: typing.Literal["reconnect", b"reconnect"]) -> None: ...
|
|
284
|
+
|
|
205
285
|
global___Reconnect = Reconnect
|