flwr 1.24.0__py3-none-any.whl → 1.26.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 +1 -1
- flwr/app/__init__.py +4 -1
- flwr/app/message_type.py +29 -0
- flwr/app/metadata.py +5 -2
- flwr/app/user_config.py +19 -0
- flwr/cli/app.py +37 -19
- flwr/cli/app_cmd/publish.py +25 -75
- flwr/cli/app_cmd/review.py +25 -66
- flwr/cli/auth_plugin/auth_plugin.py +5 -10
- flwr/cli/auth_plugin/noop_auth_plugin.py +1 -2
- flwr/cli/auth_plugin/oidc_cli_plugin.py +38 -38
- flwr/cli/build.py +15 -28
- flwr/cli/config/__init__.py +21 -0
- flwr/cli/config/ls.py +71 -0
- flwr/cli/config_migration.py +297 -0
- flwr/cli/config_utils.py +63 -156
- flwr/cli/constant.py +71 -0
- flwr/cli/federation/__init__.py +0 -2
- flwr/cli/federation/ls.py +256 -64
- flwr/cli/flower_config.py +429 -0
- flwr/cli/install.py +23 -62
- flwr/cli/log.py +23 -37
- flwr/cli/login/login.py +29 -63
- flwr/cli/ls.py +72 -61
- flwr/cli/new/new.py +98 -309
- flwr/cli/pull.py +19 -37
- flwr/cli/run/run.py +87 -100
- flwr/cli/run_utils.py +23 -5
- flwr/cli/stop.py +33 -74
- flwr/cli/supernode/ls.py +35 -62
- flwr/cli/supernode/register.py +31 -80
- flwr/cli/supernode/unregister.py +24 -70
- flwr/cli/typing.py +200 -0
- flwr/cli/utils.py +160 -412
- flwr/client/grpc_adapter_client/connection.py +2 -2
- flwr/client/grpc_rere_client/connection.py +9 -6
- flwr/client/grpc_rere_client/grpc_adapter.py +1 -1
- flwr/client/message_handler/message_handler.py +2 -1
- flwr/client/mod/centraldp_mods.py +1 -1
- flwr/client/mod/localdp_mod.py +1 -1
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +1 -1
- flwr/client/rest_client/connection.py +6 -4
- flwr/client/run_info_store.py +2 -1
- flwr/clientapp/client_app.py +2 -1
- flwr/common/__init__.py +3 -2
- flwr/common/args.py +5 -5
- flwr/common/config.py +12 -17
- flwr/common/constant.py +3 -16
- flwr/common/context.py +2 -1
- flwr/common/exit/exit.py +4 -4
- flwr/common/exit/exit_code.py +6 -0
- flwr/common/grpc.py +2 -1
- flwr/common/logger.py +1 -1
- flwr/common/message.py +1 -1
- flwr/common/retry_invoker.py +13 -5
- flwr/common/secure_aggregation/ndarrays_arithmetic.py +5 -2
- flwr/common/serde.py +13 -5
- flwr/common/telemetry.py +1 -1
- flwr/common/typing.py +10 -3
- flwr/compat/client/app.py +6 -9
- flwr/compat/client/grpc_client/connection.py +2 -1
- flwr/compat/common/constant.py +29 -0
- flwr/compat/server/app.py +1 -1
- flwr/proto/clientappio_pb2.py +2 -2
- flwr/proto/clientappio_pb2_grpc.py +104 -88
- flwr/proto/clientappio_pb2_grpc.pyi +140 -80
- flwr/proto/federation_pb2.py +5 -3
- flwr/proto/federation_pb2.pyi +32 -2
- flwr/proto/fleet_pb2.py +10 -10
- flwr/proto/fleet_pb2.pyi +5 -1
- flwr/proto/run_pb2.py +18 -26
- flwr/proto/run_pb2.pyi +10 -58
- flwr/proto/serverappio_pb2.py +2 -2
- flwr/proto/serverappio_pb2_grpc.py +138 -207
- flwr/proto/serverappio_pb2_grpc.pyi +189 -155
- flwr/proto/simulationio_pb2.py +2 -2
- flwr/proto/simulationio_pb2_grpc.py +62 -90
- flwr/proto/simulationio_pb2_grpc.pyi +95 -55
- flwr/server/app.py +7 -13
- flwr/server/compat/grid_client_proxy.py +2 -1
- flwr/server/grid/grpc_grid.py +5 -5
- flwr/server/serverapp/app.py +11 -4
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +1 -1
- flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +13 -12
- flwr/server/superlink/fleet/message_handler/message_handler.py +42 -2
- flwr/server/superlink/linkstate/__init__.py +2 -2
- flwr/server/superlink/linkstate/in_memory_linkstate.py +36 -10
- flwr/server/superlink/linkstate/linkstate.py +34 -21
- flwr/server/superlink/linkstate/linkstate_factory.py +16 -8
- flwr/server/superlink/linkstate/{sqlite_linkstate.py → sql_linkstate.py} +471 -516
- flwr/server/superlink/linkstate/utils.py +49 -2
- flwr/server/superlink/serverappio/serverappio_servicer.py +1 -33
- flwr/server/superlink/simulation/simulationio_servicer.py +0 -19
- flwr/server/utils/validator.py +1 -1
- flwr/server/workflow/default_workflows.py +2 -1
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +1 -1
- flwr/serverapp/strategy/bulyan.py +7 -1
- flwr/serverapp/strategy/dp_fixed_clipping.py +9 -1
- flwr/serverapp/strategy/fedavg.py +1 -1
- flwr/serverapp/strategy/fedxgb_cyclic.py +1 -1
- flwr/simulation/ray_transport/ray_client_proxy.py +2 -6
- flwr/simulation/run_simulation.py +3 -12
- flwr/simulation/simulationio_connection.py +3 -3
- flwr/{common → supercore}/address.py +7 -33
- flwr/supercore/app_utils.py +2 -1
- flwr/supercore/constant.py +27 -2
- flwr/supercore/corestate/{sqlite_corestate.py → sql_corestate.py} +19 -23
- flwr/supercore/credential_store/__init__.py +33 -0
- flwr/supercore/credential_store/credential_store.py +34 -0
- flwr/supercore/credential_store/file_credential_store.py +76 -0
- flwr/{common → supercore}/date.py +0 -11
- flwr/supercore/ffs/disk_ffs.py +1 -1
- flwr/supercore/object_store/object_store_factory.py +14 -6
- flwr/supercore/object_store/{sqlite_object_store.py → sql_object_store.py} +115 -117
- flwr/supercore/sql_mixin.py +315 -0
- flwr/{cli/new/templates → supercore/state}/__init__.py +2 -2
- flwr/{cli/new/templates/app/code/flwr_tune → supercore/state/alembic}/__init__.py +2 -2
- flwr/supercore/state/alembic/env.py +103 -0
- flwr/supercore/state/alembic/script.py.mako +43 -0
- flwr/supercore/state/alembic/utils.py +239 -0
- flwr/{cli/new/templates/app → supercore/state/alembic/versions}/__init__.py +2 -2
- flwr/supercore/state/alembic/versions/rev_2026_01_28_initialize_migration_of_state_tables.py +200 -0
- flwr/supercore/state/schema/README.md +121 -0
- flwr/{cli/new/templates/app/code → supercore/state/schema}/__init__.py +2 -2
- flwr/supercore/state/schema/corestate_tables.py +36 -0
- flwr/supercore/state/schema/linkstate_tables.py +152 -0
- flwr/supercore/state/schema/objectstore_tables.py +90 -0
- flwr/supercore/superexec/run_superexec.py +2 -2
- flwr/supercore/utils.py +225 -0
- flwr/superlink/federation/federation_manager.py +2 -2
- flwr/superlink/federation/noop_federation_manager.py +8 -6
- flwr/superlink/servicer/control/control_grpc.py +2 -0
- flwr/superlink/servicer/control/control_servicer.py +106 -21
- flwr/supernode/cli/flower_supernode.py +2 -1
- flwr/supernode/nodestate/in_memory_nodestate.py +62 -1
- flwr/supernode/nodestate/nodestate.py +45 -0
- flwr/supernode/runtime/run_clientapp.py +14 -14
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +13 -5
- flwr/supernode/start_client_internal.py +17 -10
- {flwr-1.24.0.dist-info → flwr-1.26.0.dist-info}/METADATA +8 -8
- {flwr-1.24.0.dist-info → flwr-1.26.0.dist-info}/RECORD +144 -184
- flwr/cli/federation/show.py +0 -317
- 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.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 -99
- 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/common/pyproject.py +0 -42
- flwr/supercore/sqlite_mixin.py +0 -159
- /flwr/{common → supercore}/version.py +0 -0
- {flwr-1.24.0.dist-info → flwr-1.26.0.dist-info}/WHEEL +0 -0
- {flwr-1.24.0.dist-info → flwr-1.26.0.dist-info}/entry_points.txt +0 -0
flwr/common/typing.py
CHANGED
|
@@ -23,6 +23,8 @@ from typing import Any
|
|
|
23
23
|
import numpy as np
|
|
24
24
|
import numpy.typing as npt
|
|
25
25
|
|
|
26
|
+
from flwr.app.user_config import UserConfig
|
|
27
|
+
from flwr.proto.federation_pb2 import Account # pylint: disable=E0611
|
|
26
28
|
from flwr.proto.node_pb2 import NodeInfo # pylint: disable=E0611
|
|
27
29
|
|
|
28
30
|
NDArray = npt.NDArray[Any]
|
|
@@ -64,8 +66,6 @@ Config = dict[str, Scalar]
|
|
|
64
66
|
Properties = dict[str, Scalar]
|
|
65
67
|
|
|
66
68
|
# Value type for user configs
|
|
67
|
-
UserConfigValue = bool | float | int | str
|
|
68
|
-
UserConfig = dict[str, UserConfigValue]
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
class Code(Enum):
|
|
@@ -235,6 +235,9 @@ class Run: # pylint: disable=too-many-instance-attributes
|
|
|
235
235
|
status: RunStatus
|
|
236
236
|
flwr_aid: str
|
|
237
237
|
federation: str
|
|
238
|
+
bytes_sent: int
|
|
239
|
+
bytes_recv: int
|
|
240
|
+
clientapp_runtime: float
|
|
238
241
|
|
|
239
242
|
@classmethod
|
|
240
243
|
def create_empty(cls, run_id: int) -> "Run":
|
|
@@ -252,6 +255,9 @@ class Run: # pylint: disable=too-many-instance-attributes
|
|
|
252
255
|
status=RunStatus(status="", sub_status="", details=""),
|
|
253
256
|
flwr_aid="",
|
|
254
257
|
federation="",
|
|
258
|
+
bytes_sent=0,
|
|
259
|
+
bytes_recv=0,
|
|
260
|
+
clientapp_runtime=0.0,
|
|
255
261
|
)
|
|
256
262
|
|
|
257
263
|
|
|
@@ -337,6 +343,7 @@ class Federation:
|
|
|
337
343
|
"""Federation details."""
|
|
338
344
|
|
|
339
345
|
name: str
|
|
340
|
-
|
|
346
|
+
description: str
|
|
347
|
+
accounts: list[Account]
|
|
341
348
|
nodes: list[NodeInfo]
|
|
342
349
|
runs: list[Run]
|
flwr/compat/client/app.py
CHANGED
|
@@ -25,6 +25,7 @@ from cryptography.hazmat.primitives.asymmetric import ec
|
|
|
25
25
|
from grpc import RpcError
|
|
26
26
|
|
|
27
27
|
from flwr.app.error import Error
|
|
28
|
+
from flwr.app.user_config import UserConfig
|
|
28
29
|
from flwr.cli.config_utils import get_fab_metadata
|
|
29
30
|
from flwr.cli.install import install_from_fab
|
|
30
31
|
from flwr.client.client import Client
|
|
@@ -34,18 +35,14 @@ from flwr.client.run_info_store import DeprecatedRunInfoStore
|
|
|
34
35
|
from flwr.client.typing import ClientFnExt
|
|
35
36
|
from flwr.clientapp.client_app import ClientApp, LoadClientAppError
|
|
36
37
|
from flwr.common import GRPC_MAX_MESSAGE_LENGTH, Context, EventType, Message, event
|
|
37
|
-
from flwr.common.
|
|
38
|
-
from flwr.common.constant import (
|
|
39
|
-
MAX_RETRY_DELAY,
|
|
40
|
-
TRANSPORT_TYPE_GRPC_BIDI,
|
|
41
|
-
TRANSPORT_TYPES,
|
|
42
|
-
ErrorCode,
|
|
43
|
-
)
|
|
38
|
+
from flwr.common.constant import MAX_RETRY_DELAY, ErrorCode
|
|
44
39
|
from flwr.common.exit import ExitCode, flwr_exit
|
|
45
40
|
from flwr.common.logger import log, warn_deprecated_feature
|
|
46
41
|
from flwr.common.retry_invoker import RetryInvoker, RetryState, exponential
|
|
47
|
-
from flwr.common.typing import Fab, Run, RunNotRunningException
|
|
42
|
+
from flwr.common.typing import Fab, Run, RunNotRunningException
|
|
48
43
|
from flwr.compat.client.grpc_client.connection import grpc_connection
|
|
44
|
+
from flwr.compat.common.constant import TRANSPORT_TYPE_GRPC_BIDI, TRANSPORT_TYPES_COMPAT
|
|
45
|
+
from flwr.supercore.address import parse_address
|
|
49
46
|
from flwr.supercore.object_store import ObjectStoreFactory
|
|
50
47
|
from flwr.supernode.nodestate import NodeStateFactory
|
|
51
48
|
|
|
@@ -675,7 +672,7 @@ def _init_connection(transport: str | None, server_address: str) -> tuple[
|
|
|
675
672
|
connection, error_type = grpc_connection, RpcError
|
|
676
673
|
else:
|
|
677
674
|
raise ValueError(
|
|
678
|
-
f"Unknown transport type: {transport} (possible: {
|
|
675
|
+
f"Unknown transport type: {transport} (possible: {TRANSPORT_TYPES_COMPAT})"
|
|
679
676
|
)
|
|
680
677
|
|
|
681
678
|
return connection, address, error_type
|
|
@@ -25,6 +25,7 @@ from typing import cast
|
|
|
25
25
|
|
|
26
26
|
from cryptography.hazmat.primitives.asymmetric import ec
|
|
27
27
|
|
|
28
|
+
from flwr.app.message_type import MessageType
|
|
28
29
|
from flwr.common import (
|
|
29
30
|
DEFAULT_TTL,
|
|
30
31
|
GRPC_MAX_MESSAGE_LENGTH,
|
|
@@ -36,7 +37,7 @@ from flwr.common import (
|
|
|
36
37
|
)
|
|
37
38
|
from flwr.common import recorddict_compat as compat
|
|
38
39
|
from flwr.common import serde
|
|
39
|
-
from flwr.common.constant import
|
|
40
|
+
from flwr.common.constant import MessageTypeLegacy
|
|
40
41
|
from flwr.common.grpc import create_channel, on_channel_state_change
|
|
41
42
|
from flwr.common.logger import log
|
|
42
43
|
from flwr.common.message import make_message
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright 2025 Flower Labs GmbH. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
"""Flower constants."""
|
|
16
|
+
|
|
17
|
+
from flwr.common.constant import (
|
|
18
|
+
TRANSPORT_TYPE_GRPC_RERE,
|
|
19
|
+
TRANSPORT_TYPE_REST,
|
|
20
|
+
TRANSPORT_TYPE_VCE,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
TRANSPORT_TYPE_GRPC_BIDI = "grpc-bidi"
|
|
24
|
+
TRANSPORT_TYPES_COMPAT = [
|
|
25
|
+
TRANSPORT_TYPE_GRPC_BIDI,
|
|
26
|
+
TRANSPORT_TYPE_GRPC_RERE,
|
|
27
|
+
TRANSPORT_TYPE_REST,
|
|
28
|
+
TRANSPORT_TYPE_VCE,
|
|
29
|
+
]
|
flwr/compat/server/app.py
CHANGED
|
@@ -19,7 +19,6 @@ import sys
|
|
|
19
19
|
from logging import INFO
|
|
20
20
|
|
|
21
21
|
from flwr.common import GRPC_MAX_MESSAGE_LENGTH, EventType, event
|
|
22
|
-
from flwr.common.address import parse_address
|
|
23
22
|
from flwr.common.constant import FLEET_API_GRPC_BIDI_DEFAULT_ADDRESS
|
|
24
23
|
from flwr.common.exit import register_signal_handlers
|
|
25
24
|
from flwr.common.logger import log, warn_deprecated_feature
|
|
@@ -29,6 +28,7 @@ from flwr.server.server import Server, init_defaults, run_fl
|
|
|
29
28
|
from flwr.server.server_config import ServerConfig
|
|
30
29
|
from flwr.server.strategy import Strategy
|
|
31
30
|
from flwr.server.superlink.fleet.grpc_bidi.grpc_server import start_grpc_server
|
|
31
|
+
from flwr.supercore.address import parse_address
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def start_server( # pylint: disable=too-many-arguments,too-many-locals
|
flwr/proto/clientappio_pb2.py
CHANGED
|
@@ -28,7 +28,7 @@ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
|
|
28
28
|
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
|
29
29
|
|
|
30
30
|
|
|
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\
|
|
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\xdf\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\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\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\x12X\n\x0bPushMessage\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12X\n\x0bPullMessage\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x62\x06proto3')
|
|
32
32
|
|
|
33
33
|
_globals = globals()
|
|
34
34
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -36,5 +36,5 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2'
|
|
|
36
36
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
37
|
DESCRIPTOR._loaded_options = None
|
|
38
38
|
_globals['_CLIENTAPPIO']._serialized_start=145
|
|
39
|
-
_globals['_CLIENTAPPIO']._serialized_end=
|
|
39
|
+
_globals['_CLIENTAPPIO']._serialized_end=1136
|
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -52,31 +52,21 @@ class ClientAppIoStub(object):
|
|
|
52
52
|
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
|
53
53
|
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
|
54
54
|
_registered_method=True)
|
|
55
|
-
self.
|
|
56
|
-
'/flwr.proto.ClientAppIo/
|
|
55
|
+
self.SendAppHeartbeat = channel.unary_unary(
|
|
56
|
+
'/flwr.proto.ClientAppIo/SendAppHeartbeat',
|
|
57
|
+
request_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.SerializeToString,
|
|
58
|
+
response_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.FromString,
|
|
59
|
+
_registered_method=True)
|
|
60
|
+
self.PullAppInputs = channel.unary_unary(
|
|
61
|
+
'/flwr.proto.ClientAppIo/PullAppInputs',
|
|
57
62
|
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
|
|
58
63
|
response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
|
|
59
64
|
_registered_method=True)
|
|
60
|
-
self.
|
|
61
|
-
'/flwr.proto.ClientAppIo/
|
|
65
|
+
self.PushAppOutputs = channel.unary_unary(
|
|
66
|
+
'/flwr.proto.ClientAppIo/PushAppOutputs',
|
|
62
67
|
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
|
|
63
68
|
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
|
|
64
69
|
_registered_method=True)
|
|
65
|
-
self.PushMessage = channel.unary_unary(
|
|
66
|
-
'/flwr.proto.ClientAppIo/PushMessage',
|
|
67
|
-
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
|
|
68
|
-
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
|
|
69
|
-
_registered_method=True)
|
|
70
|
-
self.PullMessage = channel.unary_unary(
|
|
71
|
-
'/flwr.proto.ClientAppIo/PullMessage',
|
|
72
|
-
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
|
|
73
|
-
response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
|
|
74
|
-
_registered_method=True)
|
|
75
|
-
self.SendAppHeartbeat = channel.unary_unary(
|
|
76
|
-
'/flwr.proto.ClientAppIo/SendAppHeartbeat',
|
|
77
|
-
request_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.SerializeToString,
|
|
78
|
-
response_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.FromString,
|
|
79
|
-
_registered_method=True)
|
|
80
70
|
self.PushObject = channel.unary_unary(
|
|
81
71
|
'/flwr.proto.ClientAppIo/PushObject',
|
|
82
72
|
request_serializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
|
|
@@ -92,13 +82,27 @@ class ClientAppIoStub(object):
|
|
|
92
82
|
request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
|
93
83
|
response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
|
94
84
|
_registered_method=True)
|
|
85
|
+
self.PushMessage = channel.unary_unary(
|
|
86
|
+
'/flwr.proto.ClientAppIo/PushMessage',
|
|
87
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
|
|
88
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
|
|
89
|
+
_registered_method=True)
|
|
90
|
+
self.PullMessage = channel.unary_unary(
|
|
91
|
+
'/flwr.proto.ClientAppIo/PullMessage',
|
|
92
|
+
request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
|
|
93
|
+
response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
|
|
94
|
+
_registered_method=True)
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
class ClientAppIoServicer(object):
|
|
98
98
|
"""Missing associated documentation comment in .proto file."""
|
|
99
99
|
|
|
100
100
|
def ListAppsToLaunch(self, request, context):
|
|
101
|
-
"""
|
|
101
|
+
"""///////////////////////////////////////////////////////////////////////////
|
|
102
|
+
General *AppIo endpoints for SuperExec processes
|
|
103
|
+
///////////////////////////////////////////////////////////////////////////
|
|
104
|
+
|
|
105
|
+
Get run IDs with pending messages
|
|
102
106
|
"""
|
|
103
107
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
104
108
|
context.set_details('Method not implemented!')
|
|
@@ -112,63 +116,75 @@ class ClientAppIoServicer(object):
|
|
|
112
116
|
raise NotImplementedError('Method not implemented!')
|
|
113
117
|
|
|
114
118
|
def GetRun(self, request, context):
|
|
115
|
-
"""
|
|
119
|
+
"""///////////////////////////////////////////////////////////////////////////
|
|
120
|
+
General *AppIo endpoints for App Executor processes
|
|
121
|
+
///////////////////////////////////////////////////////////////////////////
|
|
122
|
+
|
|
123
|
+
Get run details
|
|
116
124
|
"""
|
|
117
125
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
118
126
|
context.set_details('Method not implemented!')
|
|
119
127
|
raise NotImplementedError('Method not implemented!')
|
|
120
128
|
|
|
121
|
-
def
|
|
122
|
-
"""
|
|
129
|
+
def SendAppHeartbeat(self, request, context):
|
|
130
|
+
"""App heartbeat
|
|
123
131
|
"""
|
|
124
132
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
125
133
|
context.set_details('Method not implemented!')
|
|
126
134
|
raise NotImplementedError('Method not implemented!')
|
|
127
135
|
|
|
128
|
-
def
|
|
129
|
-
"""
|
|
136
|
+
def PullAppInputs(self, request, context):
|
|
137
|
+
"""Pull app inputs
|
|
130
138
|
"""
|
|
131
139
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
132
140
|
context.set_details('Method not implemented!')
|
|
133
141
|
raise NotImplementedError('Method not implemented!')
|
|
134
142
|
|
|
135
|
-
def
|
|
136
|
-
"""Push
|
|
143
|
+
def PushAppOutputs(self, request, context):
|
|
144
|
+
"""Push app outputs
|
|
137
145
|
"""
|
|
138
146
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
139
147
|
context.set_details('Method not implemented!')
|
|
140
148
|
raise NotImplementedError('Method not implemented!')
|
|
141
149
|
|
|
142
|
-
def
|
|
143
|
-
"""
|
|
150
|
+
def PushObject(self, request, context):
|
|
151
|
+
"""///////////////////////////////////////////////////////////////////////////
|
|
152
|
+
Specific endpoints shared by ServerAppIo and ClientAppIo
|
|
153
|
+
///////////////////////////////////////////////////////////////////////////
|
|
154
|
+
|
|
155
|
+
Push Object
|
|
144
156
|
"""
|
|
145
157
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
146
158
|
context.set_details('Method not implemented!')
|
|
147
159
|
raise NotImplementedError('Method not implemented!')
|
|
148
160
|
|
|
149
|
-
def
|
|
150
|
-
"""
|
|
161
|
+
def PullObject(self, request, context):
|
|
162
|
+
"""Pull Object
|
|
151
163
|
"""
|
|
152
164
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
153
165
|
context.set_details('Method not implemented!')
|
|
154
166
|
raise NotImplementedError('Method not implemented!')
|
|
155
167
|
|
|
156
|
-
def
|
|
157
|
-
"""
|
|
168
|
+
def ConfirmMessageReceived(self, request, context):
|
|
169
|
+
"""Confirm Message Received
|
|
158
170
|
"""
|
|
159
171
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
160
172
|
context.set_details('Method not implemented!')
|
|
161
173
|
raise NotImplementedError('Method not implemented!')
|
|
162
174
|
|
|
163
|
-
def
|
|
164
|
-
"""
|
|
175
|
+
def PushMessage(self, request, context):
|
|
176
|
+
"""///////////////////////////////////////////////////////////////////////////
|
|
177
|
+
Specific endpoints for ClientAppIo
|
|
178
|
+
///////////////////////////////////////////////////////////////////////////
|
|
179
|
+
|
|
180
|
+
Push Message
|
|
165
181
|
"""
|
|
166
182
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
167
183
|
context.set_details('Method not implemented!')
|
|
168
184
|
raise NotImplementedError('Method not implemented!')
|
|
169
185
|
|
|
170
|
-
def
|
|
171
|
-
"""
|
|
186
|
+
def PullMessage(self, request, context):
|
|
187
|
+
"""Pull Message
|
|
172
188
|
"""
|
|
173
189
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
174
190
|
context.set_details('Method not implemented!')
|
|
@@ -192,31 +208,21 @@ def add_ClientAppIoServicer_to_server(servicer, server):
|
|
|
192
208
|
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
|
|
193
209
|
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
|
|
194
210
|
),
|
|
195
|
-
'
|
|
196
|
-
servicer.
|
|
211
|
+
'SendAppHeartbeat': grpc.unary_unary_rpc_method_handler(
|
|
212
|
+
servicer.SendAppHeartbeat,
|
|
213
|
+
request_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.FromString,
|
|
214
|
+
response_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.SerializeToString,
|
|
215
|
+
),
|
|
216
|
+
'PullAppInputs': grpc.unary_unary_rpc_method_handler(
|
|
217
|
+
servicer.PullAppInputs,
|
|
197
218
|
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.FromString,
|
|
198
219
|
response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.SerializeToString,
|
|
199
220
|
),
|
|
200
|
-
'
|
|
201
|
-
servicer.
|
|
221
|
+
'PushAppOutputs': grpc.unary_unary_rpc_method_handler(
|
|
222
|
+
servicer.PushAppOutputs,
|
|
202
223
|
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.FromString,
|
|
203
224
|
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.SerializeToString,
|
|
204
225
|
),
|
|
205
|
-
'PushMessage': grpc.unary_unary_rpc_method_handler(
|
|
206
|
-
servicer.PushMessage,
|
|
207
|
-
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.FromString,
|
|
208
|
-
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.SerializeToString,
|
|
209
|
-
),
|
|
210
|
-
'PullMessage': grpc.unary_unary_rpc_method_handler(
|
|
211
|
-
servicer.PullMessage,
|
|
212
|
-
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
|
|
213
|
-
response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
|
|
214
|
-
),
|
|
215
|
-
'SendAppHeartbeat': grpc.unary_unary_rpc_method_handler(
|
|
216
|
-
servicer.SendAppHeartbeat,
|
|
217
|
-
request_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.FromString,
|
|
218
|
-
response_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.SerializeToString,
|
|
219
|
-
),
|
|
220
226
|
'PushObject': grpc.unary_unary_rpc_method_handler(
|
|
221
227
|
servicer.PushObject,
|
|
222
228
|
request_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.FromString,
|
|
@@ -232,6 +238,16 @@ def add_ClientAppIoServicer_to_server(servicer, server):
|
|
|
232
238
|
request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
|
|
233
239
|
response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
|
|
234
240
|
),
|
|
241
|
+
'PushMessage': grpc.unary_unary_rpc_method_handler(
|
|
242
|
+
servicer.PushMessage,
|
|
243
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.FromString,
|
|
244
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.SerializeToString,
|
|
245
|
+
),
|
|
246
|
+
'PullMessage': grpc.unary_unary_rpc_method_handler(
|
|
247
|
+
servicer.PullMessage,
|
|
248
|
+
request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
|
|
249
|
+
response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
|
|
250
|
+
),
|
|
235
251
|
}
|
|
236
252
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
237
253
|
'flwr.proto.ClientAppIo', rpc_method_handlers)
|
|
@@ -325,7 +341,7 @@ class ClientAppIo(object):
|
|
|
325
341
|
_registered_method=True)
|
|
326
342
|
|
|
327
343
|
@staticmethod
|
|
328
|
-
def
|
|
344
|
+
def SendAppHeartbeat(request,
|
|
329
345
|
target,
|
|
330
346
|
options=(),
|
|
331
347
|
channel_credentials=None,
|
|
@@ -338,9 +354,9 @@ class ClientAppIo(object):
|
|
|
338
354
|
return grpc.experimental.unary_unary(
|
|
339
355
|
request,
|
|
340
356
|
target,
|
|
341
|
-
'/flwr.proto.ClientAppIo/
|
|
342
|
-
|
|
343
|
-
|
|
357
|
+
'/flwr.proto.ClientAppIo/SendAppHeartbeat',
|
|
358
|
+
flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatRequest.SerializeToString,
|
|
359
|
+
flwr_dot_proto_dot_heartbeat__pb2.SendAppHeartbeatResponse.FromString,
|
|
344
360
|
options,
|
|
345
361
|
channel_credentials,
|
|
346
362
|
insecure,
|
|
@@ -352,7 +368,7 @@ class ClientAppIo(object):
|
|
|
352
368
|
_registered_method=True)
|
|
353
369
|
|
|
354
370
|
@staticmethod
|
|
355
|
-
def
|
|
371
|
+
def PullAppInputs(request,
|
|
356
372
|
target,
|
|
357
373
|
options=(),
|
|
358
374
|
channel_credentials=None,
|
|
@@ -365,9 +381,9 @@ class ClientAppIo(object):
|
|
|
365
381
|
return grpc.experimental.unary_unary(
|
|
366
382
|
request,
|
|
367
383
|
target,
|
|
368
|
-
'/flwr.proto.ClientAppIo/
|
|
369
|
-
flwr_dot_proto_dot_appio__pb2.
|
|
370
|
-
flwr_dot_proto_dot_appio__pb2.
|
|
384
|
+
'/flwr.proto.ClientAppIo/PullAppInputs',
|
|
385
|
+
flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
|
|
386
|
+
flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
|
|
371
387
|
options,
|
|
372
388
|
channel_credentials,
|
|
373
389
|
insecure,
|
|
@@ -379,7 +395,7 @@ class ClientAppIo(object):
|
|
|
379
395
|
_registered_method=True)
|
|
380
396
|
|
|
381
397
|
@staticmethod
|
|
382
|
-
def
|
|
398
|
+
def PushAppOutputs(request,
|
|
383
399
|
target,
|
|
384
400
|
options=(),
|
|
385
401
|
channel_credentials=None,
|
|
@@ -392,9 +408,9 @@ class ClientAppIo(object):
|
|
|
392
408
|
return grpc.experimental.unary_unary(
|
|
393
409
|
request,
|
|
394
410
|
target,
|
|
395
|
-
'/flwr.proto.ClientAppIo/
|
|
396
|
-
flwr_dot_proto_dot_appio__pb2.
|
|
397
|
-
flwr_dot_proto_dot_appio__pb2.
|
|
411
|
+
'/flwr.proto.ClientAppIo/PushAppOutputs',
|
|
412
|
+
flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
|
|
413
|
+
flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
|
|
398
414
|
options,
|
|
399
415
|
channel_credentials,
|
|
400
416
|
insecure,
|
|
@@ -406,7 +422,7 @@ class ClientAppIo(object):
|
|
|
406
422
|
_registered_method=True)
|
|
407
423
|
|
|
408
424
|
@staticmethod
|
|
409
|
-
def
|
|
425
|
+
def PushObject(request,
|
|
410
426
|
target,
|
|
411
427
|
options=(),
|
|
412
428
|
channel_credentials=None,
|
|
@@ -419,9 +435,9 @@ class ClientAppIo(object):
|
|
|
419
435
|
return grpc.experimental.unary_unary(
|
|
420
436
|
request,
|
|
421
437
|
target,
|
|
422
|
-
'/flwr.proto.ClientAppIo/
|
|
423
|
-
|
|
424
|
-
|
|
438
|
+
'/flwr.proto.ClientAppIo/PushObject',
|
|
439
|
+
flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
|
|
440
|
+
flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
|
|
425
441
|
options,
|
|
426
442
|
channel_credentials,
|
|
427
443
|
insecure,
|
|
@@ -433,7 +449,7 @@ class ClientAppIo(object):
|
|
|
433
449
|
_registered_method=True)
|
|
434
450
|
|
|
435
451
|
@staticmethod
|
|
436
|
-
def
|
|
452
|
+
def PullObject(request,
|
|
437
453
|
target,
|
|
438
454
|
options=(),
|
|
439
455
|
channel_credentials=None,
|
|
@@ -446,9 +462,9 @@ class ClientAppIo(object):
|
|
|
446
462
|
return grpc.experimental.unary_unary(
|
|
447
463
|
request,
|
|
448
464
|
target,
|
|
449
|
-
'/flwr.proto.ClientAppIo/
|
|
450
|
-
|
|
451
|
-
|
|
465
|
+
'/flwr.proto.ClientAppIo/PullObject',
|
|
466
|
+
flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
|
|
467
|
+
flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
|
452
468
|
options,
|
|
453
469
|
channel_credentials,
|
|
454
470
|
insecure,
|
|
@@ -460,7 +476,7 @@ class ClientAppIo(object):
|
|
|
460
476
|
_registered_method=True)
|
|
461
477
|
|
|
462
478
|
@staticmethod
|
|
463
|
-
def
|
|
479
|
+
def ConfirmMessageReceived(request,
|
|
464
480
|
target,
|
|
465
481
|
options=(),
|
|
466
482
|
channel_credentials=None,
|
|
@@ -473,9 +489,9 @@ class ClientAppIo(object):
|
|
|
473
489
|
return grpc.experimental.unary_unary(
|
|
474
490
|
request,
|
|
475
491
|
target,
|
|
476
|
-
'/flwr.proto.ClientAppIo/
|
|
477
|
-
flwr_dot_proto_dot_message__pb2.
|
|
478
|
-
flwr_dot_proto_dot_message__pb2.
|
|
492
|
+
'/flwr.proto.ClientAppIo/ConfirmMessageReceived',
|
|
493
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
|
494
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
|
479
495
|
options,
|
|
480
496
|
channel_credentials,
|
|
481
497
|
insecure,
|
|
@@ -487,7 +503,7 @@ class ClientAppIo(object):
|
|
|
487
503
|
_registered_method=True)
|
|
488
504
|
|
|
489
505
|
@staticmethod
|
|
490
|
-
def
|
|
506
|
+
def PushMessage(request,
|
|
491
507
|
target,
|
|
492
508
|
options=(),
|
|
493
509
|
channel_credentials=None,
|
|
@@ -500,9 +516,9 @@ class ClientAppIo(object):
|
|
|
500
516
|
return grpc.experimental.unary_unary(
|
|
501
517
|
request,
|
|
502
518
|
target,
|
|
503
|
-
'/flwr.proto.ClientAppIo/
|
|
504
|
-
|
|
505
|
-
|
|
519
|
+
'/flwr.proto.ClientAppIo/PushMessage',
|
|
520
|
+
flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
|
|
521
|
+
flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
|
|
506
522
|
options,
|
|
507
523
|
channel_credentials,
|
|
508
524
|
insecure,
|
|
@@ -514,7 +530,7 @@ class ClientAppIo(object):
|
|
|
514
530
|
_registered_method=True)
|
|
515
531
|
|
|
516
532
|
@staticmethod
|
|
517
|
-
def
|
|
533
|
+
def PullMessage(request,
|
|
518
534
|
target,
|
|
519
535
|
options=(),
|
|
520
536
|
channel_credentials=None,
|
|
@@ -527,9 +543,9 @@ class ClientAppIo(object):
|
|
|
527
543
|
return grpc.experimental.unary_unary(
|
|
528
544
|
request,
|
|
529
545
|
target,
|
|
530
|
-
'/flwr.proto.ClientAppIo/
|
|
531
|
-
|
|
532
|
-
|
|
546
|
+
'/flwr.proto.ClientAppIo/PullMessage',
|
|
547
|
+
flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
|
|
548
|
+
flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
|
|
533
549
|
options,
|
|
534
550
|
channel_credentials,
|
|
535
551
|
insecure,
|