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
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
import uuid
|
|
19
|
-
from collections.abc import Iterator
|
|
19
|
+
from collections.abc import Callable, Iterator
|
|
20
20
|
from contextlib import contextmanager
|
|
21
21
|
from logging import DEBUG, ERROR
|
|
22
22
|
from pathlib import Path
|
|
23
23
|
from queue import Queue
|
|
24
|
-
from typing import
|
|
24
|
+
from typing import cast
|
|
25
25
|
|
|
26
26
|
from cryptography.hazmat.primitives.asymmetric import ec
|
|
27
27
|
|
|
@@ -56,18 +56,18 @@ def grpc_connection( # pylint: disable=R0913,R0915,too-many-positional-argument
|
|
|
56
56
|
insecure: bool,
|
|
57
57
|
retry_invoker: RetryInvoker, # pylint: disable=unused-argument
|
|
58
58
|
max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
|
|
59
|
-
root_certificates:
|
|
60
|
-
authentication_keys:
|
|
61
|
-
tuple[ec.EllipticCurvePrivateKey, ec.EllipticCurvePublicKey]
|
|
62
|
-
|
|
59
|
+
root_certificates: bytes | str | None = None,
|
|
60
|
+
authentication_keys: (
|
|
61
|
+
tuple[ec.EllipticCurvePrivateKey, ec.EllipticCurvePublicKey] | None
|
|
62
|
+
) = None,
|
|
63
63
|
) -> Iterator[
|
|
64
64
|
tuple[
|
|
65
|
-
Callable[[],
|
|
65
|
+
Callable[[], Message | None],
|
|
66
66
|
Callable[[Message], None],
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
Callable[[], int | None] | None,
|
|
68
|
+
Callable[[], None] | None,
|
|
69
|
+
Callable[[int], Run] | None,
|
|
70
|
+
Callable[[str, int], Fab] | None,
|
|
71
71
|
]
|
|
72
72
|
]:
|
|
73
73
|
"""Establish a gRPC connection to a gRPC server.
|
flwr/compat/server/app.py
CHANGED
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
|
|
18
18
|
import sys
|
|
19
19
|
from logging import INFO
|
|
20
|
-
from typing import Optional
|
|
21
20
|
|
|
22
21
|
from flwr.common import GRPC_MAX_MESSAGE_LENGTH, EventType, event
|
|
23
22
|
from flwr.common.address import parse_address
|
|
@@ -35,12 +34,12 @@ from flwr.server.superlink.fleet.grpc_bidi.grpc_server import start_grpc_server
|
|
|
35
34
|
def start_server( # pylint: disable=too-many-arguments,too-many-locals
|
|
36
35
|
*,
|
|
37
36
|
server_address: str = FLEET_API_GRPC_BIDI_DEFAULT_ADDRESS,
|
|
38
|
-
server:
|
|
39
|
-
config:
|
|
40
|
-
strategy:
|
|
41
|
-
client_manager:
|
|
37
|
+
server: Server | None = None,
|
|
38
|
+
config: ServerConfig | None = None,
|
|
39
|
+
strategy: Strategy | None = None,
|
|
40
|
+
client_manager: ClientManager | None = None,
|
|
42
41
|
grpc_max_message_length: int = GRPC_MAX_MESSAGE_LENGTH,
|
|
43
|
-
certificates:
|
|
42
|
+
certificates: tuple[bytes, bytes, bytes] | None = None,
|
|
44
43
|
) -> History:
|
|
45
44
|
"""Start a Flower server using the gRPC transport layer.
|
|
46
45
|
|
flwr/proto/appio_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/appio.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/appio.proto'
|
|
19
|
+
)
|
|
10
20
|
# @@protoc_insertion_point(imports)
|
|
11
21
|
|
|
12
22
|
_sym_db = _symbol_database.Default()
|
|
@@ -22,8 +32,8 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/
|
|
|
22
32
|
_globals = globals()
|
|
23
33
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
24
34
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.appio_pb2', _globals)
|
|
25
|
-
if _descriptor._USE_C_DESCRIPTORS
|
|
26
|
-
DESCRIPTOR.
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
DESCRIPTOR._loaded_options = None
|
|
27
37
|
_globals['_LISTAPPSTOLAUNCHREQUEST']._serialized_start=108
|
|
28
38
|
_globals['_LISTAPPSTOLAUNCHREQUEST']._serialized_end=133
|
|
29
39
|
_globals['_LISTAPPSTOLAUNCHRESPONSE']._serialized_start=135
|
flwr/proto/appio_pb2.pyi
CHANGED
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
"""
|
|
2
2
|
@generated by mypy-protobuf. Do not edit manually!
|
|
3
3
|
isort:skip_file
|
|
4
|
+
Copyright 2025 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.fab_pb2
|
|
7
23
|
import flwr.proto.message_pb2
|
|
8
24
|
import flwr.proto.run_pb2
|
|
@@ -10,145 +26,187 @@ import google.protobuf.descriptor
|
|
|
10
26
|
import google.protobuf.internal.containers
|
|
11
27
|
import google.protobuf.message
|
|
12
28
|
import typing
|
|
13
|
-
import typing_extensions
|
|
14
29
|
|
|
15
30
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
16
31
|
|
|
32
|
+
@typing.final
|
|
17
33
|
class ListAppsToLaunchRequest(google.protobuf.message.Message):
|
|
18
34
|
"""These messages are used by both ServerAppIo and ClientAppIo services
|
|
19
35
|
|
|
20
36
|
ListAppsToLaunch messages
|
|
21
37
|
"""
|
|
38
|
+
|
|
22
39
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
23
|
-
|
|
24
|
-
|
|
40
|
+
|
|
41
|
+
def __init__(
|
|
42
|
+
self,
|
|
43
|
+
) -> None: ...
|
|
44
|
+
|
|
25
45
|
global___ListAppsToLaunchRequest = ListAppsToLaunchRequest
|
|
26
46
|
|
|
47
|
+
@typing.final
|
|
27
48
|
class ListAppsToLaunchResponse(google.protobuf.message.Message):
|
|
28
49
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
50
|
+
|
|
29
51
|
RUN_IDS_FIELD_NUMBER: builtins.int
|
|
30
52
|
@property
|
|
31
53
|
def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
|
|
32
54
|
"""List of run IDs of the apps to launch"""
|
|
33
|
-
|
|
34
|
-
def __init__(
|
|
55
|
+
|
|
56
|
+
def __init__(
|
|
57
|
+
self,
|
|
35
58
|
*,
|
|
36
|
-
run_ids:
|
|
37
|
-
|
|
38
|
-
def ClearField(self, field_name:
|
|
59
|
+
run_ids: collections.abc.Iterable[builtins.int] | None = ...,
|
|
60
|
+
) -> None: ...
|
|
61
|
+
def ClearField(self, field_name: typing.Literal["run_ids", b"run_ids"]) -> None: ...
|
|
62
|
+
|
|
39
63
|
global___ListAppsToLaunchResponse = ListAppsToLaunchResponse
|
|
40
64
|
|
|
65
|
+
@typing.final
|
|
41
66
|
class RequestTokenRequest(google.protobuf.message.Message):
|
|
42
67
|
"""RequestToken messages"""
|
|
68
|
+
|
|
43
69
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
70
|
+
|
|
44
71
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
45
72
|
run_id: builtins.int
|
|
46
|
-
def __init__(
|
|
73
|
+
def __init__(
|
|
74
|
+
self,
|
|
47
75
|
*,
|
|
48
76
|
run_id: builtins.int = ...,
|
|
49
|
-
|
|
50
|
-
def ClearField(self, field_name:
|
|
77
|
+
) -> None: ...
|
|
78
|
+
def ClearField(self, field_name: typing.Literal["run_id", b"run_id"]) -> None: ...
|
|
79
|
+
|
|
51
80
|
global___RequestTokenRequest = RequestTokenRequest
|
|
52
81
|
|
|
82
|
+
@typing.final
|
|
53
83
|
class RequestTokenResponse(google.protobuf.message.Message):
|
|
54
84
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
85
|
+
|
|
55
86
|
TOKEN_FIELD_NUMBER: builtins.int
|
|
56
|
-
token:
|
|
57
|
-
def __init__(
|
|
87
|
+
token: builtins.str
|
|
88
|
+
def __init__(
|
|
89
|
+
self,
|
|
58
90
|
*,
|
|
59
|
-
token:
|
|
60
|
-
|
|
61
|
-
def ClearField(self, field_name:
|
|
91
|
+
token: builtins.str = ...,
|
|
92
|
+
) -> None: ...
|
|
93
|
+
def ClearField(self, field_name: typing.Literal["token", b"token"]) -> None: ...
|
|
94
|
+
|
|
62
95
|
global___RequestTokenResponse = RequestTokenResponse
|
|
63
96
|
|
|
97
|
+
@typing.final
|
|
64
98
|
class PushAppMessagesRequest(google.protobuf.message.Message):
|
|
65
99
|
"""PushAppMessages messages"""
|
|
100
|
+
|
|
66
101
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
102
|
+
|
|
67
103
|
TOKEN_FIELD_NUMBER: builtins.int
|
|
68
104
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
69
105
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
70
106
|
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
71
|
-
token:
|
|
107
|
+
token: builtins.str
|
|
108
|
+
run_id: builtins.int
|
|
72
109
|
@property
|
|
73
110
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
74
|
-
run_id: builtins.int
|
|
75
111
|
@property
|
|
76
112
|
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
77
|
-
def __init__(
|
|
113
|
+
def __init__(
|
|
114
|
+
self,
|
|
78
115
|
*,
|
|
79
|
-
token:
|
|
80
|
-
messages_list:
|
|
116
|
+
token: builtins.str = ...,
|
|
117
|
+
messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
|
|
81
118
|
run_id: builtins.int = ...,
|
|
82
|
-
message_object_trees:
|
|
83
|
-
|
|
84
|
-
def ClearField(self, field_name:
|
|
119
|
+
message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
|
|
120
|
+
) -> None: ...
|
|
121
|
+
def ClearField(self, field_name: typing.Literal["message_object_trees", b"message_object_trees", "messages_list", b"messages_list", "run_id", b"run_id", "token", b"token"]) -> None: ...
|
|
122
|
+
|
|
85
123
|
global___PushAppMessagesRequest = PushAppMessagesRequest
|
|
86
124
|
|
|
125
|
+
@typing.final
|
|
87
126
|
class PushAppMessagesResponse(google.protobuf.message.Message):
|
|
88
127
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
128
|
+
|
|
89
129
|
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
|
90
130
|
OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
|
|
91
131
|
@property
|
|
92
|
-
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
|
|
132
|
+
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
93
133
|
@property
|
|
94
|
-
def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
|
|
95
|
-
def __init__(
|
|
134
|
+
def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
135
|
+
def __init__(
|
|
136
|
+
self,
|
|
96
137
|
*,
|
|
97
|
-
message_ids:
|
|
98
|
-
objects_to_push:
|
|
99
|
-
|
|
100
|
-
def ClearField(self, field_name:
|
|
138
|
+
message_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
139
|
+
objects_to_push: collections.abc.Iterable[builtins.str] | None = ...,
|
|
140
|
+
) -> None: ...
|
|
141
|
+
def ClearField(self, field_name: typing.Literal["message_ids", b"message_ids", "objects_to_push", b"objects_to_push"]) -> None: ...
|
|
142
|
+
|
|
101
143
|
global___PushAppMessagesResponse = PushAppMessagesResponse
|
|
102
144
|
|
|
145
|
+
@typing.final
|
|
103
146
|
class PullAppMessagesRequest(google.protobuf.message.Message):
|
|
104
147
|
"""PullAppMessages messages"""
|
|
148
|
+
|
|
105
149
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
150
|
+
|
|
106
151
|
TOKEN_FIELD_NUMBER: builtins.int
|
|
107
152
|
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
|
108
153
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
109
|
-
token:
|
|
110
|
-
@property
|
|
111
|
-
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
|
154
|
+
token: builtins.str
|
|
112
155
|
run_id: builtins.int
|
|
113
|
-
|
|
156
|
+
@property
|
|
157
|
+
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
158
|
+
def __init__(
|
|
159
|
+
self,
|
|
114
160
|
*,
|
|
115
|
-
token:
|
|
116
|
-
message_ids:
|
|
161
|
+
token: builtins.str = ...,
|
|
162
|
+
message_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
117
163
|
run_id: builtins.int = ...,
|
|
118
|
-
|
|
119
|
-
def ClearField(self, field_name:
|
|
164
|
+
) -> None: ...
|
|
165
|
+
def ClearField(self, field_name: typing.Literal["message_ids", b"message_ids", "run_id", b"run_id", "token", b"token"]) -> None: ...
|
|
166
|
+
|
|
120
167
|
global___PullAppMessagesRequest = PullAppMessagesRequest
|
|
121
168
|
|
|
169
|
+
@typing.final
|
|
122
170
|
class PullAppMessagesResponse(google.protobuf.message.Message):
|
|
123
171
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
172
|
+
|
|
124
173
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
125
174
|
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
126
175
|
@property
|
|
127
176
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
128
177
|
@property
|
|
129
178
|
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
130
|
-
def __init__(
|
|
179
|
+
def __init__(
|
|
180
|
+
self,
|
|
131
181
|
*,
|
|
132
|
-
messages_list:
|
|
133
|
-
message_object_trees:
|
|
134
|
-
|
|
135
|
-
def ClearField(self, field_name:
|
|
182
|
+
messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
|
|
183
|
+
message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
|
|
184
|
+
) -> None: ...
|
|
185
|
+
def ClearField(self, field_name: typing.Literal["message_object_trees", b"message_object_trees", "messages_list", b"messages_list"]) -> None: ...
|
|
186
|
+
|
|
136
187
|
global___PullAppMessagesResponse = PullAppMessagesResponse
|
|
137
188
|
|
|
189
|
+
@typing.final
|
|
138
190
|
class PullAppInputsRequest(google.protobuf.message.Message):
|
|
139
191
|
"""PullAppInputs messages"""
|
|
192
|
+
|
|
140
193
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
194
|
+
|
|
141
195
|
TOKEN_FIELD_NUMBER: builtins.int
|
|
142
|
-
token:
|
|
143
|
-
def __init__(
|
|
196
|
+
token: builtins.str
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
144
199
|
*,
|
|
145
|
-
token:
|
|
146
|
-
|
|
147
|
-
def ClearField(self, field_name:
|
|
200
|
+
token: builtins.str = ...,
|
|
201
|
+
) -> None: ...
|
|
202
|
+
def ClearField(self, field_name: typing.Literal["token", b"token"]) -> None: ...
|
|
203
|
+
|
|
148
204
|
global___PullAppInputsRequest = PullAppInputsRequest
|
|
149
205
|
|
|
206
|
+
@typing.final
|
|
150
207
|
class PullAppInputsResponse(google.protobuf.message.Message):
|
|
151
208
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
209
|
+
|
|
152
210
|
CONTEXT_FIELD_NUMBER: builtins.int
|
|
153
211
|
RUN_FIELD_NUMBER: builtins.int
|
|
154
212
|
FAB_FIELD_NUMBER: builtins.int
|
|
@@ -158,38 +216,49 @@ class PullAppInputsResponse(google.protobuf.message.Message):
|
|
|
158
216
|
def run(self) -> flwr.proto.run_pb2.Run: ...
|
|
159
217
|
@property
|
|
160
218
|
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
|
161
|
-
def __init__(
|
|
219
|
+
def __init__(
|
|
220
|
+
self,
|
|
162
221
|
*,
|
|
163
|
-
context:
|
|
164
|
-
run:
|
|
165
|
-
fab:
|
|
166
|
-
|
|
167
|
-
def HasField(self, field_name:
|
|
168
|
-
def ClearField(self, field_name:
|
|
222
|
+
context: flwr.proto.message_pb2.Context | None = ...,
|
|
223
|
+
run: flwr.proto.run_pb2.Run | None = ...,
|
|
224
|
+
fab: flwr.proto.fab_pb2.Fab | None = ...,
|
|
225
|
+
) -> None: ...
|
|
226
|
+
def HasField(self, field_name: typing.Literal["context", b"context", "fab", b"fab", "run", b"run"]) -> builtins.bool: ...
|
|
227
|
+
def ClearField(self, field_name: typing.Literal["context", b"context", "fab", b"fab", "run", b"run"]) -> None: ...
|
|
228
|
+
|
|
169
229
|
global___PullAppInputsResponse = PullAppInputsResponse
|
|
170
230
|
|
|
231
|
+
@typing.final
|
|
171
232
|
class PushAppOutputsRequest(google.protobuf.message.Message):
|
|
172
233
|
"""PushAppInputs messages"""
|
|
234
|
+
|
|
173
235
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
236
|
+
|
|
174
237
|
TOKEN_FIELD_NUMBER: builtins.int
|
|
175
238
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
176
239
|
CONTEXT_FIELD_NUMBER: builtins.int
|
|
177
|
-
token:
|
|
240
|
+
token: builtins.str
|
|
178
241
|
run_id: builtins.int
|
|
179
242
|
@property
|
|
180
243
|
def context(self) -> flwr.proto.message_pb2.Context: ...
|
|
181
|
-
def __init__(
|
|
244
|
+
def __init__(
|
|
245
|
+
self,
|
|
182
246
|
*,
|
|
183
|
-
token:
|
|
247
|
+
token: builtins.str = ...,
|
|
184
248
|
run_id: builtins.int = ...,
|
|
185
|
-
context:
|
|
186
|
-
|
|
187
|
-
def HasField(self, field_name:
|
|
188
|
-
def ClearField(self, field_name:
|
|
249
|
+
context: flwr.proto.message_pb2.Context | None = ...,
|
|
250
|
+
) -> None: ...
|
|
251
|
+
def HasField(self, field_name: typing.Literal["context", b"context"]) -> builtins.bool: ...
|
|
252
|
+
def ClearField(self, field_name: typing.Literal["context", b"context", "run_id", b"run_id", "token", b"token"]) -> None: ...
|
|
253
|
+
|
|
189
254
|
global___PushAppOutputsRequest = PushAppOutputsRequest
|
|
190
255
|
|
|
256
|
+
@typing.final
|
|
191
257
|
class PushAppOutputsResponse(google.protobuf.message.Message):
|
|
192
258
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
193
|
-
|
|
194
|
-
|
|
259
|
+
|
|
260
|
+
def __init__(
|
|
261
|
+
self,
|
|
262
|
+
) -> None: ...
|
|
263
|
+
|
|
195
264
|
global___PushAppOutputsResponse = PushAppOutputsResponse
|
flwr/proto/appio_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/appio_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/appio_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 2025 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
|
+
...
|
flwr/proto/clientappio_pb2.py
CHANGED
|
@@ -1,30 +1,40 @@
|
|
|
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/clientappio.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/clientappio.proto'
|
|
19
|
+
)
|
|
10
20
|
# @@protoc_insertion_point(imports)
|
|
11
21
|
|
|
12
22
|
_sym_db = _symbol_database.Default()
|
|
13
23
|
|
|
14
24
|
|
|
15
|
-
from flwr.proto import
|
|
25
|
+
from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
|
|
16
26
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
17
27
|
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
|
18
28
|
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
|
19
29
|
|
|
20
30
|
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x16\x66lwr/proto/appio.proto2\xeb\x07\n\x0b\x43lientAppIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\\\n\x13PullClientAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12_\n\x14PushClientAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12X\n\x0bPushMessage\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12X\n\x0bPullMessage\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\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')
|
|
22
32
|
|
|
23
33
|
_globals = globals()
|
|
24
34
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
25
35
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
|
|
26
|
-
if _descriptor._USE_C_DESCRIPTORS
|
|
27
|
-
DESCRIPTOR.
|
|
28
|
-
_globals['_CLIENTAPPIO']._serialized_start=
|
|
29
|
-
_globals['_CLIENTAPPIO']._serialized_end=
|
|
36
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
|
+
DESCRIPTOR._loaded_options = None
|
|
38
|
+
_globals['_CLIENTAPPIO']._serialized_start=145
|
|
39
|
+
_globals['_CLIENTAPPIO']._serialized_end=1148
|
|
30
40
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/clientappio_pb2.pyi
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
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
|
+
|
|
5
20
|
import google.protobuf.descriptor
|
|
6
21
|
|
|
7
22
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|