flwr-nightly 1.15.0.dev20250104__py3-none-any.whl → 1.15.0.dev20250123__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/cli/cli_user_auth_interceptor.py +6 -2
- flwr/cli/config_utils.py +23 -146
- flwr/cli/constant.py +27 -0
- flwr/cli/install.py +1 -1
- flwr/cli/log.py +17 -2
- flwr/cli/login/login.py +20 -5
- flwr/cli/ls.py +10 -2
- flwr/cli/run/run.py +20 -10
- flwr/cli/stop.py +9 -1
- flwr/cli/utils.py +4 -4
- flwr/client/app.py +36 -48
- flwr/client/clientapp/app.py +4 -6
- flwr/client/clientapp/utils.py +1 -1
- flwr/client/grpc_client/connection.py +0 -6
- flwr/client/grpc_rere_client/client_interceptor.py +19 -119
- flwr/client/grpc_rere_client/connection.py +34 -24
- flwr/client/grpc_rere_client/grpc_adapter.py +16 -0
- flwr/client/rest_client/connection.py +34 -26
- flwr/client/supernode/app.py +14 -20
- flwr/common/auth_plugin/auth_plugin.py +34 -23
- flwr/common/config.py +152 -15
- flwr/common/constant.py +11 -8
- flwr/common/exit/__init__.py +24 -0
- flwr/common/exit/exit.py +99 -0
- flwr/common/exit/exit_code.py +93 -0
- flwr/common/exit_handlers.py +24 -10
- flwr/common/grpc.py +161 -3
- flwr/common/logger.py +1 -1
- flwr/common/secure_aggregation/crypto/symmetric_encryption.py +45 -0
- flwr/common/serde.py +6 -4
- flwr/common/typing.py +20 -0
- flwr/proto/clientappio_pb2.py +13 -3
- flwr/proto/clientappio_pb2_grpc.py +63 -12
- flwr/proto/error_pb2.py +13 -3
- flwr/proto/error_pb2_grpc.py +20 -0
- flwr/proto/exec_pb2.py +27 -29
- flwr/proto/exec_pb2.pyi +27 -54
- flwr/proto/exec_pb2_grpc.py +105 -24
- flwr/proto/fab_pb2.py +13 -3
- flwr/proto/fab_pb2_grpc.py +20 -0
- flwr/proto/fleet_pb2.py +54 -31
- flwr/proto/fleet_pb2.pyi +84 -0
- flwr/proto/fleet_pb2_grpc.py +207 -28
- flwr/proto/fleet_pb2_grpc.pyi +26 -0
- flwr/proto/grpcadapter_pb2.py +14 -4
- flwr/proto/grpcadapter_pb2_grpc.py +35 -4
- flwr/proto/log_pb2.py +13 -3
- flwr/proto/log_pb2_grpc.py +20 -0
- flwr/proto/message_pb2.py +15 -5
- flwr/proto/message_pb2_grpc.py +20 -0
- flwr/proto/node_pb2.py +15 -5
- flwr/proto/node_pb2.pyi +1 -4
- flwr/proto/node_pb2_grpc.py +20 -0
- flwr/proto/recordset_pb2.py +18 -8
- flwr/proto/recordset_pb2_grpc.py +20 -0
- flwr/proto/run_pb2.py +16 -6
- flwr/proto/run_pb2_grpc.py +20 -0
- flwr/proto/serverappio_pb2.py +32 -14
- flwr/proto/serverappio_pb2.pyi +56 -0
- flwr/proto/serverappio_pb2_grpc.py +261 -44
- flwr/proto/serverappio_pb2_grpc.pyi +20 -0
- flwr/proto/simulationio_pb2.py +13 -3
- flwr/proto/simulationio_pb2_grpc.py +105 -24
- flwr/proto/task_pb2.py +13 -3
- flwr/proto/task_pb2_grpc.py +20 -0
- flwr/proto/transport_pb2.py +20 -10
- flwr/proto/transport_pb2_grpc.py +35 -4
- flwr/server/app.py +87 -38
- flwr/server/compat/app_utils.py +0 -1
- flwr/server/compat/driver_client_proxy.py +1 -2
- flwr/server/driver/grpc_driver.py +5 -2
- flwr/server/driver/inmemory_driver.py +2 -1
- flwr/server/serverapp/app.py +5 -6
- flwr/server/superlink/driver/serverappio_grpc.py +1 -1
- flwr/server/superlink/driver/serverappio_servicer.py +132 -14
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +20 -88
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +2 -165
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +38 -0
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +95 -168
- flwr/server/superlink/fleet/message_handler/message_handler.py +66 -5
- flwr/server/superlink/fleet/rest_rere/rest_api.py +28 -3
- flwr/server/superlink/fleet/vce/vce_api.py +2 -2
- flwr/server/superlink/linkstate/in_memory_linkstate.py +40 -48
- flwr/server/superlink/linkstate/linkstate.py +15 -22
- flwr/server/superlink/linkstate/sqlite_linkstate.py +80 -99
- flwr/server/superlink/linkstate/utils.py +18 -8
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
- flwr/server/utils/validator.py +9 -34
- flwr/simulation/app.py +4 -6
- flwr/simulation/legacy_app.py +4 -2
- flwr/simulation/run_simulation.py +1 -1
- flwr/superexec/exec_grpc.py +1 -1
- flwr/superexec/exec_servicer.py +23 -2
- {flwr_nightly-1.15.0.dev20250104.dist-info → flwr_nightly-1.15.0.dev20250123.dist-info}/METADATA +7 -7
- {flwr_nightly-1.15.0.dev20250104.dist-info → flwr_nightly-1.15.0.dev20250123.dist-info}/RECORD +98 -94
- {flwr_nightly-1.15.0.dev20250104.dist-info → flwr_nightly-1.15.0.dev20250123.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.15.0.dev20250104.dist-info → flwr_nightly-1.15.0.dev20250123.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.15.0.dev20250104.dist-info → flwr_nightly-1.15.0.dev20250123.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.69.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/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()
|
@@ -16,41 +26,54 @@ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
16
26
|
from flwr.proto import task_pb2 as flwr_dot_proto_dot_task__pb2
|
17
27
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
18
28
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
29
|
+
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
19
30
|
|
20
31
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"`\n\x12PushTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rtask_res_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\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\
|
32
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"`\n\x12PushTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rtask_res_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"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\"l\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\"a\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\"\xb0\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\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\xb6\x05\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12;\n\x04Ping\x12\x17.flwr.proto.PingRequest\x1a\x18.flwr.proto.PingResponse\"\x00\x12P\n\x0bPullTaskIns\x12\x1e.flwr.proto.PullTaskInsRequest\x1a\x1f.flwr.proto.PullTaskInsResponse\"\x00\x12S\n\x0cPullMessages\x12\x1f.flwr.proto.PullMessagesRequest\x1a .flwr.proto.PullMessagesResponse\"\x00\x12P\n\x0bPushTaskRes\x12\x1e.flwr.proto.PushTaskResRequest\x1a\x1f.flwr.proto.PushTaskResResponse\"\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\x62\x06proto3')
|
22
33
|
|
23
34
|
_globals = globals()
|
24
35
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
25
36
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.fleet_pb2', _globals)
|
26
|
-
if _descriptor._USE_C_DESCRIPTORS
|
27
|
-
DESCRIPTOR.
|
28
|
-
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY'].
|
37
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
38
|
+
DESCRIPTOR._loaded_options = None
|
39
|
+
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._loaded_options = None
|
29
40
|
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
30
|
-
_globals['
|
31
|
-
_globals['
|
32
|
-
_globals['
|
33
|
-
_globals['
|
34
|
-
_globals['
|
35
|
-
_globals['
|
36
|
-
_globals['
|
37
|
-
_globals['
|
38
|
-
_globals['
|
39
|
-
_globals['
|
40
|
-
_globals['
|
41
|
-
_globals['
|
42
|
-
_globals['
|
43
|
-
_globals['
|
44
|
-
_globals['
|
45
|
-
_globals['
|
46
|
-
_globals['
|
47
|
-
_globals['
|
48
|
-
_globals['
|
49
|
-
_globals['
|
50
|
-
_globals['
|
51
|
-
_globals['
|
52
|
-
_globals['
|
53
|
-
_globals['
|
54
|
-
_globals['
|
55
|
-
_globals['
|
41
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._loaded_options = None
|
42
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
43
|
+
_globals['_CREATENODEREQUEST']._serialized_start=154
|
44
|
+
_globals['_CREATENODEREQUEST']._serialized_end=196
|
45
|
+
_globals['_CREATENODERESPONSE']._serialized_start=198
|
46
|
+
_globals['_CREATENODERESPONSE']._serialized_end=250
|
47
|
+
_globals['_DELETENODEREQUEST']._serialized_start=252
|
48
|
+
_globals['_DELETENODEREQUEST']._serialized_end=303
|
49
|
+
_globals['_DELETENODERESPONSE']._serialized_start=305
|
50
|
+
_globals['_DELETENODERESPONSE']._serialized_end=325
|
51
|
+
_globals['_PINGREQUEST']._serialized_start=327
|
52
|
+
_globals['_PINGREQUEST']._serialized_end=395
|
53
|
+
_globals['_PINGRESPONSE']._serialized_start=397
|
54
|
+
_globals['_PINGRESPONSE']._serialized_end=428
|
55
|
+
_globals['_PULLTASKINSREQUEST']._serialized_start=430
|
56
|
+
_globals['_PULLTASKINSREQUEST']._serialized_end=500
|
57
|
+
_globals['_PULLTASKINSRESPONSE']._serialized_start=502
|
58
|
+
_globals['_PULLTASKINSRESPONSE']._serialized_end=609
|
59
|
+
_globals['_PUSHTASKRESREQUEST']._serialized_start=611
|
60
|
+
_globals['_PUSHTASKRESREQUEST']._serialized_end=707
|
61
|
+
_globals['_PUSHTASKRESRESPONSE']._serialized_start=710
|
62
|
+
_globals['_PUSHTASKRESRESPONSE']._serialized_end=884
|
63
|
+
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=838
|
64
|
+
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=884
|
65
|
+
_globals['_PULLMESSAGESREQUEST']._serialized_start=886
|
66
|
+
_globals['_PULLMESSAGESREQUEST']._serialized_end=960
|
67
|
+
_globals['_PULLMESSAGESRESPONSE']._serialized_start=962
|
68
|
+
_globals['_PULLMESSAGESRESPONSE']._serialized_end=1070
|
69
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_start=1072
|
70
|
+
_globals['_PUSHMESSAGESREQUEST']._serialized_end=1169
|
71
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_start=1172
|
72
|
+
_globals['_PUSHMESSAGESRESPONSE']._serialized_end=1348
|
73
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=838
|
74
|
+
_globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=884
|
75
|
+
_globals['_RECONNECT']._serialized_start=1350
|
76
|
+
_globals['_RECONNECT']._serialized_end=1380
|
77
|
+
_globals['_FLEET']._serialized_start=1383
|
78
|
+
_globals['_FLEET']._serialized_end=2077
|
56
79
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/fleet_pb2.pyi
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
isort:skip_file
|
4
4
|
"""
|
5
5
|
import builtins
|
6
|
+
import flwr.proto.message_pb2
|
6
7
|
import flwr.proto.node_pb2
|
7
8
|
import flwr.proto.task_pb2
|
8
9
|
import google.protobuf.descriptor
|
@@ -169,6 +170,89 @@ class PushTaskResResponse(google.protobuf.message.Message):
|
|
169
170
|
def ClearField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect","results",b"results"]) -> None: ...
|
170
171
|
global___PushTaskResResponse = PushTaskResResponse
|
171
172
|
|
173
|
+
class PullMessagesRequest(google.protobuf.message.Message):
|
174
|
+
"""PullMessages messages"""
|
175
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
176
|
+
NODE_FIELD_NUMBER: builtins.int
|
177
|
+
MESSAGE_IDS_FIELD_NUMBER: builtins.int
|
178
|
+
@property
|
179
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
180
|
+
@property
|
181
|
+
def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
182
|
+
def __init__(self,
|
183
|
+
*,
|
184
|
+
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
185
|
+
message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
186
|
+
) -> None: ...
|
187
|
+
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
188
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","node",b"node"]) -> None: ...
|
189
|
+
global___PullMessagesRequest = PullMessagesRequest
|
190
|
+
|
191
|
+
class PullMessagesResponse(google.protobuf.message.Message):
|
192
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
193
|
+
RECONNECT_FIELD_NUMBER: builtins.int
|
194
|
+
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
195
|
+
@property
|
196
|
+
def reconnect(self) -> global___Reconnect: ...
|
197
|
+
@property
|
198
|
+
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
199
|
+
def __init__(self,
|
200
|
+
*,
|
201
|
+
reconnect: typing.Optional[global___Reconnect] = ...,
|
202
|
+
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
203
|
+
) -> None: ...
|
204
|
+
def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
|
205
|
+
def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","reconnect",b"reconnect"]) -> None: ...
|
206
|
+
global___PullMessagesResponse = PullMessagesResponse
|
207
|
+
|
208
|
+
class PushMessagesRequest(google.protobuf.message.Message):
|
209
|
+
"""PushMessages messages"""
|
210
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
211
|
+
NODE_FIELD_NUMBER: builtins.int
|
212
|
+
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
213
|
+
@property
|
214
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
215
|
+
@property
|
216
|
+
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
217
|
+
def __init__(self,
|
218
|
+
*,
|
219
|
+
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
220
|
+
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
221
|
+
) -> None: ...
|
222
|
+
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
223
|
+
def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","node",b"node"]) -> None: ...
|
224
|
+
global___PushMessagesRequest = PushMessagesRequest
|
225
|
+
|
226
|
+
class PushMessagesResponse(google.protobuf.message.Message):
|
227
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
228
|
+
class ResultsEntry(google.protobuf.message.Message):
|
229
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
230
|
+
KEY_FIELD_NUMBER: builtins.int
|
231
|
+
VALUE_FIELD_NUMBER: builtins.int
|
232
|
+
key: typing.Text
|
233
|
+
value: builtins.int
|
234
|
+
def __init__(self,
|
235
|
+
*,
|
236
|
+
key: typing.Text = ...,
|
237
|
+
value: builtins.int = ...,
|
238
|
+
) -> None: ...
|
239
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
240
|
+
|
241
|
+
RECONNECT_FIELD_NUMBER: builtins.int
|
242
|
+
RESULTS_FIELD_NUMBER: builtins.int
|
243
|
+
@property
|
244
|
+
def reconnect(self) -> global___Reconnect: ...
|
245
|
+
@property
|
246
|
+
def results(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, builtins.int]: ...
|
247
|
+
def __init__(self,
|
248
|
+
*,
|
249
|
+
reconnect: typing.Optional[global___Reconnect] = ...,
|
250
|
+
results: typing.Optional[typing.Mapping[typing.Text, builtins.int]] = ...,
|
251
|
+
) -> None: ...
|
252
|
+
def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
|
253
|
+
def ClearField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect","results",b"results"]) -> None: ...
|
254
|
+
global___PushMessagesResponse = PushMessagesResponse
|
255
|
+
|
172
256
|
class Reconnect(google.protobuf.message.Message):
|
173
257
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
174
258
|
RECONNECT_FIELD_NUMBER: builtins.int
|
flwr/proto/fleet_pb2_grpc.py
CHANGED
@@ -1,11 +1,31 @@
|
|
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
|
|
5
6
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
6
7
|
from flwr.proto import fleet_pb2 as flwr_dot_proto_dot_fleet__pb2
|
7
8
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
8
9
|
|
10
|
+
GRPC_GENERATED_VERSION = '1.69.0'
|
11
|
+
GRPC_VERSION = grpc.__version__
|
12
|
+
_version_not_supported = False
|
13
|
+
|
14
|
+
try:
|
15
|
+
from grpc._utilities import first_version_is_lower
|
16
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
17
|
+
except ImportError:
|
18
|
+
_version_not_supported = True
|
19
|
+
|
20
|
+
if _version_not_supported:
|
21
|
+
raise RuntimeError(
|
22
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
23
|
+
+ f' but the generated code in flwr/proto/fleet_pb2_grpc.py depends on'
|
24
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
25
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
26
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
27
|
+
)
|
28
|
+
|
9
29
|
|
10
30
|
class FleetStub(object):
|
11
31
|
"""Missing associated documentation comment in .proto file."""
|
@@ -20,37 +40,47 @@ class FleetStub(object):
|
|
20
40
|
'/flwr.proto.Fleet/CreateNode',
|
21
41
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.CreateNodeRequest.SerializeToString,
|
22
42
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.CreateNodeResponse.FromString,
|
23
|
-
)
|
43
|
+
_registered_method=True)
|
24
44
|
self.DeleteNode = channel.unary_unary(
|
25
45
|
'/flwr.proto.Fleet/DeleteNode',
|
26
46
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeRequest.SerializeToString,
|
27
47
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeResponse.FromString,
|
28
|
-
)
|
48
|
+
_registered_method=True)
|
29
49
|
self.Ping = channel.unary_unary(
|
30
50
|
'/flwr.proto.Fleet/Ping',
|
31
51
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.PingRequest.SerializeToString,
|
32
52
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.PingResponse.FromString,
|
33
|
-
)
|
53
|
+
_registered_method=True)
|
34
54
|
self.PullTaskIns = channel.unary_unary(
|
35
55
|
'/flwr.proto.Fleet/PullTaskIns',
|
36
56
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.PullTaskInsRequest.SerializeToString,
|
37
57
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.PullTaskInsResponse.FromString,
|
38
|
-
)
|
58
|
+
_registered_method=True)
|
59
|
+
self.PullMessages = channel.unary_unary(
|
60
|
+
'/flwr.proto.Fleet/PullMessages',
|
61
|
+
request_serializer=flwr_dot_proto_dot_fleet__pb2.PullMessagesRequest.SerializeToString,
|
62
|
+
response_deserializer=flwr_dot_proto_dot_fleet__pb2.PullMessagesResponse.FromString,
|
63
|
+
_registered_method=True)
|
39
64
|
self.PushTaskRes = channel.unary_unary(
|
40
65
|
'/flwr.proto.Fleet/PushTaskRes',
|
41
66
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResRequest.SerializeToString,
|
42
67
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.FromString,
|
43
|
-
)
|
68
|
+
_registered_method=True)
|
69
|
+
self.PushMessages = channel.unary_unary(
|
70
|
+
'/flwr.proto.Fleet/PushMessages',
|
71
|
+
request_serializer=flwr_dot_proto_dot_fleet__pb2.PushMessagesRequest.SerializeToString,
|
72
|
+
response_deserializer=flwr_dot_proto_dot_fleet__pb2.PushMessagesResponse.FromString,
|
73
|
+
_registered_method=True)
|
44
74
|
self.GetRun = channel.unary_unary(
|
45
75
|
'/flwr.proto.Fleet/GetRun',
|
46
76
|
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
47
77
|
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
48
|
-
)
|
78
|
+
_registered_method=True)
|
49
79
|
self.GetFab = channel.unary_unary(
|
50
80
|
'/flwr.proto.Fleet/GetFab',
|
51
81
|
request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
52
82
|
response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
53
|
-
)
|
83
|
+
_registered_method=True)
|
54
84
|
|
55
85
|
|
56
86
|
class FleetServicer(object):
|
@@ -83,6 +113,13 @@ class FleetServicer(object):
|
|
83
113
|
context.set_details('Method not implemented!')
|
84
114
|
raise NotImplementedError('Method not implemented!')
|
85
115
|
|
116
|
+
def PullMessages(self, request, context):
|
117
|
+
"""HTTP API path: /api/v1/fleet/pull-messages
|
118
|
+
"""
|
119
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
120
|
+
context.set_details('Method not implemented!')
|
121
|
+
raise NotImplementedError('Method not implemented!')
|
122
|
+
|
86
123
|
def PushTaskRes(self, request, context):
|
87
124
|
"""Complete one or more tasks, if possible
|
88
125
|
|
@@ -92,6 +129,13 @@ class FleetServicer(object):
|
|
92
129
|
context.set_details('Method not implemented!')
|
93
130
|
raise NotImplementedError('Method not implemented!')
|
94
131
|
|
132
|
+
def PushMessages(self, request, context):
|
133
|
+
"""HTTP API path: /api/v1/fleet/push-messages
|
134
|
+
"""
|
135
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
136
|
+
context.set_details('Method not implemented!')
|
137
|
+
raise NotImplementedError('Method not implemented!')
|
138
|
+
|
95
139
|
def GetRun(self, request, context):
|
96
140
|
"""Missing associated documentation comment in .proto file."""
|
97
141
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
@@ -128,11 +172,21 @@ def add_FleetServicer_to_server(servicer, server):
|
|
128
172
|
request_deserializer=flwr_dot_proto_dot_fleet__pb2.PullTaskInsRequest.FromString,
|
129
173
|
response_serializer=flwr_dot_proto_dot_fleet__pb2.PullTaskInsResponse.SerializeToString,
|
130
174
|
),
|
175
|
+
'PullMessages': grpc.unary_unary_rpc_method_handler(
|
176
|
+
servicer.PullMessages,
|
177
|
+
request_deserializer=flwr_dot_proto_dot_fleet__pb2.PullMessagesRequest.FromString,
|
178
|
+
response_serializer=flwr_dot_proto_dot_fleet__pb2.PullMessagesResponse.SerializeToString,
|
179
|
+
),
|
131
180
|
'PushTaskRes': grpc.unary_unary_rpc_method_handler(
|
132
181
|
servicer.PushTaskRes,
|
133
182
|
request_deserializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResRequest.FromString,
|
134
183
|
response_serializer=flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.SerializeToString,
|
135
184
|
),
|
185
|
+
'PushMessages': grpc.unary_unary_rpc_method_handler(
|
186
|
+
servicer.PushMessages,
|
187
|
+
request_deserializer=flwr_dot_proto_dot_fleet__pb2.PushMessagesRequest.FromString,
|
188
|
+
response_serializer=flwr_dot_proto_dot_fleet__pb2.PushMessagesResponse.SerializeToString,
|
189
|
+
),
|
136
190
|
'GetRun': grpc.unary_unary_rpc_method_handler(
|
137
191
|
servicer.GetRun,
|
138
192
|
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
|
@@ -147,6 +201,7 @@ def add_FleetServicer_to_server(servicer, server):
|
|
147
201
|
generic_handler = grpc.method_handlers_generic_handler(
|
148
202
|
'flwr.proto.Fleet', rpc_method_handlers)
|
149
203
|
server.add_generic_rpc_handlers((generic_handler,))
|
204
|
+
server.add_registered_method_handlers('flwr.proto.Fleet', rpc_method_handlers)
|
150
205
|
|
151
206
|
|
152
207
|
# This class is part of an EXPERIMENTAL API.
|
@@ -164,11 +219,21 @@ class Fleet(object):
|
|
164
219
|
wait_for_ready=None,
|
165
220
|
timeout=None,
|
166
221
|
metadata=None):
|
167
|
-
return grpc.experimental.unary_unary(
|
222
|
+
return grpc.experimental.unary_unary(
|
223
|
+
request,
|
224
|
+
target,
|
225
|
+
'/flwr.proto.Fleet/CreateNode',
|
168
226
|
flwr_dot_proto_dot_fleet__pb2.CreateNodeRequest.SerializeToString,
|
169
227
|
flwr_dot_proto_dot_fleet__pb2.CreateNodeResponse.FromString,
|
170
|
-
options,
|
171
|
-
|
228
|
+
options,
|
229
|
+
channel_credentials,
|
230
|
+
insecure,
|
231
|
+
call_credentials,
|
232
|
+
compression,
|
233
|
+
wait_for_ready,
|
234
|
+
timeout,
|
235
|
+
metadata,
|
236
|
+
_registered_method=True)
|
172
237
|
|
173
238
|
@staticmethod
|
174
239
|
def DeleteNode(request,
|
@@ -181,11 +246,21 @@ class Fleet(object):
|
|
181
246
|
wait_for_ready=None,
|
182
247
|
timeout=None,
|
183
248
|
metadata=None):
|
184
|
-
return grpc.experimental.unary_unary(
|
249
|
+
return grpc.experimental.unary_unary(
|
250
|
+
request,
|
251
|
+
target,
|
252
|
+
'/flwr.proto.Fleet/DeleteNode',
|
185
253
|
flwr_dot_proto_dot_fleet__pb2.DeleteNodeRequest.SerializeToString,
|
186
254
|
flwr_dot_proto_dot_fleet__pb2.DeleteNodeResponse.FromString,
|
187
|
-
options,
|
188
|
-
|
255
|
+
options,
|
256
|
+
channel_credentials,
|
257
|
+
insecure,
|
258
|
+
call_credentials,
|
259
|
+
compression,
|
260
|
+
wait_for_ready,
|
261
|
+
timeout,
|
262
|
+
metadata,
|
263
|
+
_registered_method=True)
|
189
264
|
|
190
265
|
@staticmethod
|
191
266
|
def Ping(request,
|
@@ -198,11 +273,21 @@ class Fleet(object):
|
|
198
273
|
wait_for_ready=None,
|
199
274
|
timeout=None,
|
200
275
|
metadata=None):
|
201
|
-
return grpc.experimental.unary_unary(
|
276
|
+
return grpc.experimental.unary_unary(
|
277
|
+
request,
|
278
|
+
target,
|
279
|
+
'/flwr.proto.Fleet/Ping',
|
202
280
|
flwr_dot_proto_dot_fleet__pb2.PingRequest.SerializeToString,
|
203
281
|
flwr_dot_proto_dot_fleet__pb2.PingResponse.FromString,
|
204
|
-
options,
|
205
|
-
|
282
|
+
options,
|
283
|
+
channel_credentials,
|
284
|
+
insecure,
|
285
|
+
call_credentials,
|
286
|
+
compression,
|
287
|
+
wait_for_ready,
|
288
|
+
timeout,
|
289
|
+
metadata,
|
290
|
+
_registered_method=True)
|
206
291
|
|
207
292
|
@staticmethod
|
208
293
|
def PullTaskIns(request,
|
@@ -215,11 +300,48 @@ class Fleet(object):
|
|
215
300
|
wait_for_ready=None,
|
216
301
|
timeout=None,
|
217
302
|
metadata=None):
|
218
|
-
return grpc.experimental.unary_unary(
|
303
|
+
return grpc.experimental.unary_unary(
|
304
|
+
request,
|
305
|
+
target,
|
306
|
+
'/flwr.proto.Fleet/PullTaskIns',
|
219
307
|
flwr_dot_proto_dot_fleet__pb2.PullTaskInsRequest.SerializeToString,
|
220
308
|
flwr_dot_proto_dot_fleet__pb2.PullTaskInsResponse.FromString,
|
221
|
-
options,
|
222
|
-
|
309
|
+
options,
|
310
|
+
channel_credentials,
|
311
|
+
insecure,
|
312
|
+
call_credentials,
|
313
|
+
compression,
|
314
|
+
wait_for_ready,
|
315
|
+
timeout,
|
316
|
+
metadata,
|
317
|
+
_registered_method=True)
|
318
|
+
|
319
|
+
@staticmethod
|
320
|
+
def PullMessages(request,
|
321
|
+
target,
|
322
|
+
options=(),
|
323
|
+
channel_credentials=None,
|
324
|
+
call_credentials=None,
|
325
|
+
insecure=False,
|
326
|
+
compression=None,
|
327
|
+
wait_for_ready=None,
|
328
|
+
timeout=None,
|
329
|
+
metadata=None):
|
330
|
+
return grpc.experimental.unary_unary(
|
331
|
+
request,
|
332
|
+
target,
|
333
|
+
'/flwr.proto.Fleet/PullMessages',
|
334
|
+
flwr_dot_proto_dot_fleet__pb2.PullMessagesRequest.SerializeToString,
|
335
|
+
flwr_dot_proto_dot_fleet__pb2.PullMessagesResponse.FromString,
|
336
|
+
options,
|
337
|
+
channel_credentials,
|
338
|
+
insecure,
|
339
|
+
call_credentials,
|
340
|
+
compression,
|
341
|
+
wait_for_ready,
|
342
|
+
timeout,
|
343
|
+
metadata,
|
344
|
+
_registered_method=True)
|
223
345
|
|
224
346
|
@staticmethod
|
225
347
|
def PushTaskRes(request,
|
@@ -232,11 +354,48 @@ class Fleet(object):
|
|
232
354
|
wait_for_ready=None,
|
233
355
|
timeout=None,
|
234
356
|
metadata=None):
|
235
|
-
return grpc.experimental.unary_unary(
|
357
|
+
return grpc.experimental.unary_unary(
|
358
|
+
request,
|
359
|
+
target,
|
360
|
+
'/flwr.proto.Fleet/PushTaskRes',
|
236
361
|
flwr_dot_proto_dot_fleet__pb2.PushTaskResRequest.SerializeToString,
|
237
362
|
flwr_dot_proto_dot_fleet__pb2.PushTaskResResponse.FromString,
|
238
|
-
options,
|
239
|
-
|
363
|
+
options,
|
364
|
+
channel_credentials,
|
365
|
+
insecure,
|
366
|
+
call_credentials,
|
367
|
+
compression,
|
368
|
+
wait_for_ready,
|
369
|
+
timeout,
|
370
|
+
metadata,
|
371
|
+
_registered_method=True)
|
372
|
+
|
373
|
+
@staticmethod
|
374
|
+
def PushMessages(request,
|
375
|
+
target,
|
376
|
+
options=(),
|
377
|
+
channel_credentials=None,
|
378
|
+
call_credentials=None,
|
379
|
+
insecure=False,
|
380
|
+
compression=None,
|
381
|
+
wait_for_ready=None,
|
382
|
+
timeout=None,
|
383
|
+
metadata=None):
|
384
|
+
return grpc.experimental.unary_unary(
|
385
|
+
request,
|
386
|
+
target,
|
387
|
+
'/flwr.proto.Fleet/PushMessages',
|
388
|
+
flwr_dot_proto_dot_fleet__pb2.PushMessagesRequest.SerializeToString,
|
389
|
+
flwr_dot_proto_dot_fleet__pb2.PushMessagesResponse.FromString,
|
390
|
+
options,
|
391
|
+
channel_credentials,
|
392
|
+
insecure,
|
393
|
+
call_credentials,
|
394
|
+
compression,
|
395
|
+
wait_for_ready,
|
396
|
+
timeout,
|
397
|
+
metadata,
|
398
|
+
_registered_method=True)
|
240
399
|
|
241
400
|
@staticmethod
|
242
401
|
def GetRun(request,
|
@@ -249,11 +408,21 @@ class Fleet(object):
|
|
249
408
|
wait_for_ready=None,
|
250
409
|
timeout=None,
|
251
410
|
metadata=None):
|
252
|
-
return grpc.experimental.unary_unary(
|
411
|
+
return grpc.experimental.unary_unary(
|
412
|
+
request,
|
413
|
+
target,
|
414
|
+
'/flwr.proto.Fleet/GetRun',
|
253
415
|
flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
254
416
|
flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
255
|
-
options,
|
256
|
-
|
417
|
+
options,
|
418
|
+
channel_credentials,
|
419
|
+
insecure,
|
420
|
+
call_credentials,
|
421
|
+
compression,
|
422
|
+
wait_for_ready,
|
423
|
+
timeout,
|
424
|
+
metadata,
|
425
|
+
_registered_method=True)
|
257
426
|
|
258
427
|
@staticmethod
|
259
428
|
def GetFab(request,
|
@@ -266,8 +435,18 @@ class Fleet(object):
|
|
266
435
|
wait_for_ready=None,
|
267
436
|
timeout=None,
|
268
437
|
metadata=None):
|
269
|
-
return grpc.experimental.unary_unary(
|
438
|
+
return grpc.experimental.unary_unary(
|
439
|
+
request,
|
440
|
+
target,
|
441
|
+
'/flwr.proto.Fleet/GetFab',
|
270
442
|
flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
271
443
|
flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
272
|
-
options,
|
273
|
-
|
444
|
+
options,
|
445
|
+
channel_credentials,
|
446
|
+
insecure,
|
447
|
+
call_credentials,
|
448
|
+
compression,
|
449
|
+
wait_for_ready,
|
450
|
+
timeout,
|
451
|
+
metadata,
|
452
|
+
_registered_method=True)
|
flwr/proto/fleet_pb2_grpc.pyi
CHANGED
@@ -30,6 +30,11 @@ class FleetStub:
|
|
30
30
|
HTTP API path: /api/v1/fleet/pull-task-ins
|
31
31
|
"""
|
32
32
|
|
33
|
+
PullMessages: grpc.UnaryUnaryMultiCallable[
|
34
|
+
flwr.proto.fleet_pb2.PullMessagesRequest,
|
35
|
+
flwr.proto.fleet_pb2.PullMessagesResponse]
|
36
|
+
"""HTTP API path: /api/v1/fleet/pull-messages"""
|
37
|
+
|
33
38
|
PushTaskRes: grpc.UnaryUnaryMultiCallable[
|
34
39
|
flwr.proto.fleet_pb2.PushTaskResRequest,
|
35
40
|
flwr.proto.fleet_pb2.PushTaskResResponse]
|
@@ -38,6 +43,11 @@ class FleetStub:
|
|
38
43
|
HTTP API path: /api/v1/fleet/push-task-res
|
39
44
|
"""
|
40
45
|
|
46
|
+
PushMessages: grpc.UnaryUnaryMultiCallable[
|
47
|
+
flwr.proto.fleet_pb2.PushMessagesRequest,
|
48
|
+
flwr.proto.fleet_pb2.PushMessagesResponse]
|
49
|
+
"""HTTP API path: /api/v1/fleet/push-messages"""
|
50
|
+
|
41
51
|
GetRun: grpc.UnaryUnaryMultiCallable[
|
42
52
|
flwr.proto.run_pb2.GetRunRequest,
|
43
53
|
flwr.proto.run_pb2.GetRunResponse]
|
@@ -78,6 +88,14 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
78
88
|
"""
|
79
89
|
pass
|
80
90
|
|
91
|
+
@abc.abstractmethod
|
92
|
+
def PullMessages(self,
|
93
|
+
request: flwr.proto.fleet_pb2.PullMessagesRequest,
|
94
|
+
context: grpc.ServicerContext,
|
95
|
+
) -> flwr.proto.fleet_pb2.PullMessagesResponse:
|
96
|
+
"""HTTP API path: /api/v1/fleet/pull-messages"""
|
97
|
+
pass
|
98
|
+
|
81
99
|
@abc.abstractmethod
|
82
100
|
def PushTaskRes(self,
|
83
101
|
request: flwr.proto.fleet_pb2.PushTaskResRequest,
|
@@ -89,6 +107,14 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
89
107
|
"""
|
90
108
|
pass
|
91
109
|
|
110
|
+
@abc.abstractmethod
|
111
|
+
def PushMessages(self,
|
112
|
+
request: flwr.proto.fleet_pb2.PushMessagesRequest,
|
113
|
+
context: grpc.ServicerContext,
|
114
|
+
) -> flwr.proto.fleet_pb2.PushMessagesResponse:
|
115
|
+
"""HTTP API path: /api/v1/fleet/push-messages"""
|
116
|
+
pass
|
117
|
+
|
92
118
|
@abc.abstractmethod
|
93
119
|
def GetRun(self,
|
94
120
|
request: flwr.proto.run_pb2.GetRunRequest,
|