flwr-nightly 1.26.0.dev20260202__py3-none-any.whl → 1.26.0.dev20260203__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/federation/ls.py +4 -1
- flwr/cli/utils.py +2 -0
- flwr/common/typing.py +1 -0
- flwr/proto/federation_pb2.py +2 -2
- flwr/proto/federation_pb2.pyi +16 -4
- flwr/proto/run_pb2.py +5 -13
- flwr/proto/run_pb2.pyi +0 -57
- flwr/proto/serverappio_pb2.py +2 -2
- flwr/proto/serverappio_pb2_grpc.py +2 -46
- flwr/proto/serverappio_pb2_grpc.pyi +12 -32
- flwr/proto/simulationio_pb2.py +2 -2
- flwr/proto/simulationio_pb2_grpc.py +2 -46
- flwr/proto/simulationio_pb2_grpc.pyi +12 -32
- flwr/server/superlink/serverappio/serverappio_servicer.py +0 -18
- flwr/server/superlink/simulation/simulationio_servicer.py +0 -19
- flwr/supercore/constant.py +1 -0
- flwr/supercore/object_store/sql_object_store.py +22 -18
- flwr/superlink/federation/federation_manager.py +2 -2
- flwr/superlink/federation/noop_federation_manager.py +5 -4
- flwr/superlink/servicer/control/control_servicer.py +5 -3
- {flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/METADATA +1 -1
- {flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/RECORD +24 -24
- {flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/entry_points.txt +0 -0
flwr/cli/federation/ls.py
CHANGED
|
@@ -126,9 +126,12 @@ def _to_table(federations: list[Federation]) -> Table:
|
|
|
126
126
|
table.add_column(
|
|
127
127
|
Text("Federation", justify="center"), style="bright_black", no_wrap=True
|
|
128
128
|
)
|
|
129
|
+
table.add_column(
|
|
130
|
+
Text("Description", justify="center"), style="bright_black", no_wrap=True
|
|
131
|
+
)
|
|
129
132
|
|
|
130
133
|
for federation in federations:
|
|
131
|
-
table.add_row(federation.name)
|
|
134
|
+
table.add_row(federation.name, federation.description)
|
|
132
135
|
|
|
133
136
|
return table
|
|
134
137
|
|
flwr/cli/utils.py
CHANGED
|
@@ -100,6 +100,8 @@ def cli_output_handler(
|
|
|
100
100
|
restore_output()
|
|
101
101
|
print_json_error(captured_output.getvalue(), err)
|
|
102
102
|
else:
|
|
103
|
+
if isinstance(err, typer.Exit):
|
|
104
|
+
raise # Allow typer.Exit to escape normally
|
|
103
105
|
raise click.ClickException(str(err)) from None
|
|
104
106
|
finally:
|
|
105
107
|
if is_json:
|
flwr/common/typing.py
CHANGED
flwr/proto/federation_pb2.py
CHANGED
|
@@ -26,7 +26,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
|
26
26
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/federation.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x15\x66lwr/proto/node.proto\"#\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/federation.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x15\x66lwr/proto/node.proto\"#\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xaf\x01\n\nFederation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bmember_aids\x18\x02 \x03(\t\x12#\n\x05nodes\x18\x03 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x1d\n\x04runs\x18\x04 \x03(\x0b\x32\x0f.flwr.proto.Run\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12%\n\x08\x61\x63\x63ounts\x18\x06 \x03(\x0b\x32\x13.flwr.proto.Accountb\x06proto3')
|
|
30
30
|
|
|
31
31
|
_globals = globals()
|
|
32
32
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -36,5 +36,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
36
36
|
_globals['_ACCOUNT']._serialized_start=88
|
|
37
37
|
_globals['_ACCOUNT']._serialized_end=123
|
|
38
38
|
_globals['_FEDERATION']._serialized_start=126
|
|
39
|
-
_globals['_FEDERATION']._serialized_end=
|
|
39
|
+
_globals['_FEDERATION']._serialized_end=301
|
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/federation_pb2.pyi
CHANGED
|
@@ -51,24 +51,36 @@ class Federation(google.protobuf.message.Message):
|
|
|
51
51
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
52
52
|
|
|
53
53
|
NAME_FIELD_NUMBER: builtins.int
|
|
54
|
-
|
|
54
|
+
MEMBER_AIDS_FIELD_NUMBER: builtins.int
|
|
55
55
|
NODES_FIELD_NUMBER: builtins.int
|
|
56
56
|
RUNS_FIELD_NUMBER: builtins.int
|
|
57
|
+
DESCRIPTION_FIELD_NUMBER: builtins.int
|
|
58
|
+
ACCOUNTS_FIELD_NUMBER: builtins.int
|
|
57
59
|
name: builtins.str
|
|
60
|
+
description: builtins.str
|
|
61
|
+
"""Added in v1.26.0"""
|
|
58
62
|
@property
|
|
59
|
-
def
|
|
63
|
+
def member_aids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
|
|
64
|
+
"""Deprecated in v1.26.0"""
|
|
65
|
+
|
|
60
66
|
@property
|
|
61
67
|
def nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
|
|
62
68
|
@property
|
|
63
69
|
def runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.run_pb2.Run]: ...
|
|
70
|
+
@property
|
|
71
|
+
def accounts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Account]:
|
|
72
|
+
"""Added in v1.26.0"""
|
|
73
|
+
|
|
64
74
|
def __init__(
|
|
65
75
|
self,
|
|
66
76
|
*,
|
|
67
77
|
name: builtins.str = ...,
|
|
68
|
-
|
|
78
|
+
member_aids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
69
79
|
nodes: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
|
|
70
80
|
runs: collections.abc.Iterable[flwr.proto.run_pb2.Run] | None = ...,
|
|
81
|
+
description: builtins.str = ...,
|
|
82
|
+
accounts: collections.abc.Iterable[global___Account] | None = ...,
|
|
71
83
|
) -> None: ...
|
|
72
|
-
def ClearField(self, field_name: typing.Literal["accounts", b"accounts", "name", b"name", "nodes", b"nodes", "runs", b"runs"]) -> None: ...
|
|
84
|
+
def ClearField(self, field_name: typing.Literal["accounts", b"accounts", "description", b"description", "member_aids", b"member_aids", "name", b"name", "nodes", b"nodes", "runs", b"runs"]) -> None: ...
|
|
73
85
|
|
|
74
86
|
global___Federation = Federation
|
flwr/proto/run_pb2.py
CHANGED
|
@@ -27,7 +27,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
|
|
|
27
27
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xb7\x03\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x12\x12\n\nfederation\x18\x0c \x01(\t\x12\x12\n\nbytes_sent\x18\r \x01(\x04\x12\x12\n\nbytes_recv\x18\x0e \x01(\x04\x12\x19\n\x11\x63lientapp_runtime\x18\x0f \x01(\x01\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xb7\x03\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x12\x12\n\nfederation\x18\x0c \x01(\t\x12\x12\n\nbytes_sent\x18\r \x01(\x04\x12\x12\n\nbytes_recv\x18\x0e \x01(\x04\x12\x19\n\x11\x63lientapp_runtime\x18\x0f \x01(\x01\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
|
|
31
31
|
|
|
32
32
|
_globals = globals()
|
|
33
33
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -36,8 +36,6 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
36
36
|
DESCRIPTOR._loaded_options = None
|
|
37
37
|
_globals['_RUN_OVERRIDECONFIGENTRY']._loaded_options = None
|
|
38
38
|
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
39
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._loaded_options = None
|
|
40
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_options = b'8\001'
|
|
41
39
|
_globals['_RUN']._serialized_start=117
|
|
42
40
|
_globals['_RUN']._serialized_end=556
|
|
43
41
|
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=483
|
|
@@ -52,14 +50,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
52
50
|
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=820
|
|
53
51
|
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=822
|
|
54
52
|
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=847
|
|
55
|
-
_globals['
|
|
56
|
-
_globals['
|
|
57
|
-
_globals['
|
|
58
|
-
_globals['
|
|
59
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=1024
|
|
60
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1099
|
|
61
|
-
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1101
|
|
62
|
-
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1146
|
|
63
|
-
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1148
|
|
64
|
-
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1232
|
|
53
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=849
|
|
54
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=894
|
|
55
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=896
|
|
56
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=980
|
|
65
57
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/run_pb2.pyi
CHANGED
|
@@ -202,63 +202,6 @@ class UpdateRunStatusResponse(google.protobuf.message.Message):
|
|
|
202
202
|
|
|
203
203
|
global___UpdateRunStatusResponse = UpdateRunStatusResponse
|
|
204
204
|
|
|
205
|
-
@typing.final
|
|
206
|
-
class GetRunStatusRequest(google.protobuf.message.Message):
|
|
207
|
-
"""GetRunStatus"""
|
|
208
|
-
|
|
209
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
210
|
-
|
|
211
|
-
NODE_FIELD_NUMBER: builtins.int
|
|
212
|
-
RUN_IDS_FIELD_NUMBER: builtins.int
|
|
213
|
-
@property
|
|
214
|
-
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
215
|
-
@property
|
|
216
|
-
def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
217
|
-
def __init__(
|
|
218
|
-
self,
|
|
219
|
-
*,
|
|
220
|
-
node: flwr.proto.node_pb2.Node | None = ...,
|
|
221
|
-
run_ids: collections.abc.Iterable[builtins.int] | None = ...,
|
|
222
|
-
) -> None: ...
|
|
223
|
-
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
224
|
-
def ClearField(self, field_name: typing.Literal["node", b"node", "run_ids", b"run_ids"]) -> None: ...
|
|
225
|
-
|
|
226
|
-
global___GetRunStatusRequest = GetRunStatusRequest
|
|
227
|
-
|
|
228
|
-
@typing.final
|
|
229
|
-
class GetRunStatusResponse(google.protobuf.message.Message):
|
|
230
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
231
|
-
|
|
232
|
-
@typing.final
|
|
233
|
-
class RunStatusDictEntry(google.protobuf.message.Message):
|
|
234
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
235
|
-
|
|
236
|
-
KEY_FIELD_NUMBER: builtins.int
|
|
237
|
-
VALUE_FIELD_NUMBER: builtins.int
|
|
238
|
-
key: builtins.int
|
|
239
|
-
@property
|
|
240
|
-
def value(self) -> global___RunStatus: ...
|
|
241
|
-
def __init__(
|
|
242
|
-
self,
|
|
243
|
-
*,
|
|
244
|
-
key: builtins.int = ...,
|
|
245
|
-
value: global___RunStatus | None = ...,
|
|
246
|
-
) -> None: ...
|
|
247
|
-
def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
|
|
248
|
-
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
249
|
-
|
|
250
|
-
RUN_STATUS_DICT_FIELD_NUMBER: builtins.int
|
|
251
|
-
@property
|
|
252
|
-
def run_status_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, global___RunStatus]: ...
|
|
253
|
-
def __init__(
|
|
254
|
-
self,
|
|
255
|
-
*,
|
|
256
|
-
run_status_dict: collections.abc.Mapping[builtins.int, global___RunStatus] | None = ...,
|
|
257
|
-
) -> None: ...
|
|
258
|
-
def ClearField(self, field_name: typing.Literal["run_status_dict", b"run_status_dict"]) -> None: ...
|
|
259
|
-
|
|
260
|
-
global___GetRunStatusResponse = GetRunStatusResponse
|
|
261
|
-
|
|
262
205
|
@typing.final
|
|
263
206
|
class GetFederationOptionsRequest(google.protobuf.message.Message):
|
|
264
207
|
"""Get Federation Options associated with run"""
|
flwr/proto/serverappio_pb2.py
CHANGED
|
@@ -31,7 +31,7 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
|
31
31
|
from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\
|
|
34
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\x94\n\n\x0bServerAppIo\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\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x62\x06proto3')
|
|
35
35
|
|
|
36
36
|
_globals = globals()
|
|
37
37
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -43,5 +43,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
43
43
|
_globals['_GETNODESRESPONSE']._serialized_start=246
|
|
44
44
|
_globals['_GETNODESRESPONSE']._serialized_end=297
|
|
45
45
|
_globals['_SERVERAPPIO']._serialized_start=300
|
|
46
|
-
_globals['_SERVERAPPIO']._serialized_end=
|
|
46
|
+
_globals['_SERVERAPPIO']._serialized_end=1600
|
|
47
47
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -85,11 +85,6 @@ class ServerAppIoStub(object):
|
|
|
85
85
|
request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
|
|
86
86
|
response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
|
|
87
87
|
_registered_method=True)
|
|
88
|
-
self.GetRunStatus = channel.unary_unary(
|
|
89
|
-
'/flwr.proto.ServerAppIo/GetRunStatus',
|
|
90
|
-
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
|
|
91
|
-
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
|
|
92
|
-
_registered_method=True)
|
|
93
88
|
self.UpdateRunStatus = channel.unary_unary(
|
|
94
89
|
'/flwr.proto.ServerAppIo/UpdateRunStatus',
|
|
95
90
|
request_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
|
|
@@ -200,19 +195,12 @@ class ServerAppIoServicer(object):
|
|
|
200
195
|
context.set_details('Method not implemented!')
|
|
201
196
|
raise NotImplementedError('Method not implemented!')
|
|
202
197
|
|
|
203
|
-
def
|
|
198
|
+
def UpdateRunStatus(self, request, context):
|
|
204
199
|
"""///////////////////////////////////////////////////////////////////////////
|
|
205
200
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
206
201
|
///////////////////////////////////////////////////////////////////////////
|
|
207
202
|
|
|
208
|
-
|
|
209
|
-
"""
|
|
210
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
211
|
-
context.set_details('Method not implemented!')
|
|
212
|
-
raise NotImplementedError('Method not implemented!')
|
|
213
|
-
|
|
214
|
-
def UpdateRunStatus(self, request, context):
|
|
215
|
-
"""Update the status of a given run
|
|
203
|
+
Update the status of a given run
|
|
216
204
|
"""
|
|
217
205
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
218
206
|
context.set_details('Method not implemented!')
|
|
@@ -305,11 +293,6 @@ def add_ServerAppIoServicer_to_server(servicer, server):
|
|
|
305
293
|
request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
|
|
306
294
|
response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
|
|
307
295
|
),
|
|
308
|
-
'GetRunStatus': grpc.unary_unary_rpc_method_handler(
|
|
309
|
-
servicer.GetRunStatus,
|
|
310
|
-
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.FromString,
|
|
311
|
-
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.SerializeToString,
|
|
312
|
-
),
|
|
313
296
|
'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
|
|
314
297
|
servicer.UpdateRunStatus,
|
|
315
298
|
request_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.FromString,
|
|
@@ -594,33 +577,6 @@ class ServerAppIo(object):
|
|
|
594
577
|
metadata,
|
|
595
578
|
_registered_method=True)
|
|
596
579
|
|
|
597
|
-
@staticmethod
|
|
598
|
-
def GetRunStatus(request,
|
|
599
|
-
target,
|
|
600
|
-
options=(),
|
|
601
|
-
channel_credentials=None,
|
|
602
|
-
call_credentials=None,
|
|
603
|
-
insecure=False,
|
|
604
|
-
compression=None,
|
|
605
|
-
wait_for_ready=None,
|
|
606
|
-
timeout=None,
|
|
607
|
-
metadata=None):
|
|
608
|
-
return grpc.experimental.unary_unary(
|
|
609
|
-
request,
|
|
610
|
-
target,
|
|
611
|
-
'/flwr.proto.ServerAppIo/GetRunStatus',
|
|
612
|
-
flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
|
|
613
|
-
flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
|
|
614
|
-
options,
|
|
615
|
-
channel_credentials,
|
|
616
|
-
insecure,
|
|
617
|
-
call_credentials,
|
|
618
|
-
compression,
|
|
619
|
-
wait_for_ready,
|
|
620
|
-
timeout,
|
|
621
|
-
metadata,
|
|
622
|
-
_registered_method=True)
|
|
623
|
-
|
|
624
580
|
@staticmethod
|
|
625
581
|
def UpdateRunStatus(request,
|
|
626
582
|
target,
|
|
@@ -108,23 +108,17 @@ class ServerAppIoStub:
|
|
|
108
108
|
]
|
|
109
109
|
"""Confirm Message Received"""
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
flwr.proto.run_pb2.
|
|
113
|
-
flwr.proto.run_pb2.
|
|
111
|
+
UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
|
|
112
|
+
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
113
|
+
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
114
114
|
]
|
|
115
115
|
"""///////////////////////////////////////////////////////////////////////////
|
|
116
116
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
117
117
|
///////////////////////////////////////////////////////////////////////////
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
Update the status of a given run
|
|
120
120
|
"""
|
|
121
121
|
|
|
122
|
-
UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
|
|
123
|
-
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
124
|
-
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
125
|
-
]
|
|
126
|
-
"""Update the status of a given run"""
|
|
127
|
-
|
|
128
122
|
PushLogs: grpc.UnaryUnaryMultiCallable[
|
|
129
123
|
flwr.proto.log_pb2.PushLogsRequest,
|
|
130
124
|
flwr.proto.log_pb2.PushLogsResponse,
|
|
@@ -230,23 +224,17 @@ class ServerAppIoAsyncStub:
|
|
|
230
224
|
]
|
|
231
225
|
"""Confirm Message Received"""
|
|
232
226
|
|
|
233
|
-
|
|
234
|
-
flwr.proto.run_pb2.
|
|
235
|
-
flwr.proto.run_pb2.
|
|
227
|
+
UpdateRunStatus: grpc.aio.UnaryUnaryMultiCallable[
|
|
228
|
+
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
229
|
+
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
236
230
|
]
|
|
237
231
|
"""///////////////////////////////////////////////////////////////////////////
|
|
238
232
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
239
233
|
///////////////////////////////////////////////////////////////////////////
|
|
240
234
|
|
|
241
|
-
|
|
235
|
+
Update the status of a given run
|
|
242
236
|
"""
|
|
243
237
|
|
|
244
|
-
UpdateRunStatus: grpc.aio.UnaryUnaryMultiCallable[
|
|
245
|
-
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
246
|
-
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
247
|
-
]
|
|
248
|
-
"""Update the status of a given run"""
|
|
249
|
-
|
|
250
238
|
PushLogs: grpc.aio.UnaryUnaryMultiCallable[
|
|
251
239
|
flwr.proto.log_pb2.PushLogsRequest,
|
|
252
240
|
flwr.proto.log_pb2.PushLogsResponse,
|
|
@@ -371,26 +359,18 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
|
|
|
371
359
|
"""Confirm Message Received"""
|
|
372
360
|
|
|
373
361
|
@abc.abstractmethod
|
|
374
|
-
def
|
|
362
|
+
def UpdateRunStatus(
|
|
375
363
|
self,
|
|
376
|
-
request: flwr.proto.run_pb2.
|
|
364
|
+
request: flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
377
365
|
context: _ServicerContext,
|
|
378
|
-
) -> typing.Union[flwr.proto.run_pb2.
|
|
366
|
+
) -> typing.Union[flwr.proto.run_pb2.UpdateRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.UpdateRunStatusResponse]]:
|
|
379
367
|
"""///////////////////////////////////////////////////////////////////////////
|
|
380
368
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
381
369
|
///////////////////////////////////////////////////////////////////////////
|
|
382
370
|
|
|
383
|
-
|
|
371
|
+
Update the status of a given run
|
|
384
372
|
"""
|
|
385
373
|
|
|
386
|
-
@abc.abstractmethod
|
|
387
|
-
def UpdateRunStatus(
|
|
388
|
-
self,
|
|
389
|
-
request: flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
390
|
-
context: _ServicerContext,
|
|
391
|
-
) -> typing.Union[flwr.proto.run_pb2.UpdateRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.UpdateRunStatusResponse]]:
|
|
392
|
-
"""Update the status of a given run"""
|
|
393
|
-
|
|
394
374
|
@abc.abstractmethod
|
|
395
375
|
def PushLogs(
|
|
396
376
|
self,
|
flwr/proto/simulationio_pb2.py
CHANGED
|
@@ -28,7 +28,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__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\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x16\x66lwr/proto/appio.proto2\
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x16\x66lwr/proto/appio.proto2\xaf\x06\n\x0cSimulationIo\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\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x62\x06proto3')
|
|
32
32
|
|
|
33
33
|
_globals = globals()
|
|
34
34
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -36,5 +36,5 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.simulationio_pb2
|
|
|
36
36
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
37
|
DESCRIPTOR._loaded_options = None
|
|
38
38
|
_globals['_SIMULATIONIO']._serialized_start=142
|
|
39
|
-
_globals['_SIMULATIONIO']._serialized_end=
|
|
39
|
+
_globals['_SIMULATIONIO']._serialized_end=957
|
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -67,11 +67,6 @@ class SimulationIoStub(object):
|
|
|
67
67
|
request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
|
|
68
68
|
response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
|
|
69
69
|
_registered_method=True)
|
|
70
|
-
self.GetRunStatus = channel.unary_unary(
|
|
71
|
-
'/flwr.proto.SimulationIo/GetRunStatus',
|
|
72
|
-
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
|
|
73
|
-
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
|
|
74
|
-
_registered_method=True)
|
|
75
70
|
self.UpdateRunStatus = channel.unary_unary(
|
|
76
71
|
'/flwr.proto.SimulationIo/UpdateRunStatus',
|
|
77
72
|
request_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
|
|
@@ -142,19 +137,12 @@ class SimulationIoServicer(object):
|
|
|
142
137
|
context.set_details('Method not implemented!')
|
|
143
138
|
raise NotImplementedError('Method not implemented!')
|
|
144
139
|
|
|
145
|
-
def
|
|
140
|
+
def UpdateRunStatus(self, request, context):
|
|
146
141
|
"""///////////////////////////////////////////////////////////////////////////
|
|
147
142
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
148
143
|
///////////////////////////////////////////////////////////////////////////
|
|
149
144
|
|
|
150
|
-
|
|
151
|
-
"""
|
|
152
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
153
|
-
context.set_details('Method not implemented!')
|
|
154
|
-
raise NotImplementedError('Method not implemented!')
|
|
155
|
-
|
|
156
|
-
def UpdateRunStatus(self, request, context):
|
|
157
|
-
"""Update the status of a given run
|
|
145
|
+
Update the status of a given run
|
|
158
146
|
"""
|
|
159
147
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
160
148
|
context.set_details('Method not implemented!')
|
|
@@ -211,11 +199,6 @@ def add_SimulationIoServicer_to_server(servicer, server):
|
|
|
211
199
|
request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.FromString,
|
|
212
200
|
response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.SerializeToString,
|
|
213
201
|
),
|
|
214
|
-
'GetRunStatus': grpc.unary_unary_rpc_method_handler(
|
|
215
|
-
servicer.GetRunStatus,
|
|
216
|
-
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.FromString,
|
|
217
|
-
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.SerializeToString,
|
|
218
|
-
),
|
|
219
202
|
'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
|
|
220
203
|
servicer.UpdateRunStatus,
|
|
221
204
|
request_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.FromString,
|
|
@@ -404,33 +387,6 @@ class SimulationIo(object):
|
|
|
404
387
|
metadata,
|
|
405
388
|
_registered_method=True)
|
|
406
389
|
|
|
407
|
-
@staticmethod
|
|
408
|
-
def GetRunStatus(request,
|
|
409
|
-
target,
|
|
410
|
-
options=(),
|
|
411
|
-
channel_credentials=None,
|
|
412
|
-
call_credentials=None,
|
|
413
|
-
insecure=False,
|
|
414
|
-
compression=None,
|
|
415
|
-
wait_for_ready=None,
|
|
416
|
-
timeout=None,
|
|
417
|
-
metadata=None):
|
|
418
|
-
return grpc.experimental.unary_unary(
|
|
419
|
-
request,
|
|
420
|
-
target,
|
|
421
|
-
'/flwr.proto.SimulationIo/GetRunStatus',
|
|
422
|
-
flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
|
|
423
|
-
flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
|
|
424
|
-
options,
|
|
425
|
-
channel_credentials,
|
|
426
|
-
insecure,
|
|
427
|
-
call_credentials,
|
|
428
|
-
compression,
|
|
429
|
-
wait_for_ready,
|
|
430
|
-
timeout,
|
|
431
|
-
metadata,
|
|
432
|
-
_registered_method=True)
|
|
433
|
-
|
|
434
390
|
@staticmethod
|
|
435
391
|
def UpdateRunStatus(request,
|
|
436
392
|
target,
|
|
@@ -82,23 +82,17 @@ class SimulationIoStub:
|
|
|
82
82
|
]
|
|
83
83
|
"""Push app outputs"""
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
flwr.proto.run_pb2.
|
|
87
|
-
flwr.proto.run_pb2.
|
|
85
|
+
UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
|
|
86
|
+
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
87
|
+
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
88
88
|
]
|
|
89
89
|
"""///////////////////////////////////////////////////////////////////////////
|
|
90
90
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
91
91
|
///////////////////////////////////////////////////////////////////////////
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
Update the status of a given run
|
|
94
94
|
"""
|
|
95
95
|
|
|
96
|
-
UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
|
|
97
|
-
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
98
|
-
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
99
|
-
]
|
|
100
|
-
"""Update the status of a given run"""
|
|
101
|
-
|
|
102
96
|
PushLogs: grpc.UnaryUnaryMultiCallable[
|
|
103
97
|
flwr.proto.log_pb2.PushLogsRequest,
|
|
104
98
|
flwr.proto.log_pb2.PushLogsResponse,
|
|
@@ -163,23 +157,17 @@ class SimulationIoAsyncStub:
|
|
|
163
157
|
]
|
|
164
158
|
"""Push app outputs"""
|
|
165
159
|
|
|
166
|
-
|
|
167
|
-
flwr.proto.run_pb2.
|
|
168
|
-
flwr.proto.run_pb2.
|
|
160
|
+
UpdateRunStatus: grpc.aio.UnaryUnaryMultiCallable[
|
|
161
|
+
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
162
|
+
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
169
163
|
]
|
|
170
164
|
"""///////////////////////////////////////////////////////////////////////////
|
|
171
165
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
172
166
|
///////////////////////////////////////////////////////////////////////////
|
|
173
167
|
|
|
174
|
-
|
|
168
|
+
Update the status of a given run
|
|
175
169
|
"""
|
|
176
170
|
|
|
177
|
-
UpdateRunStatus: grpc.aio.UnaryUnaryMultiCallable[
|
|
178
|
-
flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
179
|
-
flwr.proto.run_pb2.UpdateRunStatusResponse,
|
|
180
|
-
]
|
|
181
|
-
"""Update the status of a given run"""
|
|
182
|
-
|
|
183
171
|
PushLogs: grpc.aio.UnaryUnaryMultiCallable[
|
|
184
172
|
flwr.proto.log_pb2.PushLogsRequest,
|
|
185
173
|
flwr.proto.log_pb2.PushLogsResponse,
|
|
@@ -257,26 +245,18 @@ class SimulationIoServicer(metaclass=abc.ABCMeta):
|
|
|
257
245
|
"""Push app outputs"""
|
|
258
246
|
|
|
259
247
|
@abc.abstractmethod
|
|
260
|
-
def
|
|
248
|
+
def UpdateRunStatus(
|
|
261
249
|
self,
|
|
262
|
-
request: flwr.proto.run_pb2.
|
|
250
|
+
request: flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
263
251
|
context: _ServicerContext,
|
|
264
|
-
) -> typing.Union[flwr.proto.run_pb2.
|
|
252
|
+
) -> typing.Union[flwr.proto.run_pb2.UpdateRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.UpdateRunStatusResponse]]:
|
|
265
253
|
"""///////////////////////////////////////////////////////////////////////////
|
|
266
254
|
Specific endpoints shared by ServerAppIo and SimulationIo
|
|
267
255
|
///////////////////////////////////////////////////////////////////////////
|
|
268
256
|
|
|
269
|
-
|
|
257
|
+
Update the status of a given run
|
|
270
258
|
"""
|
|
271
259
|
|
|
272
|
-
@abc.abstractmethod
|
|
273
|
-
def UpdateRunStatus(
|
|
274
|
-
self,
|
|
275
|
-
request: flwr.proto.run_pb2.UpdateRunStatusRequest,
|
|
276
|
-
context: _ServicerContext,
|
|
277
|
-
) -> typing.Union[flwr.proto.run_pb2.UpdateRunStatusResponse, collections.abc.Awaitable[flwr.proto.run_pb2.UpdateRunStatusResponse]]:
|
|
278
|
-
"""Update the status of a given run"""
|
|
279
|
-
|
|
280
260
|
@abc.abstractmethod
|
|
281
261
|
def PushLogs(
|
|
282
262
|
self,
|
|
@@ -36,7 +36,6 @@ from flwr.common.serde import (
|
|
|
36
36
|
message_from_proto,
|
|
37
37
|
message_to_proto,
|
|
38
38
|
run_status_from_proto,
|
|
39
|
-
run_status_to_proto,
|
|
40
39
|
run_to_proto,
|
|
41
40
|
)
|
|
42
41
|
from flwr.common.typing import Fab, RunStatus
|
|
@@ -76,8 +75,6 @@ from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
|
|
76
75
|
from flwr.proto.run_pb2 import ( # pylint: disable=E0611
|
|
77
76
|
GetRunRequest,
|
|
78
77
|
GetRunResponse,
|
|
79
|
-
GetRunStatusRequest,
|
|
80
|
-
GetRunStatusResponse,
|
|
81
78
|
UpdateRunStatusRequest,
|
|
82
79
|
UpdateRunStatusResponse,
|
|
83
80
|
)
|
|
@@ -434,21 +431,6 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
|
434
431
|
state.add_serverapp_log(request.run_id, merged_logs)
|
|
435
432
|
return PushLogsResponse()
|
|
436
433
|
|
|
437
|
-
def GetRunStatus(
|
|
438
|
-
self, request: GetRunStatusRequest, context: grpc.ServicerContext
|
|
439
|
-
) -> GetRunStatusResponse:
|
|
440
|
-
"""Get the status of a run."""
|
|
441
|
-
log(DEBUG, "ServerAppIoServicer.GetRunStatus")
|
|
442
|
-
state = self.state_factory.state()
|
|
443
|
-
|
|
444
|
-
# Get run status from LinkState
|
|
445
|
-
run_statuses = state.get_run_status(set(request.run_ids))
|
|
446
|
-
run_status_dict = {
|
|
447
|
-
run_id: run_status_to_proto(run_status)
|
|
448
|
-
for run_id, run_status in run_statuses.items()
|
|
449
|
-
}
|
|
450
|
-
return GetRunStatusResponse(run_status_dict=run_status_dict)
|
|
451
|
-
|
|
452
434
|
def SendAppHeartbeat(
|
|
453
435
|
self, request: SendAppHeartbeatRequest, context: grpc.ServicerContext
|
|
454
436
|
) -> SendAppHeartbeatResponse:
|
|
@@ -29,7 +29,6 @@ from flwr.common.serde import (
|
|
|
29
29
|
context_to_proto,
|
|
30
30
|
fab_to_proto,
|
|
31
31
|
run_status_from_proto,
|
|
32
|
-
run_status_to_proto,
|
|
33
32
|
run_to_proto,
|
|
34
33
|
)
|
|
35
34
|
from flwr.common.typing import Fab, RunStatus
|
|
@@ -57,8 +56,6 @@ from flwr.proto.run_pb2 import ( # pylint: disable=E0611
|
|
|
57
56
|
GetFederationOptionsResponse,
|
|
58
57
|
GetRunRequest,
|
|
59
58
|
GetRunResponse,
|
|
60
|
-
GetRunStatusRequest,
|
|
61
|
-
GetRunStatusResponse,
|
|
62
59
|
UpdateRunStatusRequest,
|
|
63
60
|
UpdateRunStatusResponse,
|
|
64
61
|
)
|
|
@@ -219,22 +216,6 @@ class SimulationIoServicer(simulationio_pb2_grpc.SimulationIoServicer):
|
|
|
219
216
|
)
|
|
220
217
|
return UpdateRunStatusResponse()
|
|
221
218
|
|
|
222
|
-
def GetRunStatus(
|
|
223
|
-
self, request: GetRunStatusRequest, context: ServicerContext
|
|
224
|
-
) -> GetRunStatusResponse:
|
|
225
|
-
"""Get status of requested runs."""
|
|
226
|
-
log(DEBUG, "SimultionIoServicer.GetRunStatus")
|
|
227
|
-
state = self.state_factory.state()
|
|
228
|
-
|
|
229
|
-
statuses = state.get_run_status(set(request.run_ids))
|
|
230
|
-
|
|
231
|
-
return GetRunStatusResponse(
|
|
232
|
-
run_status_dict={
|
|
233
|
-
run_id: run_status_to_proto(status)
|
|
234
|
-
for run_id, status in statuses.items()
|
|
235
|
-
}
|
|
236
|
-
)
|
|
237
|
-
|
|
238
219
|
def PushLogs(
|
|
239
220
|
self, request: PushLogsRequest, context: grpc.ServicerContext
|
|
240
221
|
) -> PushLogsResponse:
|
flwr/supercore/constant.py
CHANGED
|
@@ -59,6 +59,7 @@ MIME_MAP = {
|
|
|
59
59
|
|
|
60
60
|
# Constants for federations
|
|
61
61
|
NOOP_FEDERATION = f"@{NOOP_ACCOUNT_NAME}/default"
|
|
62
|
+
NOOP_FEDERATION_DESCRIPTION = "A federation for testing and development purposes."
|
|
62
63
|
|
|
63
64
|
# Constants for exit handling
|
|
64
65
|
FORCE_EXIT_TIMEOUT_SECONDS = 5 # Used in `flwr_exit` function
|
|
@@ -52,24 +52,24 @@ class SqlObjectStore(ObjectStore, SqlMixin):
|
|
|
52
52
|
|
|
53
53
|
child_ids = [child.object_id for child in tree_node.children]
|
|
54
54
|
with self.session():
|
|
55
|
+
# Insert new object if it doesn't exist (race-condition safe)
|
|
56
|
+
# RETURNING returns a row only if the insert succeeded
|
|
55
57
|
rows = self.query(
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
58
|
+
"INSERT INTO objects "
|
|
59
|
+
"(object_id, content, is_available, ref_count) "
|
|
60
|
+
"VALUES (:object_id, :content, :is_available, :ref_count) "
|
|
61
|
+
"ON CONFLICT (object_id) DO NOTHING "
|
|
62
|
+
"RETURNING object_id",
|
|
63
|
+
{
|
|
64
|
+
"object_id": obj_id,
|
|
65
|
+
"content": b"",
|
|
66
|
+
"is_available": 0,
|
|
67
|
+
"ref_count": 0,
|
|
68
|
+
},
|
|
59
69
|
)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"INSERT INTO objects "
|
|
64
|
-
"(object_id, content, is_available, ref_count) "
|
|
65
|
-
"VALUES (:object_id, :content, :is_available, :ref_count)",
|
|
66
|
-
{
|
|
67
|
-
"object_id": obj_id,
|
|
68
|
-
"content": b"",
|
|
69
|
-
"is_available": 0,
|
|
70
|
-
"ref_count": 0,
|
|
71
|
-
},
|
|
72
|
-
)
|
|
70
|
+
|
|
71
|
+
if rows:
|
|
72
|
+
# New object inserted: set up child relationships
|
|
73
73
|
for cid in child_ids:
|
|
74
74
|
self.query(
|
|
75
75
|
"INSERT INTO object_children (parent_id, child_id) "
|
|
@@ -83,8 +83,12 @@ class SqlObjectStore(ObjectStore, SqlMixin):
|
|
|
83
83
|
)
|
|
84
84
|
new_objects.append(obj_id)
|
|
85
85
|
else:
|
|
86
|
-
#
|
|
87
|
-
|
|
86
|
+
# Object exists: check if unavailable
|
|
87
|
+
rows = self.query(
|
|
88
|
+
"SELECT is_available FROM objects WHERE object_id = :object_id",
|
|
89
|
+
{"object_id": obj_id},
|
|
90
|
+
)
|
|
91
|
+
if rows and not rows[0]["is_available"]:
|
|
88
92
|
new_objects.append(obj_id)
|
|
89
93
|
|
|
90
94
|
# Ensure run mapping
|
|
@@ -56,8 +56,8 @@ class FederationManager(ABC):
|
|
|
56
56
|
"""Given a node ID, check if it is in the federation."""
|
|
57
57
|
|
|
58
58
|
@abstractmethod
|
|
59
|
-
def get_federations(self, flwr_aid: str) -> list[str]:
|
|
60
|
-
"""Get federations of which the account is a member."""
|
|
59
|
+
def get_federations(self, flwr_aid: str) -> list[tuple[str, str]]:
|
|
60
|
+
"""Get federations (name, description) of which the account is a member."""
|
|
61
61
|
|
|
62
62
|
@abstractmethod
|
|
63
63
|
def get_details(self, federation: str) -> Federation:
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
from flwr.common.constant import NOOP_ACCOUNT_NAME, NOOP_FLWR_AID
|
|
19
19
|
from flwr.common.typing import Federation
|
|
20
20
|
from flwr.proto.federation_pb2 import Account # pylint: disable=E0611
|
|
21
|
-
from flwr.supercore.constant import NOOP_FEDERATION
|
|
21
|
+
from flwr.supercore.constant import NOOP_FEDERATION, NOOP_FEDERATION_DESCRIPTION
|
|
22
22
|
|
|
23
23
|
from .federation_manager import FederationManager
|
|
24
24
|
|
|
@@ -48,11 +48,11 @@ class NoOpFederationManager(FederationManager):
|
|
|
48
48
|
raise ValueError(f"Federation '{federation}' does not exist.")
|
|
49
49
|
return True
|
|
50
50
|
|
|
51
|
-
def get_federations(self, flwr_aid: str) -> list[str]:
|
|
52
|
-
"""Get federations of which the account is a member."""
|
|
51
|
+
def get_federations(self, flwr_aid: str) -> list[tuple[str, str]]:
|
|
52
|
+
"""Get federations (name, description) of which the account is a member."""
|
|
53
53
|
if flwr_aid != NOOP_FLWR_AID:
|
|
54
54
|
return []
|
|
55
|
-
return [NOOP_FEDERATION]
|
|
55
|
+
return [(NOOP_FEDERATION, NOOP_FEDERATION_DESCRIPTION)]
|
|
56
56
|
|
|
57
57
|
def get_details(self, federation: str) -> Federation:
|
|
58
58
|
"""Get details of the federation."""
|
|
@@ -66,6 +66,7 @@ class NoOpFederationManager(FederationManager):
|
|
|
66
66
|
]
|
|
67
67
|
return Federation(
|
|
68
68
|
name=NOOP_FEDERATION,
|
|
69
|
+
description=NOOP_FEDERATION_DESCRIPTION,
|
|
69
70
|
accounts=[Account(id=NOOP_FLWR_AID, name=NOOP_ACCOUNT_NAME)],
|
|
70
71
|
nodes=nodes,
|
|
71
72
|
runs=runs,
|
|
@@ -536,9 +536,10 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
|
536
536
|
|
|
537
537
|
# Get federations the account is a member of
|
|
538
538
|
federations = state.federation_manager.get_federations(flwr_aid=flwr_aid)
|
|
539
|
-
|
|
540
539
|
return ListFederationsResponse(
|
|
541
|
-
federations=[
|
|
540
|
+
federations=[
|
|
541
|
+
Federation(name=fed[0], description=fed[1]) for fed in federations
|
|
542
|
+
]
|
|
542
543
|
)
|
|
543
544
|
|
|
544
545
|
def ShowFederation(
|
|
@@ -558,7 +559,7 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
|
558
559
|
|
|
559
560
|
# Ensure flwr_aid is a member of the requested federation
|
|
560
561
|
federation = request.federation_name
|
|
561
|
-
if federation not in federations:
|
|
562
|
+
if federation not in [fed[0] for fed in federations]:
|
|
562
563
|
context.abort(
|
|
563
564
|
grpc.StatusCode.FAILED_PRECONDITION,
|
|
564
565
|
f"Federation '{federation}' does not exist or you are "
|
|
@@ -571,6 +572,7 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
|
571
572
|
# Build Federation proto object
|
|
572
573
|
federation_proto = Federation(
|
|
573
574
|
name=federation,
|
|
575
|
+
member_aids=[acc.id for acc in details.accounts], # Deprecated in v1.26.0
|
|
574
576
|
accounts=details.accounts,
|
|
575
577
|
nodes=details.nodes,
|
|
576
578
|
runs=[run_to_proto(run) for run in details.runs],
|
{flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.26.0.
|
|
3
|
+
Version: 1.26.0.dev20260203
|
|
4
4
|
Summary: Flower: A Friendly Federated AI Framework
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
|
{flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/RECORD
RENAMED
|
@@ -23,7 +23,7 @@ flwr/cli/config_utils.py,sha256=LNmbPODWefsEtt4ov63BFtuTcK1Pb8Z-AHt1_haWWdA,7841
|
|
|
23
23
|
flwr/cli/constant.py,sha256=MYLI7m9ntwWNkFgEEtKVo1JWX3umf_0EdqY8nJy-83Y,3525
|
|
24
24
|
flwr/cli/example.py,sha256=SNTorkKPrx1rOryGREUyZu8TcOc1-vFv1zEddaysdY0,2216
|
|
25
25
|
flwr/cli/federation/__init__.py,sha256=okxswL4fAjApI9gV_alU1lRkTUcQRbwlzvtUTLz61fE,793
|
|
26
|
-
flwr/cli/federation/ls.py,sha256=
|
|
26
|
+
flwr/cli/federation/ls.py,sha256=k3FyGrH_xh_OdHqw5oj1S5RTKm8ZBqxeA4m6fEEoQx8,10278
|
|
27
27
|
flwr/cli/flower_config.py,sha256=YQfuFGW52jf6EoAxWrXQYw6lmuH0j2qsZ0twHRLxx4k,15278
|
|
28
28
|
flwr/cli/install.py,sha256=AKjJxDr_kBJirpqMg_EemlP23CfH5UF3h5IjtJQ_xPs,9124
|
|
29
29
|
flwr/cli/log.py,sha256=BPA0dvGlXx5PrtURPua5fJyF7iVrb28K4fEY2Uth0EE,7317
|
|
@@ -42,7 +42,7 @@ flwr/cli/supernode/ls.py,sha256=mmpwIpwp5YZSdq3gDlv0h8QpKoMBgZWrMrvJm_ltiRw,7594
|
|
|
42
42
|
flwr/cli/supernode/register.py,sha256=HzgJ1Q8Mlx7oJE-2kRLbIX2OrQP7wM0IeywirLqyz9Y,4724
|
|
43
43
|
flwr/cli/supernode/unregister.py,sha256=ha8-oTXA4NW8xHLyQPHn-e0f7-9bF2QyjXxUD299O6s,2938
|
|
44
44
|
flwr/cli/typing.py,sha256=xGAIv9mAVzs6UXapzu4i8bQ-MckzHMSihtLcnu5SWGU,7562
|
|
45
|
-
flwr/cli/utils.py,sha256=
|
|
45
|
+
flwr/cli/utils.py,sha256=BTPz9p6X5_u6cZvr43pzfuT26t6XJnXPwUu-0Tp2yCk,17442
|
|
46
46
|
flwr/client/__init__.py,sha256=xwkPJfdeWxIIfmiPE5vnmnY_JbTlErP0Qs9eBP6qRFg,1252
|
|
47
47
|
flwr/client/client.py,sha256=3HAchxvknKG9jYbB7swNyDj-e5vUWDuMKoLvbT7jCVM,7895
|
|
48
48
|
flwr/client/dpfedavg_numpy_client.py,sha256=ELDHyEJcTB-FlLhHC-JXy8HuB3ZFHfT0HL3g1VSWY5w,7451
|
|
@@ -119,7 +119,7 @@ flwr/common/secure_aggregation/secaggplus_utils.py,sha256=E_xU-Zd45daO1em7M6C2wO
|
|
|
119
119
|
flwr/common/serde.py,sha256=FqqJqNqCk-DryCOgTGkabENvFeU2Q0LieLe0bt3qBbU,22342
|
|
120
120
|
flwr/common/serde_utils.py,sha256=Vk49PnZWRgo0NrvBhFqH-Li7sMFVVgyrs3Ck7kHB-ZE,5820
|
|
121
121
|
flwr/common/telemetry.py,sha256=7HNy5ytioJ3SbFtaKNucwYYC-IXEOXphitZbdHmSlfk,8924
|
|
122
|
-
flwr/common/typing.py,sha256=
|
|
122
|
+
flwr/common/typing.py,sha256=5wBdrZ2VFDlerywQyI_WTgrgPcZ68YGamok79Tg8U60,7388
|
|
123
123
|
flwr/compat/__init__.py,sha256=gbfDQKKKMZzi3GswyVRgyLdDlHiWj3wU6dg7y6m5O_s,752
|
|
124
124
|
flwr/compat/client/__init__.py,sha256=qpbo0lcxdNL4qy5KHqiGm8OLxSxkYgI_-dLh5rwhtcI,746
|
|
125
125
|
flwr/compat/client/app.py,sha256=oBOB-gYm0oqxtfAp58QZtv3dyUsPxjFm__f1_teenHU,27178
|
|
@@ -151,8 +151,8 @@ flwr/proto/fab_pb2.py,sha256=QDkVHGRGmugjQQUiN8A_okppZ5e2pJi5KipjnWmF6e4,2320
|
|
|
151
151
|
flwr/proto/fab_pb2.pyi,sha256=PUUZ1FHeTwXxjVmTX14Vx5gmgRSFvoW_e5v_Z5qkT54,3948
|
|
152
152
|
flwr/proto/fab_pb2_grpc.py,sha256=jmhCnnwSqBpZ0329XGUGARbcz5sHrr0WrXwccqzc3Vs,895
|
|
153
153
|
flwr/proto/fab_pb2_grpc.pyi,sha256=fMwjLr-QCljWBa8uk0fvMCytnrF1-IzFLCbezqEmvdU,1071
|
|
154
|
-
flwr/proto/federation_pb2.py,sha256=
|
|
155
|
-
flwr/proto/federation_pb2.pyi,sha256=
|
|
154
|
+
flwr/proto/federation_pb2.py,sha256=strZ42K6S-50tuRVCqXqGcaLR6suXrGFT0SQOqNcpLQ,1974
|
|
155
|
+
flwr/proto/federation_pb2.pyi,sha256=mk1qfH85SURZWXGVpAzpPCgPTu3L4dlEefucG3lMyu8,3203
|
|
156
156
|
flwr/proto/federation_pb2_grpc.py,sha256=HPErt9uXJPbY8jLtTNFr941z82uMm7cOx10hTHgcwZM,902
|
|
157
157
|
flwr/proto/federation_pb2_grpc.pyi,sha256=fMwjLr-QCljWBa8uk0fvMCytnrF1-IzFLCbezqEmvdU,1071
|
|
158
158
|
flwr/proto/fleet_pb2.py,sha256=HnxtM2pqVdn2xhl3e1NlLazpSMaGoUUEG9Nd17egxqU,6543
|
|
@@ -183,18 +183,18 @@ flwr/proto/recorddict_pb2.py,sha256=L2mNSyIVWA2dcI1xWI3gj0nktuDHYgxbbLuVRQKVU74,
|
|
|
183
183
|
flwr/proto/recorddict_pb2.pyi,sha256=BYgVNk985Ww4dCXCjDGg1YU6q7MuMqbDa0usGVH3ktg,15208
|
|
184
184
|
flwr/proto/recorddict_pb2_grpc.py,sha256=kw9_kXNcRe3y6j6HquG1P1MqccFFAogfi48djxbOLDE,902
|
|
185
185
|
flwr/proto/recorddict_pb2_grpc.pyi,sha256=fMwjLr-QCljWBa8uk0fvMCytnrF1-IzFLCbezqEmvdU,1071
|
|
186
|
-
flwr/proto/run_pb2.py,sha256=
|
|
187
|
-
flwr/proto/run_pb2.pyi,sha256=
|
|
186
|
+
flwr/proto/run_pb2.py,sha256=0HsPXXNxKq0uefBY3gJOBvu9gQGZ-FhKaGhJiAwMKgU,4146
|
|
187
|
+
flwr/proto/run_pb2.pyi,sha256=m6YeVUE2LnljsF_1FTpJWpxPEKw8RB_X1HuRFvijHG0,8689
|
|
188
188
|
flwr/proto/run_pb2_grpc.py,sha256=l5u1Ww6JxVLVN784Z2OQbkQ-tAf5yYGh6QbNDc4F5II,895
|
|
189
189
|
flwr/proto/run_pb2_grpc.pyi,sha256=fMwjLr-QCljWBa8uk0fvMCytnrF1-IzFLCbezqEmvdU,1071
|
|
190
|
-
flwr/proto/serverappio_pb2.py,sha256=
|
|
190
|
+
flwr/proto/serverappio_pb2.py,sha256=g4NlMFE4F3u0FXSmNJNGOe2nFRAaRRH8oEak6FSqeX8,3940
|
|
191
191
|
flwr/proto/serverappio_pb2.pyi,sha256=KpVM8B_O0M3RFJ-DtnNlQapJs4V-7pHcdEb2G3ECbhE,1998
|
|
192
|
-
flwr/proto/serverappio_pb2_grpc.py,sha256=
|
|
193
|
-
flwr/proto/serverappio_pb2_grpc.pyi,sha256
|
|
194
|
-
flwr/proto/simulationio_pb2.py,sha256=
|
|
192
|
+
flwr/proto/serverappio_pb2_grpc.py,sha256=CNLkE1rVU5TaJHC7XoWYwONyPcDwCq5t6sezceCZbIg,30319
|
|
193
|
+
flwr/proto/serverappio_pb2_grpc.pyi,sha256=-vpa_s5oGrT2aXE4zmIdDXXGxJ7ZSfcs8pIeOGvX7yE,15557
|
|
194
|
+
flwr/proto/simulationio_pb2.py,sha256=b7B2VXAwKcfgKPulDmOBQs0RvEWKnWbGuTwF4GvMnn8,2681
|
|
195
195
|
flwr/proto/simulationio_pb2.pyi,sha256=OsUGEduv1iJCew8C4cMz87Y5uQAhHDmxNyVfwA4kXd8,824
|
|
196
|
-
flwr/proto/simulationio_pb2_grpc.py,sha256=
|
|
197
|
-
flwr/proto/simulationio_pb2_grpc.pyi,sha256=
|
|
196
|
+
flwr/proto/simulationio_pb2_grpc.py,sha256=JVJ_u2RR64amAnacdH6op6eOW7CT0RAzZbRBfqPLBQk,19201
|
|
197
|
+
flwr/proto/simulationio_pb2_grpc.pyi,sha256=SHge7XK0FJoPsZzXBrVeagBUlmpRzMAiXDMaYkjB3eI,10614
|
|
198
198
|
flwr/proto/transport_pb2.py,sha256=xqDF2oI0PzAndH17O80SQkyOT_QF9m7CQ0166He7UDQ,10122
|
|
199
199
|
flwr/proto/transport_pb2.pyi,sha256=A-AzbyDAyp4hzJCuC6MOA1NewkFmtuhPwFCjPKqQP0Q,22450
|
|
200
200
|
flwr/proto/transport_pb2_grpc.py,sha256=jYsbV3KYdp4TaNfWxv3ljFEvB-Yjsa8MIPtTH-vVPPk,3600
|
|
@@ -276,10 +276,10 @@ flwr/server/superlink/linkstate/sql_linkstate.py,sha256=ziZvpEQBVV9GSxjHiS0fAyaY
|
|
|
276
276
|
flwr/server/superlink/linkstate/utils.py,sha256=IA1mKKhGVBPoD61VXKFa8dZ_prnfuyWIuKAeeHPLmuE,16000
|
|
277
277
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
|
278
278
|
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=2NFPynJMpYpT9C98Fr4n0QrTTjWBWbeUzlHcc6pg2kY,2279
|
|
279
|
-
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=
|
|
279
|
+
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=sEdA8lQzNEKMdpvvwzCsJJWHdlkPI1omCs6XyAWKES0,19586
|
|
280
280
|
flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
|
|
281
281
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=fHFW8SOR4iyfBxQeYOXWwqUStGsv0P4EAIVkBk69BN4,2174
|
|
282
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
|
282
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=QghTkyaNrSR41HMwQPtWAqhv6kWqdoj44tuto1K5x6A,9558
|
|
283
283
|
flwr/server/superlink/utils.py,sha256=pdeB9dm21e5D2Vuymme8069VWW5XuWZfi1LAm7nKjeQ,2400
|
|
284
284
|
flwr/server/typing.py,sha256=qr04ihK3cARvw2Cz64axwzbdCbLtK8R5DDtlh5kWXEU,1020
|
|
285
285
|
flwr/server/utils/__init__.py,sha256=U4gM84-uUFddarODDQkO6SjNUuGhFcsHJZMjSEbezkU,884
|
|
@@ -328,7 +328,7 @@ flwr/supercore/address.py,sha256=SgM_pazKsw1Avo5nms0WWgIZFUGS349O0gOP7N3bFW4,331
|
|
|
328
328
|
flwr/supercore/app_utils.py,sha256=P558DOr5a4UPyOdRCxbDQueQF-L-kSc6qzouPPuqj0U,1773
|
|
329
329
|
flwr/supercore/cli/__init__.py,sha256=EDl2aO-fuQfxSbL-T1W9RAfA2N0hpWHmqX_GSwblJbQ,845
|
|
330
330
|
flwr/supercore/cli/flower_superexec.py,sha256=IQIGzxgaeLNMNzGXGemfYK3lp8God5bTkXpVkbeP_ig,6109
|
|
331
|
-
flwr/supercore/constant.py,sha256=
|
|
331
|
+
flwr/supercore/constant.py,sha256=Hn87UDdFZBhVq2kbGziPoV2veozYZlJ3R_Unjmr7ekY,3008
|
|
332
332
|
flwr/supercore/corestate/__init__.py,sha256=Vau6-L_JG5QzNqtCTa9xCKGGljc09wY8avZmIjSJemg,774
|
|
333
333
|
flwr/supercore/corestate/corestate.py,sha256=EZg4gPXqVOXwS7t0tlPfedajoWj5T80oeDBNxpV2y2I,2874
|
|
334
334
|
flwr/supercore/corestate/in_memory_corestate.py,sha256=9qa6RuRZfCp6vs-ARYdiZjCL31VOAAxw0a_VkBXR5zY,5116
|
|
@@ -351,7 +351,7 @@ flwr/supercore/object_store/__init__.py,sha256=cdfPAmjINY6iOp8oI_LdcVh2simg469Mk
|
|
|
351
351
|
flwr/supercore/object_store/in_memory_object_store.py,sha256=-DU6n1Ef3EmllHY9SzeXw57ftoU0mR_6or4NIDSZlcs,9322
|
|
352
352
|
flwr/supercore/object_store/object_store.py,sha256=XLo-xe258TmCel9dNLCJepFjXaQtEi0wBqzU9YsyJVg,5221
|
|
353
353
|
flwr/supercore/object_store/object_store_factory.py,sha256=RByhm8Ow6TxmklP1MTluaze3v5kw0O1CILrA7Y0nWMg,2604
|
|
354
|
-
flwr/supercore/object_store/sql_object_store.py,sha256=
|
|
354
|
+
flwr/supercore/object_store/sql_object_store.py,sha256=z0zqPNwkx7tay3vFJ2Bd1Ddv3nWXBB3zcK-LP8ZfsbI,10349
|
|
355
355
|
flwr/supercore/primitives/__init__.py,sha256=Tx8GOjnmMo8Y74RsDGrMpfr-E0Nl8dcUDF784_ge6F8,745
|
|
356
356
|
flwr/supercore/primitives/asymmetric.py,sha256=1643niHYj3uEbfPd06VuMHwN3tKVwg0uVyR3RhTdWIU,3778
|
|
357
357
|
flwr/supercore/primitives/asymmetric_ed25519.py,sha256=eIhOTMibQW0FJX4MXdplHdL3HcfCiKuFu2mQ8GQTUz8,5025
|
|
@@ -385,15 +385,15 @@ flwr/superlink/auth_plugin/__init__.py,sha256=ApYBHnDmtv5gVrnxdFq97zC58O1icqHogK
|
|
|
385
385
|
flwr/superlink/auth_plugin/auth_plugin.py,sha256=xLqAYFG7sjAhYgyeTvvEY6fSMjPRq0offmTDRYpIs78,2956
|
|
386
386
|
flwr/superlink/auth_plugin/noop_auth_plugin.py,sha256=0MWjNXZdz6zGRfitlnZfVKu4sKVn0HhJvnp09c3xVUA,2962
|
|
387
387
|
flwr/superlink/federation/__init__.py,sha256=A1pFFvkEQrHzvRAOstr2o7nphx3JbuJgkNRFKJ9qD3M,890
|
|
388
|
-
flwr/superlink/federation/federation_manager.py,sha256
|
|
389
|
-
flwr/superlink/federation/noop_federation_manager.py,sha256=
|
|
388
|
+
flwr/superlink/federation/federation_manager.py,sha256=vpVaW-WS-mGAazxh9fy9Xp3gLPQozRsUoJiloG5_tBI,2354
|
|
389
|
+
flwr/superlink/federation/noop_federation_manager.py,sha256=LuBDncifAvcn8KszumZBmsp7-9PIp_5iHiHoPLahlBE,3149
|
|
390
390
|
flwr/superlink/servicer/__init__.py,sha256=ZC-kILcUGeh6IxJsfu24cTzUqIGXmQfEKsGfhsnhBpM,717
|
|
391
391
|
flwr/superlink/servicer/control/__init__.py,sha256=qhUTMt_Mg4lxslCJYn5hDSrA-lXf5ya3617BT8kR-2Y,803
|
|
392
392
|
flwr/superlink/servicer/control/control_account_auth_interceptor.py,sha256=AJs7GE-fyUBLcUEUzB058TpFzC7gyDOL17THvYkJTn8,6529
|
|
393
393
|
flwr/superlink/servicer/control/control_event_log_interceptor.py,sha256=r9LjF5VkrE1sZIcml-sO2uOPAwpvr6dj4tFchqoDcR4,5965
|
|
394
394
|
flwr/superlink/servicer/control/control_grpc.py,sha256=AD7q2eo7RvXEhntcfVLgoKAR7AWfD_Z56Qw51wGLanY,4218
|
|
395
395
|
flwr/superlink/servicer/control/control_license_interceptor.py,sha256=8d28soJ0mLLhpSGCpuY2YzgbX0vVO7Sqe2DcApEgILc,3336
|
|
396
|
-
flwr/superlink/servicer/control/control_servicer.py,sha256=
|
|
396
|
+
flwr/superlink/servicer/control/control_servicer.py,sha256=7z4orYaoEO0Zm5JDtlvJ6TKBOO5cDy20ieloCZ0K8iU,25682
|
|
397
397
|
flwr/supernode/__init__.py,sha256=KgeCaVvXWrU3rptNR1y0oBp4YtXbAcrnCcJAiOoWkI4,707
|
|
398
398
|
flwr/supernode/cli/__init__.py,sha256=JuEMr0-s9zv-PEWKuLB9tj1ocNfroSyNJ-oyv7ati9A,887
|
|
399
399
|
flwr/supernode/cli/flower_supernode.py,sha256=LhciYbUwUfvkR4hiHxizERhQzpqZOAG9d6qVm6-V4jY,10891
|
|
@@ -408,7 +408,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
|
|
|
408
408
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
|
|
409
409
|
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=5TOp0SelGqiWzRHfhYpoKzUd7EuVTqt5_PXvnUy7_Ok,11615
|
|
410
410
|
flwr/supernode/start_client_internal.py,sha256=3MkeDiWZr-SsvACuuAxJi8nYw6GYNKOO6q8b36E3R9k,26250
|
|
411
|
-
flwr_nightly-1.26.0.
|
|
412
|
-
flwr_nightly-1.26.0.
|
|
413
|
-
flwr_nightly-1.26.0.
|
|
414
|
-
flwr_nightly-1.26.0.
|
|
411
|
+
flwr_nightly-1.26.0.dev20260203.dist-info/METADATA,sha256=HtDC4Sl-9R0f1NwHCNuXm4dulzTEou5G11nh6ximGBw,14447
|
|
412
|
+
flwr_nightly-1.26.0.dev20260203.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
413
|
+
flwr_nightly-1.26.0.dev20260203.dist-info/entry_points.txt,sha256=hxHD2ixb_vJFDOlZV-zB4Ao32_BQlL34ftsDh1GXv14,420
|
|
414
|
+
flwr_nightly-1.26.0.dev20260203.dist-info/RECORD,,
|
{flwr_nightly-1.26.0.dev20260202.dist-info → flwr_nightly-1.26.0.dev20260203.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|