flwr 1.18.0__py3-none-any.whl → 1.20.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/app/__init__.py +15 -0
- flwr/app/error.py +68 -0
- flwr/app/metadata.py +223 -0
- flwr/cli/build.py +94 -59
- flwr/cli/log.py +3 -3
- flwr/cli/login/login.py +3 -7
- flwr/cli/ls.py +15 -36
- flwr/cli/new/new.py +12 -4
- flwr/cli/new/templates/app/README.flowertune.md.tpl +2 -0
- flwr/cli/new/templates/app/README.md.tpl +5 -0
- flwr/cli/new/templates/app/code/client.baseline.py.tpl +1 -1
- flwr/cli/new/templates/app/code/model.baseline.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.baseline.py.tpl +2 -3
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +25 -17
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +13 -1
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +21 -2
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +18 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +19 -2
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +18 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +20 -3
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +18 -1
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +18 -1
- flwr/cli/run/run.py +48 -49
- flwr/cli/stop.py +2 -2
- flwr/cli/utils.py +38 -5
- flwr/client/__init__.py +2 -2
- flwr/client/client_app.py +1 -1
- flwr/client/clientapp/__init__.py +0 -7
- flwr/client/grpc_adapter_client/connection.py +15 -8
- flwr/client/grpc_rere_client/connection.py +142 -97
- flwr/client/grpc_rere_client/grpc_adapter.py +34 -6
- flwr/client/message_handler/message_handler.py +1 -1
- flwr/client/mod/comms_mods.py +36 -17
- flwr/client/rest_client/connection.py +176 -103
- flwr/clientapp/__init__.py +15 -0
- flwr/common/__init__.py +2 -2
- flwr/common/auth_plugin/__init__.py +2 -0
- flwr/common/auth_plugin/auth_plugin.py +29 -3
- flwr/common/constant.py +39 -8
- flwr/common/event_log_plugin/event_log_plugin.py +3 -3
- flwr/common/exit/exit_code.py +16 -1
- flwr/common/exit_handlers.py +30 -0
- flwr/common/grpc.py +12 -1
- flwr/common/heartbeat.py +165 -0
- flwr/common/inflatable.py +290 -0
- flwr/common/inflatable_protobuf_utils.py +141 -0
- flwr/common/inflatable_utils.py +508 -0
- flwr/common/message.py +110 -242
- flwr/common/record/__init__.py +2 -1
- flwr/common/record/array.py +402 -0
- flwr/common/record/arraychunk.py +59 -0
- flwr/common/record/arrayrecord.py +103 -225
- flwr/common/record/configrecord.py +59 -4
- flwr/common/record/conversion_utils.py +1 -1
- flwr/common/record/metricrecord.py +55 -4
- flwr/common/record/recorddict.py +69 -1
- flwr/common/recorddict_compat.py +2 -2
- flwr/common/retry_invoker.py +5 -1
- flwr/common/serde.py +59 -211
- flwr/common/serde_utils.py +175 -0
- flwr/common/typing.py +5 -3
- flwr/compat/__init__.py +15 -0
- flwr/compat/client/__init__.py +15 -0
- flwr/{client → compat/client}/app.py +28 -185
- flwr/compat/common/__init__.py +15 -0
- flwr/compat/server/__init__.py +15 -0
- flwr/compat/server/app.py +174 -0
- flwr/compat/simulation/__init__.py +15 -0
- flwr/proto/appio_pb2.py +43 -0
- flwr/proto/appio_pb2.pyi +151 -0
- flwr/proto/appio_pb2_grpc.py +4 -0
- flwr/proto/appio_pb2_grpc.pyi +4 -0
- flwr/proto/clientappio_pb2.py +12 -19
- flwr/proto/clientappio_pb2.pyi +23 -101
- flwr/proto/clientappio_pb2_grpc.py +269 -28
- flwr/proto/clientappio_pb2_grpc.pyi +114 -20
- flwr/proto/fleet_pb2.py +24 -27
- flwr/proto/fleet_pb2.pyi +19 -35
- flwr/proto/fleet_pb2_grpc.py +117 -13
- flwr/proto/fleet_pb2_grpc.pyi +47 -6
- flwr/proto/heartbeat_pb2.py +33 -0
- flwr/proto/heartbeat_pb2.pyi +66 -0
- flwr/proto/heartbeat_pb2_grpc.py +4 -0
- flwr/proto/heartbeat_pb2_grpc.pyi +4 -0
- flwr/proto/message_pb2.py +28 -11
- flwr/proto/message_pb2.pyi +125 -0
- flwr/proto/recorddict_pb2.py +16 -28
- flwr/proto/recorddict_pb2.pyi +46 -64
- flwr/proto/run_pb2.py +24 -32
- flwr/proto/run_pb2.pyi +4 -52
- flwr/proto/serverappio_pb2.py +9 -23
- flwr/proto/serverappio_pb2.pyi +0 -110
- flwr/proto/serverappio_pb2_grpc.py +177 -72
- flwr/proto/serverappio_pb2_grpc.pyi +75 -33
- flwr/proto/simulationio_pb2.py +12 -11
- flwr/proto/simulationio_pb2_grpc.py +35 -0
- flwr/proto/simulationio_pb2_grpc.pyi +14 -0
- flwr/server/__init__.py +1 -1
- flwr/server/app.py +69 -187
- flwr/server/compat/app_utils.py +50 -28
- flwr/server/fleet_event_log_interceptor.py +6 -2
- flwr/server/grid/grpc_grid.py +148 -41
- flwr/server/grid/inmemory_grid.py +5 -4
- flwr/server/serverapp/app.py +45 -17
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +21 -3
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +102 -8
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
- flwr/server/superlink/fleet/message_handler/message_handler.py +130 -19
- flwr/server/superlink/fleet/rest_rere/rest_api.py +73 -13
- flwr/server/superlink/fleet/vce/vce_api.py +6 -3
- flwr/server/superlink/linkstate/in_memory_linkstate.py +138 -43
- flwr/server/superlink/linkstate/linkstate.py +53 -20
- flwr/server/superlink/linkstate/sqlite_linkstate.py +149 -55
- flwr/server/superlink/linkstate/utils.py +33 -29
- flwr/server/superlink/serverappio/serverappio_grpc.py +4 -1
- flwr/server/superlink/serverappio/serverappio_servicer.py +230 -84
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
- flwr/server/superlink/simulation/simulationio_servicer.py +26 -2
- flwr/server/superlink/utils.py +9 -2
- flwr/server/utils/validator.py +2 -2
- flwr/serverapp/__init__.py +15 -0
- flwr/simulation/app.py +25 -0
- flwr/simulation/run_simulation.py +17 -0
- flwr/supercore/__init__.py +15 -0
- flwr/{server/superlink → supercore}/ffs/__init__.py +2 -0
- flwr/{server/superlink → supercore}/ffs/disk_ffs.py +1 -1
- flwr/supercore/grpc_health/__init__.py +22 -0
- flwr/supercore/grpc_health/simple_health_servicer.py +38 -0
- flwr/supercore/license_plugin/__init__.py +22 -0
- flwr/supercore/license_plugin/license_plugin.py +26 -0
- flwr/supercore/object_store/__init__.py +24 -0
- flwr/supercore/object_store/in_memory_object_store.py +229 -0
- flwr/supercore/object_store/object_store.py +170 -0
- flwr/supercore/object_store/object_store_factory.py +44 -0
- flwr/supercore/object_store/utils.py +43 -0
- flwr/supercore/scheduler/__init__.py +22 -0
- flwr/supercore/scheduler/plugin.py +71 -0
- flwr/{client/nodestate/nodestate.py → supercore/utils.py} +14 -13
- flwr/superexec/deployment.py +7 -4
- flwr/superexec/exec_event_log_interceptor.py +8 -4
- flwr/superexec/exec_grpc.py +25 -5
- flwr/superexec/exec_license_interceptor.py +82 -0
- flwr/superexec/exec_servicer.py +135 -24
- flwr/superexec/exec_user_auth_interceptor.py +45 -8
- flwr/superexec/executor.py +5 -1
- flwr/superexec/simulation.py +8 -3
- flwr/superlink/__init__.py +15 -0
- flwr/{client/supernode → supernode}/__init__.py +0 -7
- flwr/supernode/cli/__init__.py +24 -0
- flwr/{client/supernode/app.py → supernode/cli/flower_supernode.py} +3 -19
- flwr/supernode/cli/flwr_clientapp.py +88 -0
- flwr/supernode/nodestate/in_memory_nodestate.py +199 -0
- flwr/supernode/nodestate/nodestate.py +227 -0
- flwr/supernode/runtime/__init__.py +15 -0
- flwr/{client/clientapp/app.py → supernode/runtime/run_clientapp.py} +135 -89
- flwr/supernode/scheduler/__init__.py +22 -0
- flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +49 -0
- flwr/supernode/servicer/__init__.py +15 -0
- flwr/supernode/servicer/clientappio/__init__.py +22 -0
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +303 -0
- flwr/supernode/start_client_internal.py +589 -0
- {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/METADATA +6 -4
- {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/RECORD +171 -123
- {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/WHEEL +1 -1
- {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/entry_points.txt +2 -2
- flwr/client/clientapp/clientappio_servicer.py +0 -244
- flwr/client/heartbeat.py +0 -74
- flwr/client/nodestate/in_memory_nodestate.py +0 -38
- /flwr/{client → compat/client}/grpc_client/__init__.py +0 -0
- /flwr/{client → compat/client}/grpc_client/connection.py +0 -0
- /flwr/{server/superlink → supercore}/ffs/ffs.py +0 -0
- /flwr/{server/superlink → supercore}/ffs/ffs_factory.py +0 -0
- /flwr/{client → supernode}/nodestate/__init__.py +0 -0
- /flwr/{client → supernode}/nodestate/nodestate_factory.py +0 -0
flwr/proto/fleet_pb2.pyi
CHANGED
|
@@ -16,13 +16,13 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
16
16
|
class CreateNodeRequest(google.protobuf.message.Message):
|
|
17
17
|
"""CreateNode messages"""
|
|
18
18
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
|
|
20
|
+
heartbeat_interval: builtins.float
|
|
21
21
|
def __init__(self,
|
|
22
22
|
*,
|
|
23
|
-
|
|
23
|
+
heartbeat_interval: builtins.float = ...,
|
|
24
24
|
) -> None: ...
|
|
25
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
|
25
|
+
def ClearField(self, field_name: typing_extensions.Literal["heartbeat_interval",b"heartbeat_interval"]) -> None: ...
|
|
26
26
|
global___CreateNodeRequest = CreateNodeRequest
|
|
27
27
|
|
|
28
28
|
class CreateNodeResponse(google.protobuf.message.Message):
|
|
@@ -58,34 +58,6 @@ class DeleteNodeResponse(google.protobuf.message.Message):
|
|
|
58
58
|
) -> None: ...
|
|
59
59
|
global___DeleteNodeResponse = DeleteNodeResponse
|
|
60
60
|
|
|
61
|
-
class PingRequest(google.protobuf.message.Message):
|
|
62
|
-
"""Ping messages"""
|
|
63
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
64
|
-
NODE_FIELD_NUMBER: builtins.int
|
|
65
|
-
PING_INTERVAL_FIELD_NUMBER: builtins.int
|
|
66
|
-
@property
|
|
67
|
-
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
68
|
-
ping_interval: builtins.float
|
|
69
|
-
def __init__(self,
|
|
70
|
-
*,
|
|
71
|
-
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
|
72
|
-
ping_interval: builtins.float = ...,
|
|
73
|
-
) -> None: ...
|
|
74
|
-
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
|
75
|
-
def ClearField(self, field_name: typing_extensions.Literal["node",b"node","ping_interval",b"ping_interval"]) -> None: ...
|
|
76
|
-
global___PingRequest = PingRequest
|
|
77
|
-
|
|
78
|
-
class PingResponse(google.protobuf.message.Message):
|
|
79
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
80
|
-
SUCCESS_FIELD_NUMBER: builtins.int
|
|
81
|
-
success: builtins.bool
|
|
82
|
-
def __init__(self,
|
|
83
|
-
*,
|
|
84
|
-
success: builtins.bool = ...,
|
|
85
|
-
) -> None: ...
|
|
86
|
-
def ClearField(self, field_name: typing_extensions.Literal["success",b"success"]) -> None: ...
|
|
87
|
-
global___PingResponse = PingResponse
|
|
88
|
-
|
|
89
61
|
class PullMessagesRequest(google.protobuf.message.Message):
|
|
90
62
|
"""PullMessages messages"""
|
|
91
63
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
@@ -108,17 +80,21 @@ class PullMessagesResponse(google.protobuf.message.Message):
|
|
|
108
80
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
109
81
|
RECONNECT_FIELD_NUMBER: builtins.int
|
|
110
82
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
83
|
+
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
111
84
|
@property
|
|
112
85
|
def reconnect(self) -> global___Reconnect: ...
|
|
113
86
|
@property
|
|
114
87
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
88
|
+
@property
|
|
89
|
+
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
115
90
|
def __init__(self,
|
|
116
91
|
*,
|
|
117
92
|
reconnect: typing.Optional[global___Reconnect] = ...,
|
|
118
93
|
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
|
94
|
+
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
|
119
95
|
) -> None: ...
|
|
120
96
|
def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
|
|
121
|
-
def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","reconnect",b"reconnect"]) -> None: ...
|
|
97
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","reconnect",b"reconnect"]) -> None: ...
|
|
122
98
|
global___PullMessagesResponse = PullMessagesResponse
|
|
123
99
|
|
|
124
100
|
class PushMessagesRequest(google.protobuf.message.Message):
|
|
@@ -126,17 +102,21 @@ class PushMessagesRequest(google.protobuf.message.Message):
|
|
|
126
102
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
127
103
|
NODE_FIELD_NUMBER: builtins.int
|
|
128
104
|
MESSAGES_LIST_FIELD_NUMBER: builtins.int
|
|
105
|
+
MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
|
|
129
106
|
@property
|
|
130
107
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
131
108
|
@property
|
|
132
109
|
def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
|
|
110
|
+
@property
|
|
111
|
+
def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
|
|
133
112
|
def __init__(self,
|
|
134
113
|
*,
|
|
135
114
|
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
|
136
115
|
messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
|
|
116
|
+
message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
|
|
137
117
|
) -> None: ...
|
|
138
118
|
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
|
139
|
-
def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","node",b"node"]) -> None: ...
|
|
119
|
+
def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","node",b"node"]) -> None: ...
|
|
140
120
|
global___PushMessagesRequest = PushMessagesRequest
|
|
141
121
|
|
|
142
122
|
class PushMessagesResponse(google.protobuf.message.Message):
|
|
@@ -156,17 +136,21 @@ class PushMessagesResponse(google.protobuf.message.Message):
|
|
|
156
136
|
|
|
157
137
|
RECONNECT_FIELD_NUMBER: builtins.int
|
|
158
138
|
RESULTS_FIELD_NUMBER: builtins.int
|
|
139
|
+
OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
|
|
159
140
|
@property
|
|
160
141
|
def reconnect(self) -> global___Reconnect: ...
|
|
161
142
|
@property
|
|
162
143
|
def results(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, builtins.int]: ...
|
|
144
|
+
@property
|
|
145
|
+
def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
|
163
146
|
def __init__(self,
|
|
164
147
|
*,
|
|
165
148
|
reconnect: typing.Optional[global___Reconnect] = ...,
|
|
166
149
|
results: typing.Optional[typing.Mapping[typing.Text, builtins.int]] = ...,
|
|
150
|
+
objects_to_push: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
|
167
151
|
) -> None: ...
|
|
168
152
|
def HasField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect"]) -> builtins.bool: ...
|
|
169
|
-
def ClearField(self, field_name: typing_extensions.Literal["reconnect",b"reconnect","results",b"results"]) -> None: ...
|
|
153
|
+
def ClearField(self, field_name: typing_extensions.Literal["objects_to_push",b"objects_to_push","reconnect",b"reconnect","results",b"results"]) -> None: ...
|
|
170
154
|
global___PushMessagesResponse = PushMessagesResponse
|
|
171
155
|
|
|
172
156
|
class Reconnect(google.protobuf.message.Message):
|
flwr/proto/fleet_pb2_grpc.py
CHANGED
|
@@ -4,6 +4,8 @@ import grpc
|
|
|
4
4
|
|
|
5
5
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
6
6
|
from flwr.proto import fleet_pb2 as flwr_dot_proto_dot_fleet__pb2
|
|
7
|
+
from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
|
|
8
|
+
from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
|
|
7
9
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
8
10
|
|
|
9
11
|
|
|
@@ -26,10 +28,10 @@ class FleetStub(object):
|
|
|
26
28
|
request_serializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeRequest.SerializeToString,
|
|
27
29
|
response_deserializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeResponse.FromString,
|
|
28
30
|
)
|
|
29
|
-
self.
|
|
30
|
-
'/flwr.proto.Fleet/
|
|
31
|
-
request_serializer=
|
|
32
|
-
response_deserializer=
|
|
31
|
+
self.SendNodeHeartbeat = channel.unary_unary(
|
|
32
|
+
'/flwr.proto.Fleet/SendNodeHeartbeat',
|
|
33
|
+
request_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatRequest.SerializeToString,
|
|
34
|
+
response_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatResponse.FromString,
|
|
33
35
|
)
|
|
34
36
|
self.PullMessages = channel.unary_unary(
|
|
35
37
|
'/flwr.proto.Fleet/PullMessages',
|
|
@@ -51,6 +53,21 @@ class FleetStub(object):
|
|
|
51
53
|
request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
|
52
54
|
response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
53
55
|
)
|
|
56
|
+
self.PushObject = channel.unary_unary(
|
|
57
|
+
'/flwr.proto.Fleet/PushObject',
|
|
58
|
+
request_serializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
|
|
59
|
+
response_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
|
|
60
|
+
)
|
|
61
|
+
self.PullObject = channel.unary_unary(
|
|
62
|
+
'/flwr.proto.Fleet/PullObject',
|
|
63
|
+
request_serializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
|
|
64
|
+
response_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
|
65
|
+
)
|
|
66
|
+
self.ConfirmMessageReceived = channel.unary_unary(
|
|
67
|
+
'/flwr.proto.Fleet/ConfirmMessageReceived',
|
|
68
|
+
request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
|
69
|
+
response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
|
70
|
+
)
|
|
54
71
|
|
|
55
72
|
|
|
56
73
|
class FleetServicer(object):
|
|
@@ -68,7 +85,7 @@ class FleetServicer(object):
|
|
|
68
85
|
context.set_details('Method not implemented!')
|
|
69
86
|
raise NotImplementedError('Method not implemented!')
|
|
70
87
|
|
|
71
|
-
def
|
|
88
|
+
def SendNodeHeartbeat(self, request, context):
|
|
72
89
|
"""Missing associated documentation comment in .proto file."""
|
|
73
90
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
74
91
|
context.set_details('Method not implemented!')
|
|
@@ -105,6 +122,27 @@ class FleetServicer(object):
|
|
|
105
122
|
context.set_details('Method not implemented!')
|
|
106
123
|
raise NotImplementedError('Method not implemented!')
|
|
107
124
|
|
|
125
|
+
def PushObject(self, request, context):
|
|
126
|
+
"""Push Object
|
|
127
|
+
"""
|
|
128
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
129
|
+
context.set_details('Method not implemented!')
|
|
130
|
+
raise NotImplementedError('Method not implemented!')
|
|
131
|
+
|
|
132
|
+
def PullObject(self, request, context):
|
|
133
|
+
"""Pull Object
|
|
134
|
+
"""
|
|
135
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
136
|
+
context.set_details('Method not implemented!')
|
|
137
|
+
raise NotImplementedError('Method not implemented!')
|
|
138
|
+
|
|
139
|
+
def ConfirmMessageReceived(self, request, context):
|
|
140
|
+
"""Confirm Message Received
|
|
141
|
+
"""
|
|
142
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
143
|
+
context.set_details('Method not implemented!')
|
|
144
|
+
raise NotImplementedError('Method not implemented!')
|
|
145
|
+
|
|
108
146
|
|
|
109
147
|
def add_FleetServicer_to_server(servicer, server):
|
|
110
148
|
rpc_method_handlers = {
|
|
@@ -118,10 +156,10 @@ def add_FleetServicer_to_server(servicer, server):
|
|
|
118
156
|
request_deserializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeRequest.FromString,
|
|
119
157
|
response_serializer=flwr_dot_proto_dot_fleet__pb2.DeleteNodeResponse.SerializeToString,
|
|
120
158
|
),
|
|
121
|
-
'
|
|
122
|
-
servicer.
|
|
123
|
-
request_deserializer=
|
|
124
|
-
response_serializer=
|
|
159
|
+
'SendNodeHeartbeat': grpc.unary_unary_rpc_method_handler(
|
|
160
|
+
servicer.SendNodeHeartbeat,
|
|
161
|
+
request_deserializer=flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatRequest.FromString,
|
|
162
|
+
response_serializer=flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatResponse.SerializeToString,
|
|
125
163
|
),
|
|
126
164
|
'PullMessages': grpc.unary_unary_rpc_method_handler(
|
|
127
165
|
servicer.PullMessages,
|
|
@@ -143,6 +181,21 @@ def add_FleetServicer_to_server(servicer, server):
|
|
|
143
181
|
request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
|
|
144
182
|
response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
|
|
145
183
|
),
|
|
184
|
+
'PushObject': grpc.unary_unary_rpc_method_handler(
|
|
185
|
+
servicer.PushObject,
|
|
186
|
+
request_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.FromString,
|
|
187
|
+
response_serializer=flwr_dot_proto_dot_message__pb2.PushObjectResponse.SerializeToString,
|
|
188
|
+
),
|
|
189
|
+
'PullObject': grpc.unary_unary_rpc_method_handler(
|
|
190
|
+
servicer.PullObject,
|
|
191
|
+
request_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.FromString,
|
|
192
|
+
response_serializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.SerializeToString,
|
|
193
|
+
),
|
|
194
|
+
'ConfirmMessageReceived': grpc.unary_unary_rpc_method_handler(
|
|
195
|
+
servicer.ConfirmMessageReceived,
|
|
196
|
+
request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
|
|
197
|
+
response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
|
|
198
|
+
),
|
|
146
199
|
}
|
|
147
200
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
148
201
|
'flwr.proto.Fleet', rpc_method_handlers)
|
|
@@ -188,7 +241,7 @@ class Fleet(object):
|
|
|
188
241
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
189
242
|
|
|
190
243
|
@staticmethod
|
|
191
|
-
def
|
|
244
|
+
def SendNodeHeartbeat(request,
|
|
192
245
|
target,
|
|
193
246
|
options=(),
|
|
194
247
|
channel_credentials=None,
|
|
@@ -198,9 +251,9 @@ class Fleet(object):
|
|
|
198
251
|
wait_for_ready=None,
|
|
199
252
|
timeout=None,
|
|
200
253
|
metadata=None):
|
|
201
|
-
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/
|
|
202
|
-
|
|
203
|
-
|
|
254
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/SendNodeHeartbeat',
|
|
255
|
+
flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatRequest.SerializeToString,
|
|
256
|
+
flwr_dot_proto_dot_heartbeat__pb2.SendNodeHeartbeatResponse.FromString,
|
|
204
257
|
options, channel_credentials,
|
|
205
258
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
206
259
|
|
|
@@ -271,3 +324,54 @@ class Fleet(object):
|
|
|
271
324
|
flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
272
325
|
options, channel_credentials,
|
|
273
326
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
327
|
+
|
|
328
|
+
@staticmethod
|
|
329
|
+
def PushObject(request,
|
|
330
|
+
target,
|
|
331
|
+
options=(),
|
|
332
|
+
channel_credentials=None,
|
|
333
|
+
call_credentials=None,
|
|
334
|
+
insecure=False,
|
|
335
|
+
compression=None,
|
|
336
|
+
wait_for_ready=None,
|
|
337
|
+
timeout=None,
|
|
338
|
+
metadata=None):
|
|
339
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/PushObject',
|
|
340
|
+
flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
|
|
341
|
+
flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
|
|
342
|
+
options, channel_credentials,
|
|
343
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
344
|
+
|
|
345
|
+
@staticmethod
|
|
346
|
+
def PullObject(request,
|
|
347
|
+
target,
|
|
348
|
+
options=(),
|
|
349
|
+
channel_credentials=None,
|
|
350
|
+
call_credentials=None,
|
|
351
|
+
insecure=False,
|
|
352
|
+
compression=None,
|
|
353
|
+
wait_for_ready=None,
|
|
354
|
+
timeout=None,
|
|
355
|
+
metadata=None):
|
|
356
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/PullObject',
|
|
357
|
+
flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
|
|
358
|
+
flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
|
|
359
|
+
options, channel_credentials,
|
|
360
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
361
|
+
|
|
362
|
+
@staticmethod
|
|
363
|
+
def ConfirmMessageReceived(request,
|
|
364
|
+
target,
|
|
365
|
+
options=(),
|
|
366
|
+
channel_credentials=None,
|
|
367
|
+
call_credentials=None,
|
|
368
|
+
insecure=False,
|
|
369
|
+
compression=None,
|
|
370
|
+
wait_for_ready=None,
|
|
371
|
+
timeout=None,
|
|
372
|
+
metadata=None):
|
|
373
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/ConfirmMessageReceived',
|
|
374
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
|
375
|
+
flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
|
376
|
+
options, channel_credentials,
|
|
377
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
flwr/proto/fleet_pb2_grpc.pyi
CHANGED
|
@@ -5,6 +5,8 @@ isort:skip_file
|
|
|
5
5
|
import abc
|
|
6
6
|
import flwr.proto.fab_pb2
|
|
7
7
|
import flwr.proto.fleet_pb2
|
|
8
|
+
import flwr.proto.heartbeat_pb2
|
|
9
|
+
import flwr.proto.message_pb2
|
|
8
10
|
import flwr.proto.run_pb2
|
|
9
11
|
import grpc
|
|
10
12
|
|
|
@@ -18,9 +20,9 @@ class FleetStub:
|
|
|
18
20
|
flwr.proto.fleet_pb2.DeleteNodeRequest,
|
|
19
21
|
flwr.proto.fleet_pb2.DeleteNodeResponse]
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
flwr.proto.
|
|
23
|
-
flwr.proto.
|
|
23
|
+
SendNodeHeartbeat: grpc.UnaryUnaryMultiCallable[
|
|
24
|
+
flwr.proto.heartbeat_pb2.SendNodeHeartbeatRequest,
|
|
25
|
+
flwr.proto.heartbeat_pb2.SendNodeHeartbeatResponse]
|
|
24
26
|
|
|
25
27
|
PullMessages: grpc.UnaryUnaryMultiCallable[
|
|
26
28
|
flwr.proto.fleet_pb2.PullMessagesRequest,
|
|
@@ -47,6 +49,21 @@ class FleetStub:
|
|
|
47
49
|
flwr.proto.fab_pb2.GetFabResponse]
|
|
48
50
|
"""Get FAB"""
|
|
49
51
|
|
|
52
|
+
PushObject: grpc.UnaryUnaryMultiCallable[
|
|
53
|
+
flwr.proto.message_pb2.PushObjectRequest,
|
|
54
|
+
flwr.proto.message_pb2.PushObjectResponse]
|
|
55
|
+
"""Push Object"""
|
|
56
|
+
|
|
57
|
+
PullObject: grpc.UnaryUnaryMultiCallable[
|
|
58
|
+
flwr.proto.message_pb2.PullObjectRequest,
|
|
59
|
+
flwr.proto.message_pb2.PullObjectResponse]
|
|
60
|
+
"""Pull Object"""
|
|
61
|
+
|
|
62
|
+
ConfirmMessageReceived: grpc.UnaryUnaryMultiCallable[
|
|
63
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
|
64
|
+
flwr.proto.message_pb2.ConfirmMessageReceivedResponse]
|
|
65
|
+
"""Confirm Message Received"""
|
|
66
|
+
|
|
50
67
|
|
|
51
68
|
class FleetServicer(metaclass=abc.ABCMeta):
|
|
52
69
|
@abc.abstractmethod
|
|
@@ -62,10 +79,10 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
|
62
79
|
) -> flwr.proto.fleet_pb2.DeleteNodeResponse: ...
|
|
63
80
|
|
|
64
81
|
@abc.abstractmethod
|
|
65
|
-
def
|
|
66
|
-
request: flwr.proto.
|
|
82
|
+
def SendNodeHeartbeat(self,
|
|
83
|
+
request: flwr.proto.heartbeat_pb2.SendNodeHeartbeatRequest,
|
|
67
84
|
context: grpc.ServicerContext,
|
|
68
|
-
) -> flwr.proto.
|
|
85
|
+
) -> flwr.proto.heartbeat_pb2.SendNodeHeartbeatResponse: ...
|
|
69
86
|
|
|
70
87
|
@abc.abstractmethod
|
|
71
88
|
def PullMessages(self,
|
|
@@ -103,5 +120,29 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
|
103
120
|
"""Get FAB"""
|
|
104
121
|
pass
|
|
105
122
|
|
|
123
|
+
@abc.abstractmethod
|
|
124
|
+
def PushObject(self,
|
|
125
|
+
request: flwr.proto.message_pb2.PushObjectRequest,
|
|
126
|
+
context: grpc.ServicerContext,
|
|
127
|
+
) -> flwr.proto.message_pb2.PushObjectResponse:
|
|
128
|
+
"""Push Object"""
|
|
129
|
+
pass
|
|
130
|
+
|
|
131
|
+
@abc.abstractmethod
|
|
132
|
+
def PullObject(self,
|
|
133
|
+
request: flwr.proto.message_pb2.PullObjectRequest,
|
|
134
|
+
context: grpc.ServicerContext,
|
|
135
|
+
) -> flwr.proto.message_pb2.PullObjectResponse:
|
|
136
|
+
"""Pull Object"""
|
|
137
|
+
pass
|
|
138
|
+
|
|
139
|
+
@abc.abstractmethod
|
|
140
|
+
def ConfirmMessageReceived(self,
|
|
141
|
+
request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
|
|
142
|
+
context: grpc.ServicerContext,
|
|
143
|
+
) -> flwr.proto.message_pb2.ConfirmMessageReceivedResponse:
|
|
144
|
+
"""Confirm Message Received"""
|
|
145
|
+
pass
|
|
146
|
+
|
|
106
147
|
|
|
107
148
|
def add_FleetServicer_to_server(servicer: FleetServicer, server: grpc.Server) -> None: ...
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: flwr/proto/heartbeat.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
5
|
+
"""Generated protocol buffer code."""
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
10
|
+
# @@protoc_insertion_point(imports)
|
|
11
|
+
|
|
12
|
+
_sym_db = _symbol_database.Default()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lwr/proto/heartbeat.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\"V\n\x18SendNodeHeartbeatRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x1a\n\x12heartbeat_interval\x18\x02 \x01(\x01\",\n\x19SendNodeHeartbeatResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"E\n\x17SendAppHeartbeatRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x1a\n\x12heartbeat_interval\x18\x02 \x01(\x01\"+\n\x18SendAppHeartbeatResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x62\x06proto3')
|
|
19
|
+
|
|
20
|
+
_globals = globals()
|
|
21
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.heartbeat_pb2', _globals)
|
|
23
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
24
|
+
DESCRIPTOR._options = None
|
|
25
|
+
_globals['_SENDNODEHEARTBEATREQUEST']._serialized_start=65
|
|
26
|
+
_globals['_SENDNODEHEARTBEATREQUEST']._serialized_end=151
|
|
27
|
+
_globals['_SENDNODEHEARTBEATRESPONSE']._serialized_start=153
|
|
28
|
+
_globals['_SENDNODEHEARTBEATRESPONSE']._serialized_end=197
|
|
29
|
+
_globals['_SENDAPPHEARTBEATREQUEST']._serialized_start=199
|
|
30
|
+
_globals['_SENDAPPHEARTBEATREQUEST']._serialized_end=268
|
|
31
|
+
_globals['_SENDAPPHEARTBEATRESPONSE']._serialized_start=270
|
|
32
|
+
_globals['_SENDAPPHEARTBEATRESPONSE']._serialized_end=313
|
|
33
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
import builtins
|
|
6
|
+
import flwr.proto.node_pb2
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.message
|
|
9
|
+
import typing
|
|
10
|
+
import typing_extensions
|
|
11
|
+
|
|
12
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
13
|
+
|
|
14
|
+
class SendNodeHeartbeatRequest(google.protobuf.message.Message):
|
|
15
|
+
"""Node Heartbeat messages"""
|
|
16
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
17
|
+
NODE_FIELD_NUMBER: builtins.int
|
|
18
|
+
HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
|
|
19
|
+
@property
|
|
20
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
21
|
+
heartbeat_interval: builtins.float
|
|
22
|
+
def __init__(self,
|
|
23
|
+
*,
|
|
24
|
+
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
|
25
|
+
heartbeat_interval: builtins.float = ...,
|
|
26
|
+
) -> None: ...
|
|
27
|
+
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
|
28
|
+
def ClearField(self, field_name: typing_extensions.Literal["heartbeat_interval",b"heartbeat_interval","node",b"node"]) -> None: ...
|
|
29
|
+
global___SendNodeHeartbeatRequest = SendNodeHeartbeatRequest
|
|
30
|
+
|
|
31
|
+
class SendNodeHeartbeatResponse(google.protobuf.message.Message):
|
|
32
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
33
|
+
SUCCESS_FIELD_NUMBER: builtins.int
|
|
34
|
+
success: builtins.bool
|
|
35
|
+
def __init__(self,
|
|
36
|
+
*,
|
|
37
|
+
success: builtins.bool = ...,
|
|
38
|
+
) -> None: ...
|
|
39
|
+
def ClearField(self, field_name: typing_extensions.Literal["success",b"success"]) -> None: ...
|
|
40
|
+
global___SendNodeHeartbeatResponse = SendNodeHeartbeatResponse
|
|
41
|
+
|
|
42
|
+
class SendAppHeartbeatRequest(google.protobuf.message.Message):
|
|
43
|
+
"""App Heartbeat messages"""
|
|
44
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
45
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
46
|
+
HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
|
|
47
|
+
run_id: builtins.int
|
|
48
|
+
heartbeat_interval: builtins.float
|
|
49
|
+
def __init__(self,
|
|
50
|
+
*,
|
|
51
|
+
run_id: builtins.int = ...,
|
|
52
|
+
heartbeat_interval: builtins.float = ...,
|
|
53
|
+
) -> None: ...
|
|
54
|
+
def ClearField(self, field_name: typing_extensions.Literal["heartbeat_interval",b"heartbeat_interval","run_id",b"run_id"]) -> None: ...
|
|
55
|
+
global___SendAppHeartbeatRequest = SendAppHeartbeatRequest
|
|
56
|
+
|
|
57
|
+
class SendAppHeartbeatResponse(google.protobuf.message.Message):
|
|
58
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
59
|
+
SUCCESS_FIELD_NUMBER: builtins.int
|
|
60
|
+
success: builtins.bool
|
|
61
|
+
def __init__(self,
|
|
62
|
+
*,
|
|
63
|
+
success: builtins.bool = ...,
|
|
64
|
+
) -> None: ...
|
|
65
|
+
def ClearField(self, field_name: typing_extensions.Literal["success",b"success"]) -> None: ...
|
|
66
|
+
global___SendAppHeartbeatResponse = SendAppHeartbeatResponse
|
flwr/proto/message_pb2.py
CHANGED
|
@@ -15,9 +15,10 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from flwr.proto import error_pb2 as flwr_dot_proto_dot_error__pb2
|
|
16
16
|
from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
|
|
17
17
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
|
+
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x15\x66lwr/proto/node.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\"\x1f\n\tObjectIDs\x12\x12\n\nobject_ids\x18\x01 \x03(\t\"I\n\nObjectTree\x12\x11\n\tobject_id\x18\x01 \x01(\t\x12(\n\x08\x63hildren\x18\x02 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"n\n\x11PushObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\x12\x16\n\x0eobject_content\x18\x04 \x01(\x0c\"$\n\x12PushObjectResponse\x12\x0e\n\x06stored\x18\x01 \x01(\x08\"V\n\x11PullObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\"\\\n\x12PullObjectResponse\x12\x14\n\x0cobject_found\x18\x01 \x01(\x08\x12\x18\n\x10object_available\x18\x02 \x01(\x08\x12\x16\n\x0eobject_content\x18\x03 \x01(\x0c\"j\n\x1d\x43onfirmMessageReceivedRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x19\n\x11message_object_id\x18\x03 \x01(\t\" \n\x1e\x43onfirmMessageReceivedResponseb\x06proto3')
|
|
21
22
|
|
|
22
23
|
_globals = globals()
|
|
23
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -28,14 +29,30 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
28
29
|
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_options = b'8\001'
|
|
29
30
|
_globals['_CONTEXT_RUNCONFIGENTRY']._options = None
|
|
30
31
|
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_options = b'8\001'
|
|
31
|
-
_globals['_MESSAGE']._serialized_start=
|
|
32
|
-
_globals['_MESSAGE']._serialized_end=
|
|
33
|
-
_globals['_CONTEXT']._serialized_start=
|
|
34
|
-
_globals['_CONTEXT']._serialized_end=
|
|
35
|
-
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_start=
|
|
36
|
-
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_end=
|
|
37
|
-
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_start=
|
|
38
|
-
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_end=
|
|
39
|
-
_globals['_METADATA']._serialized_start=
|
|
40
|
-
_globals['_METADATA']._serialized_end=
|
|
32
|
+
_globals['_MESSAGE']._serialized_start=144
|
|
33
|
+
_globals['_MESSAGE']._serialized_end=268
|
|
34
|
+
_globals['_CONTEXT']._serialized_start=271
|
|
35
|
+
_globals['_CONTEXT']._serialized_end=607
|
|
36
|
+
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_start=468
|
|
37
|
+
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_end=537
|
|
38
|
+
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_start=539
|
|
39
|
+
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_end=607
|
|
40
|
+
_globals['_METADATA']._serialized_start=610
|
|
41
|
+
_globals['_METADATA']._serialized_end=800
|
|
42
|
+
_globals['_OBJECTIDS']._serialized_start=802
|
|
43
|
+
_globals['_OBJECTIDS']._serialized_end=833
|
|
44
|
+
_globals['_OBJECTTREE']._serialized_start=835
|
|
45
|
+
_globals['_OBJECTTREE']._serialized_end=908
|
|
46
|
+
_globals['_PUSHOBJECTREQUEST']._serialized_start=910
|
|
47
|
+
_globals['_PUSHOBJECTREQUEST']._serialized_end=1020
|
|
48
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_start=1022
|
|
49
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_end=1058
|
|
50
|
+
_globals['_PULLOBJECTREQUEST']._serialized_start=1060
|
|
51
|
+
_globals['_PULLOBJECTREQUEST']._serialized_end=1146
|
|
52
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_start=1148
|
|
53
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_end=1240
|
|
54
|
+
_globals['_CONFIRMMESSAGERECEIVEDREQUEST']._serialized_start=1242
|
|
55
|
+
_globals['_CONFIRMMESSAGERECEIVEDREQUEST']._serialized_end=1348
|
|
56
|
+
_globals['_CONFIRMMESSAGERECEIVEDRESPONSE']._serialized_start=1350
|
|
57
|
+
_globals['_CONFIRMMESSAGERECEIVEDRESPONSE']._serialized_end=1382
|
|
41
58
|
# @@protoc_insertion_point(module_scope)
|