flwr 1.12.0__py3-none-any.whl → 1.13.1__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/app.py +2 -0
- flwr/cli/build.py +2 -2
- flwr/cli/config_utils.py +97 -0
- flwr/cli/install.py +0 -16
- flwr/cli/log.py +63 -97
- flwr/cli/ls.py +228 -0
- flwr/cli/new/new.py +23 -13
- flwr/cli/new/templates/app/README.md.tpl +11 -0
- flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +2 -1
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
- flwr/cli/run/run.py +37 -89
- flwr/client/app.py +73 -34
- flwr/client/clientapp/app.py +58 -37
- flwr/client/grpc_rere_client/connection.py +7 -12
- flwr/client/nodestate/__init__.py +25 -0
- flwr/client/nodestate/in_memory_nodestate.py +38 -0
- flwr/client/nodestate/nodestate.py +30 -0
- flwr/client/nodestate/nodestate_factory.py +37 -0
- flwr/client/rest_client/connection.py +4 -14
- flwr/client/{node_state.py → run_info_store.py} +4 -3
- flwr/client/supernode/app.py +34 -58
- flwr/common/args.py +152 -0
- flwr/common/config.py +10 -0
- flwr/common/constant.py +59 -7
- flwr/common/context.py +9 -4
- flwr/common/date.py +21 -3
- flwr/common/grpc.py +4 -1
- flwr/common/logger.py +108 -1
- flwr/common/object_ref.py +47 -16
- flwr/common/serde.py +34 -0
- flwr/common/telemetry.py +0 -6
- flwr/common/typing.py +32 -2
- flwr/proto/exec_pb2.py +23 -17
- flwr/proto/exec_pb2.pyi +58 -22
- flwr/proto/exec_pb2_grpc.py +34 -0
- flwr/proto/exec_pb2_grpc.pyi +13 -0
- flwr/proto/log_pb2.py +29 -0
- flwr/proto/log_pb2.pyi +39 -0
- flwr/proto/log_pb2_grpc.py +4 -0
- flwr/proto/log_pb2_grpc.pyi +4 -0
- flwr/proto/message_pb2.py +8 -8
- flwr/proto/message_pb2.pyi +4 -1
- flwr/proto/run_pb2.py +32 -27
- flwr/proto/run_pb2.pyi +44 -1
- flwr/proto/serverappio_pb2.py +52 -0
- flwr/proto/{driver_pb2.pyi → serverappio_pb2.pyi} +54 -0
- flwr/proto/serverappio_pb2_grpc.py +376 -0
- flwr/proto/serverappio_pb2_grpc.pyi +147 -0
- flwr/proto/simulationio_pb2.py +38 -0
- flwr/proto/simulationio_pb2.pyi +65 -0
- flwr/proto/simulationio_pb2_grpc.py +205 -0
- flwr/proto/simulationio_pb2_grpc.pyi +81 -0
- flwr/server/app.py +297 -162
- flwr/server/driver/driver.py +15 -1
- flwr/server/driver/grpc_driver.py +89 -50
- flwr/server/driver/inmemory_driver.py +6 -16
- flwr/server/run_serverapp.py +11 -235
- flwr/server/{superlink/state → serverapp}/__init__.py +3 -9
- flwr/server/serverapp/app.py +234 -0
- flwr/server/strategy/aggregate.py +4 -4
- flwr/server/strategy/fedadam.py +11 -1
- flwr/server/superlink/driver/__init__.py +1 -1
- flwr/server/superlink/driver/{driver_grpc.py → serverappio_grpc.py} +19 -16
- flwr/server/superlink/driver/{driver_servicer.py → serverappio_servicer.py} +125 -39
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +4 -2
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +2 -2
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +4 -2
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -2
- flwr/server/superlink/fleet/message_handler/message_handler.py +7 -7
- flwr/server/superlink/fleet/rest_rere/rest_api.py +10 -9
- flwr/server/superlink/fleet/vce/vce_api.py +23 -23
- flwr/server/superlink/linkstate/__init__.py +28 -0
- flwr/server/superlink/{state/in_memory_state.py → linkstate/in_memory_linkstate.py} +237 -64
- flwr/server/superlink/{state/state.py → linkstate/linkstate.py} +166 -22
- flwr/server/superlink/{state/state_factory.py → linkstate/linkstate_factory.py} +9 -9
- flwr/server/superlink/{state/sqlite_state.py → linkstate/sqlite_linkstate.py} +383 -174
- flwr/server/superlink/linkstate/utils.py +389 -0
- flwr/server/superlink/simulation/__init__.py +15 -0
- flwr/server/superlink/simulation/simulationio_grpc.py +65 -0
- flwr/server/superlink/simulation/simulationio_servicer.py +153 -0
- flwr/simulation/__init__.py +5 -1
- flwr/simulation/app.py +236 -347
- flwr/simulation/legacy_app.py +402 -0
- flwr/simulation/ray_transport/ray_client_proxy.py +2 -2
- flwr/simulation/run_simulation.py +56 -141
- flwr/simulation/simulationio_connection.py +86 -0
- flwr/superexec/app.py +6 -134
- flwr/superexec/deployment.py +70 -69
- flwr/superexec/exec_grpc.py +15 -8
- flwr/superexec/exec_servicer.py +65 -65
- flwr/superexec/executor.py +26 -7
- flwr/superexec/simulation.py +62 -150
- {flwr-1.12.0.dist-info → flwr-1.13.1.dist-info}/METADATA +9 -7
- {flwr-1.12.0.dist-info → flwr-1.13.1.dist-info}/RECORD +105 -85
- {flwr-1.12.0.dist-info → flwr-1.13.1.dist-info}/entry_points.txt +2 -0
- flwr/client/node_state_tests.py +0 -66
- flwr/proto/driver_pb2.py +0 -42
- flwr/proto/driver_pb2_grpc.py +0 -239
- flwr/proto/driver_pb2_grpc.pyi +0 -94
- flwr/server/superlink/state/utils.py +0 -148
- {flwr-1.12.0.dist-info → flwr-1.13.1.dist-info}/LICENSE +0 -0
- {flwr-1.12.0.dist-info → flwr-1.13.1.dist-info}/WHEEL +0 -0
flwr/common/typing.py
CHANGED
|
@@ -24,7 +24,7 @@ import numpy.typing as npt
|
|
|
24
24
|
|
|
25
25
|
NDArray = npt.NDArray[Any]
|
|
26
26
|
NDArrayInt = npt.NDArray[np.int_]
|
|
27
|
-
NDArrayFloat = npt.NDArray[np.
|
|
27
|
+
NDArrayFloat = npt.NDArray[np.float64]
|
|
28
28
|
NDArrays = list[NDArray]
|
|
29
29
|
|
|
30
30
|
# The following union type contains Python types corresponding to ProtoBuf types that
|
|
@@ -208,7 +208,16 @@ class ClientMessage:
|
|
|
208
208
|
|
|
209
209
|
|
|
210
210
|
@dataclass
|
|
211
|
-
class
|
|
211
|
+
class RunStatus:
|
|
212
|
+
"""Run status information."""
|
|
213
|
+
|
|
214
|
+
status: str
|
|
215
|
+
sub_status: str
|
|
216
|
+
details: str
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
@dataclass
|
|
220
|
+
class Run: # pylint: disable=too-many-instance-attributes
|
|
212
221
|
"""Run details."""
|
|
213
222
|
|
|
214
223
|
run_id: int
|
|
@@ -216,6 +225,27 @@ class Run:
|
|
|
216
225
|
fab_version: str
|
|
217
226
|
fab_hash: str
|
|
218
227
|
override_config: UserConfig
|
|
228
|
+
pending_at: str
|
|
229
|
+
starting_at: str
|
|
230
|
+
running_at: str
|
|
231
|
+
finished_at: str
|
|
232
|
+
status: RunStatus
|
|
233
|
+
|
|
234
|
+
@classmethod
|
|
235
|
+
def create_empty(cls, run_id: int) -> "Run":
|
|
236
|
+
"""Return an empty Run instance."""
|
|
237
|
+
return cls(
|
|
238
|
+
run_id=run_id,
|
|
239
|
+
fab_id="",
|
|
240
|
+
fab_version="",
|
|
241
|
+
fab_hash="",
|
|
242
|
+
override_config={},
|
|
243
|
+
pending_at="",
|
|
244
|
+
starting_at="",
|
|
245
|
+
running_at="",
|
|
246
|
+
finished_at="",
|
|
247
|
+
status=RunStatus(status="", sub_status="", details=""),
|
|
248
|
+
)
|
|
219
249
|
|
|
220
250
|
|
|
221
251
|
@dataclass
|
flwr/proto/exec_pb2.py
CHANGED
|
@@ -14,9 +14,11 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
16
16
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
17
|
+
from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
|
|
18
|
+
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
17
19
|
|
|
18
20
|
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\"\
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x14\x66lwr/proto/run.proto\"\xfb\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord\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\x10StartRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\x32\xe9\x01\n\x04\x45xec\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x62\x06proto3')
|
|
20
22
|
|
|
21
23
|
_globals = globals()
|
|
22
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -25,20 +27,24 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
25
27
|
DESCRIPTOR._options = None
|
|
26
28
|
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._options = None
|
|
27
29
|
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
28
|
-
_globals['
|
|
29
|
-
_globals['
|
|
30
|
-
_globals['_STARTRUNREQUEST']._serialized_start=
|
|
31
|
-
_globals['_STARTRUNREQUEST']._serialized_end=
|
|
32
|
-
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=
|
|
33
|
-
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=
|
|
34
|
-
_globals['
|
|
35
|
-
_globals['
|
|
36
|
-
_globals['
|
|
37
|
-
_globals['
|
|
38
|
-
_globals['
|
|
39
|
-
_globals['
|
|
40
|
-
_globals['
|
|
41
|
-
_globals['
|
|
42
|
-
_globals['
|
|
43
|
-
_globals['
|
|
30
|
+
_globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._options = None
|
|
31
|
+
_globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_options = b'8\001'
|
|
32
|
+
_globals['_STARTRUNREQUEST']._serialized_start=138
|
|
33
|
+
_globals['_STARTRUNREQUEST']._serialized_end=389
|
|
34
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=316
|
|
35
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=389
|
|
36
|
+
_globals['_STARTRUNRESPONSE']._serialized_start=391
|
|
37
|
+
_globals['_STARTRUNRESPONSE']._serialized_end=425
|
|
38
|
+
_globals['_STREAMLOGSREQUEST']._serialized_start=427
|
|
39
|
+
_globals['_STREAMLOGSREQUEST']._serialized_end=487
|
|
40
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_start=489
|
|
41
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_end=555
|
|
42
|
+
_globals['_LISTRUNSREQUEST']._serialized_start=557
|
|
43
|
+
_globals['_LISTRUNSREQUEST']._serialized_end=606
|
|
44
|
+
_globals['_LISTRUNSRESPONSE']._serialized_start=609
|
|
45
|
+
_globals['_LISTRUNSRESPONSE']._serialized_end=766
|
|
46
|
+
_globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_start=703
|
|
47
|
+
_globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_end=766
|
|
48
|
+
_globals['_EXEC']._serialized_start=769
|
|
49
|
+
_globals['_EXEC']._serialized_end=1002
|
|
44
50
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/exec_pb2.pyi
CHANGED
|
@@ -4,6 +4,8 @@ isort:skip_file
|
|
|
4
4
|
"""
|
|
5
5
|
import builtins
|
|
6
6
|
import flwr.proto.fab_pb2
|
|
7
|
+
import flwr.proto.recordset_pb2
|
|
8
|
+
import flwr.proto.run_pb2
|
|
7
9
|
import flwr.proto.transport_pb2
|
|
8
10
|
import google.protobuf.descriptor
|
|
9
11
|
import google.protobuf.internal.containers
|
|
@@ -30,38 +32,23 @@ class StartRunRequest(google.protobuf.message.Message):
|
|
|
30
32
|
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
31
33
|
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
32
34
|
|
|
33
|
-
class FederationConfigEntry(google.protobuf.message.Message):
|
|
34
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
35
|
-
KEY_FIELD_NUMBER: builtins.int
|
|
36
|
-
VALUE_FIELD_NUMBER: builtins.int
|
|
37
|
-
key: typing.Text
|
|
38
|
-
@property
|
|
39
|
-
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
40
|
-
def __init__(self,
|
|
41
|
-
*,
|
|
42
|
-
key: typing.Text = ...,
|
|
43
|
-
value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
|
|
44
|
-
) -> None: ...
|
|
45
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
46
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
47
|
-
|
|
48
35
|
FAB_FIELD_NUMBER: builtins.int
|
|
49
36
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
50
|
-
|
|
37
|
+
FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
|
|
51
38
|
@property
|
|
52
39
|
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
|
53
40
|
@property
|
|
54
41
|
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
55
42
|
@property
|
|
56
|
-
def
|
|
43
|
+
def federation_options(self) -> flwr.proto.recordset_pb2.ConfigsRecord: ...
|
|
57
44
|
def __init__(self,
|
|
58
45
|
*,
|
|
59
46
|
fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
|
|
60
47
|
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
61
|
-
|
|
48
|
+
federation_options: typing.Optional[flwr.proto.recordset_pb2.ConfigsRecord] = ...,
|
|
62
49
|
) -> None: ...
|
|
63
|
-
def HasField(self, field_name: typing_extensions.Literal["fab",b"fab"]) -> builtins.bool: ...
|
|
64
|
-
def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","
|
|
50
|
+
def HasField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options"]) -> builtins.bool: ...
|
|
51
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options","override_config",b"override_config"]) -> None: ...
|
|
65
52
|
global___StartRunRequest = StartRunRequest
|
|
66
53
|
|
|
67
54
|
class StartRunResponse(google.protobuf.message.Message):
|
|
@@ -78,21 +65,70 @@ global___StartRunResponse = StartRunResponse
|
|
|
78
65
|
class StreamLogsRequest(google.protobuf.message.Message):
|
|
79
66
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
80
67
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
68
|
+
AFTER_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
81
69
|
run_id: builtins.int
|
|
70
|
+
after_timestamp: builtins.float
|
|
82
71
|
def __init__(self,
|
|
83
72
|
*,
|
|
84
73
|
run_id: builtins.int = ...,
|
|
74
|
+
after_timestamp: builtins.float = ...,
|
|
85
75
|
) -> None: ...
|
|
86
|
-
def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
|
|
76
|
+
def ClearField(self, field_name: typing_extensions.Literal["after_timestamp",b"after_timestamp","run_id",b"run_id"]) -> None: ...
|
|
87
77
|
global___StreamLogsRequest = StreamLogsRequest
|
|
88
78
|
|
|
89
79
|
class StreamLogsResponse(google.protobuf.message.Message):
|
|
90
80
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
91
81
|
LOG_OUTPUT_FIELD_NUMBER: builtins.int
|
|
82
|
+
LATEST_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
92
83
|
log_output: typing.Text
|
|
84
|
+
latest_timestamp: builtins.float
|
|
93
85
|
def __init__(self,
|
|
94
86
|
*,
|
|
95
87
|
log_output: typing.Text = ...,
|
|
88
|
+
latest_timestamp: builtins.float = ...,
|
|
96
89
|
) -> None: ...
|
|
97
|
-
def ClearField(self, field_name: typing_extensions.Literal["log_output",b"log_output"]) -> None: ...
|
|
90
|
+
def ClearField(self, field_name: typing_extensions.Literal["latest_timestamp",b"latest_timestamp","log_output",b"log_output"]) -> None: ...
|
|
98
91
|
global___StreamLogsResponse = StreamLogsResponse
|
|
92
|
+
|
|
93
|
+
class ListRunsRequest(google.protobuf.message.Message):
|
|
94
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
95
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
96
|
+
run_id: builtins.int
|
|
97
|
+
def __init__(self,
|
|
98
|
+
*,
|
|
99
|
+
run_id: typing.Optional[builtins.int] = ...,
|
|
100
|
+
) -> None: ...
|
|
101
|
+
def HasField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> builtins.bool: ...
|
|
102
|
+
def ClearField(self, field_name: typing_extensions.Literal["_run_id",b"_run_id","run_id",b"run_id"]) -> None: ...
|
|
103
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_run_id",b"_run_id"]) -> typing.Optional[typing_extensions.Literal["run_id"]]: ...
|
|
104
|
+
global___ListRunsRequest = ListRunsRequest
|
|
105
|
+
|
|
106
|
+
class ListRunsResponse(google.protobuf.message.Message):
|
|
107
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
108
|
+
class RunDictEntry(google.protobuf.message.Message):
|
|
109
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
110
|
+
KEY_FIELD_NUMBER: builtins.int
|
|
111
|
+
VALUE_FIELD_NUMBER: builtins.int
|
|
112
|
+
key: builtins.int
|
|
113
|
+
@property
|
|
114
|
+
def value(self) -> flwr.proto.run_pb2.Run: ...
|
|
115
|
+
def __init__(self,
|
|
116
|
+
*,
|
|
117
|
+
key: builtins.int = ...,
|
|
118
|
+
value: typing.Optional[flwr.proto.run_pb2.Run] = ...,
|
|
119
|
+
) -> None: ...
|
|
120
|
+
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
121
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
122
|
+
|
|
123
|
+
RUN_DICT_FIELD_NUMBER: builtins.int
|
|
124
|
+
NOW_FIELD_NUMBER: builtins.int
|
|
125
|
+
@property
|
|
126
|
+
def run_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, flwr.proto.run_pb2.Run]: ...
|
|
127
|
+
now: typing.Text
|
|
128
|
+
def __init__(self,
|
|
129
|
+
*,
|
|
130
|
+
run_dict: typing.Optional[typing.Mapping[builtins.int, flwr.proto.run_pb2.Run]] = ...,
|
|
131
|
+
now: typing.Text = ...,
|
|
132
|
+
) -> None: ...
|
|
133
|
+
def ClearField(self, field_name: typing_extensions.Literal["now",b"now","run_dict",b"run_dict"]) -> None: ...
|
|
134
|
+
global___ListRunsResponse = ListRunsResponse
|
flwr/proto/exec_pb2_grpc.py
CHANGED
|
@@ -24,6 +24,11 @@ class ExecStub(object):
|
|
|
24
24
|
request_serializer=flwr_dot_proto_dot_exec__pb2.StreamLogsRequest.SerializeToString,
|
|
25
25
|
response_deserializer=flwr_dot_proto_dot_exec__pb2.StreamLogsResponse.FromString,
|
|
26
26
|
)
|
|
27
|
+
self.ListRuns = channel.unary_unary(
|
|
28
|
+
'/flwr.proto.Exec/ListRuns',
|
|
29
|
+
request_serializer=flwr_dot_proto_dot_exec__pb2.ListRunsRequest.SerializeToString,
|
|
30
|
+
response_deserializer=flwr_dot_proto_dot_exec__pb2.ListRunsResponse.FromString,
|
|
31
|
+
)
|
|
27
32
|
|
|
28
33
|
|
|
29
34
|
class ExecServicer(object):
|
|
@@ -43,6 +48,13 @@ class ExecServicer(object):
|
|
|
43
48
|
context.set_details('Method not implemented!')
|
|
44
49
|
raise NotImplementedError('Method not implemented!')
|
|
45
50
|
|
|
51
|
+
def ListRuns(self, request, context):
|
|
52
|
+
"""flwr ls command
|
|
53
|
+
"""
|
|
54
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
55
|
+
context.set_details('Method not implemented!')
|
|
56
|
+
raise NotImplementedError('Method not implemented!')
|
|
57
|
+
|
|
46
58
|
|
|
47
59
|
def add_ExecServicer_to_server(servicer, server):
|
|
48
60
|
rpc_method_handlers = {
|
|
@@ -56,6 +68,11 @@ def add_ExecServicer_to_server(servicer, server):
|
|
|
56
68
|
request_deserializer=flwr_dot_proto_dot_exec__pb2.StreamLogsRequest.FromString,
|
|
57
69
|
response_serializer=flwr_dot_proto_dot_exec__pb2.StreamLogsResponse.SerializeToString,
|
|
58
70
|
),
|
|
71
|
+
'ListRuns': grpc.unary_unary_rpc_method_handler(
|
|
72
|
+
servicer.ListRuns,
|
|
73
|
+
request_deserializer=flwr_dot_proto_dot_exec__pb2.ListRunsRequest.FromString,
|
|
74
|
+
response_serializer=flwr_dot_proto_dot_exec__pb2.ListRunsResponse.SerializeToString,
|
|
75
|
+
),
|
|
59
76
|
}
|
|
60
77
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
61
78
|
'flwr.proto.Exec', rpc_method_handlers)
|
|
@@ -99,3 +116,20 @@ class Exec(object):
|
|
|
99
116
|
flwr_dot_proto_dot_exec__pb2.StreamLogsResponse.FromString,
|
|
100
117
|
options, channel_credentials,
|
|
101
118
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
119
|
+
|
|
120
|
+
@staticmethod
|
|
121
|
+
def ListRuns(request,
|
|
122
|
+
target,
|
|
123
|
+
options=(),
|
|
124
|
+
channel_credentials=None,
|
|
125
|
+
call_credentials=None,
|
|
126
|
+
insecure=False,
|
|
127
|
+
compression=None,
|
|
128
|
+
wait_for_ready=None,
|
|
129
|
+
timeout=None,
|
|
130
|
+
metadata=None):
|
|
131
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Exec/ListRuns',
|
|
132
|
+
flwr_dot_proto_dot_exec__pb2.ListRunsRequest.SerializeToString,
|
|
133
|
+
flwr_dot_proto_dot_exec__pb2.ListRunsResponse.FromString,
|
|
134
|
+
options, channel_credentials,
|
|
135
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
flwr/proto/exec_pb2_grpc.pyi
CHANGED
|
@@ -19,6 +19,11 @@ class ExecStub:
|
|
|
19
19
|
flwr.proto.exec_pb2.StreamLogsResponse]
|
|
20
20
|
"""Start log stream upon request"""
|
|
21
21
|
|
|
22
|
+
ListRuns: grpc.UnaryUnaryMultiCallable[
|
|
23
|
+
flwr.proto.exec_pb2.ListRunsRequest,
|
|
24
|
+
flwr.proto.exec_pb2.ListRunsResponse]
|
|
25
|
+
"""flwr ls command"""
|
|
26
|
+
|
|
22
27
|
|
|
23
28
|
class ExecServicer(metaclass=abc.ABCMeta):
|
|
24
29
|
@abc.abstractmethod
|
|
@@ -37,5 +42,13 @@ class ExecServicer(metaclass=abc.ABCMeta):
|
|
|
37
42
|
"""Start log stream upon request"""
|
|
38
43
|
pass
|
|
39
44
|
|
|
45
|
+
@abc.abstractmethod
|
|
46
|
+
def ListRuns(self,
|
|
47
|
+
request: flwr.proto.exec_pb2.ListRunsRequest,
|
|
48
|
+
context: grpc.ServicerContext,
|
|
49
|
+
) -> flwr.proto.exec_pb2.ListRunsResponse:
|
|
50
|
+
"""flwr ls command"""
|
|
51
|
+
pass
|
|
52
|
+
|
|
40
53
|
|
|
41
54
|
def add_ExecServicer_to_server(servicer: ExecServicer, server: grpc.Server) -> None: ...
|
flwr/proto/log_pb2.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: flwr/proto/log.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.0
|
|
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\x14\x66lwr/proto/log.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\"O\n\x0fPushLogsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x0c\n\x04logs\x18\x03 \x03(\t\"\x12\n\x10PushLogsResponseb\x06proto3')
|
|
19
|
+
|
|
20
|
+
_globals = globals()
|
|
21
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.log_pb2', _globals)
|
|
23
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
24
|
+
DESCRIPTOR._options = None
|
|
25
|
+
_globals['_PUSHLOGSREQUEST']._serialized_start=59
|
|
26
|
+
_globals['_PUSHLOGSREQUEST']._serialized_end=138
|
|
27
|
+
_globals['_PUSHLOGSRESPONSE']._serialized_start=140
|
|
28
|
+
_globals['_PUSHLOGSRESPONSE']._serialized_end=158
|
|
29
|
+
# @@protoc_insertion_point(module_scope)
|
flwr/proto/log_pb2.pyi
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
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.internal.containers
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import typing
|
|
11
|
+
import typing_extensions
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
class PushLogsRequest(google.protobuf.message.Message):
|
|
16
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
17
|
+
NODE_FIELD_NUMBER: builtins.int
|
|
18
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
19
|
+
LOGS_FIELD_NUMBER: builtins.int
|
|
20
|
+
@property
|
|
21
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
22
|
+
run_id: builtins.int
|
|
23
|
+
@property
|
|
24
|
+
def logs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
|
25
|
+
def __init__(self,
|
|
26
|
+
*,
|
|
27
|
+
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
|
28
|
+
run_id: builtins.int = ...,
|
|
29
|
+
logs: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
|
30
|
+
) -> None: ...
|
|
31
|
+
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
|
32
|
+
def ClearField(self, field_name: typing_extensions.Literal["logs",b"logs","node",b"node","run_id",b"run_id"]) -> None: ...
|
|
33
|
+
global___PushLogsRequest = PushLogsRequest
|
|
34
|
+
|
|
35
|
+
class PushLogsResponse(google.protobuf.message.Message):
|
|
36
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
37
|
+
def __init__(self,
|
|
38
|
+
) -> None: ...
|
|
39
|
+
global___PushLogsResponse = PushLogsResponse
|
flwr/proto/message_pb2.py
CHANGED
|
@@ -17,7 +17,7 @@ from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
|
|
|
17
17
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1a\x66lwr/proto/recordset.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\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1a\x66lwr/proto/recordset.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\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xcf\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\x15.flwr.proto.RecordSet\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\"\xbb\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\x18\n\x10reply_to_message\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\x62\x06proto3')
|
|
21
21
|
|
|
22
22
|
_globals = globals()
|
|
23
23
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -31,11 +31,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
31
31
|
_globals['_MESSAGE']._serialized_start=120
|
|
32
32
|
_globals['_MESSAGE']._serialized_end=243
|
|
33
33
|
_globals['_CONTEXT']._serialized_start=246
|
|
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=
|
|
34
|
+
_globals['_CONTEXT']._serialized_end=581
|
|
35
|
+
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_start=442
|
|
36
|
+
_globals['_CONTEXT_NODECONFIGENTRY']._serialized_end=511
|
|
37
|
+
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_start=513
|
|
38
|
+
_globals['_CONTEXT_RUNCONFIGENTRY']._serialized_end=581
|
|
39
|
+
_globals['_METADATA']._serialized_start=584
|
|
40
|
+
_globals['_METADATA']._serialized_end=771
|
|
41
41
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/message_pb2.pyi
CHANGED
|
@@ -67,10 +67,12 @@ class Context(google.protobuf.message.Message):
|
|
|
67
67
|
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
68
68
|
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
69
69
|
|
|
70
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
70
71
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
71
72
|
NODE_CONFIG_FIELD_NUMBER: builtins.int
|
|
72
73
|
STATE_FIELD_NUMBER: builtins.int
|
|
73
74
|
RUN_CONFIG_FIELD_NUMBER: builtins.int
|
|
75
|
+
run_id: builtins.int
|
|
74
76
|
node_id: builtins.int
|
|
75
77
|
@property
|
|
76
78
|
def node_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
@@ -80,13 +82,14 @@ class Context(google.protobuf.message.Message):
|
|
|
80
82
|
def run_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
81
83
|
def __init__(self,
|
|
82
84
|
*,
|
|
85
|
+
run_id: builtins.int = ...,
|
|
83
86
|
node_id: builtins.int = ...,
|
|
84
87
|
node_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
85
88
|
state: typing.Optional[flwr.proto.recordset_pb2.RecordSet] = ...,
|
|
86
89
|
run_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
87
90
|
) -> None: ...
|
|
88
91
|
def HasField(self, field_name: typing_extensions.Literal["state",b"state"]) -> builtins.bool: ...
|
|
89
|
-
def ClearField(self, field_name: typing_extensions.Literal["node_config",b"node_config","node_id",b"node_id","run_config",b"run_config","state",b"state"]) -> None: ...
|
|
92
|
+
def ClearField(self, field_name: typing_extensions.Literal["node_config",b"node_config","node_id",b"node_id","run_config",b"run_config","run_id",b"run_id","state",b"state"]) -> None: ...
|
|
90
93
|
global___Context = Context
|
|
91
94
|
|
|
92
95
|
class Metadata(google.protobuf.message.Message):
|
flwr/proto/run_pb2.py
CHANGED
|
@@ -14,10 +14,11 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
16
16
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
17
|
+
from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
|
|
17
18
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/transport.proto\"\
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xce\x02\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\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\"\xeb\x01\n\x10\x43reateRunRequest\x12\x0e\n\x06\x66\x61\x62_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x02 \x01(\t\x12I\n\x0foverride_config\x18\x03 \x03(\x0b\x32\x30.flwr.proto.CreateRunRequest.OverrideConfigEntry\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\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\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"?\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\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"U\n\x1cGetFederationOptionsResponse\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecordb\x06proto3')
|
|
21
22
|
|
|
22
23
|
_globals = globals()
|
|
23
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -30,30 +31,34 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
30
31
|
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
31
32
|
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._options = None
|
|
32
33
|
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_options = b'8\001'
|
|
33
|
-
_globals['_RUN']._serialized_start=
|
|
34
|
-
_globals['_RUN']._serialized_end=
|
|
35
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=
|
|
36
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=
|
|
37
|
-
_globals['_RUNSTATUS']._serialized_start=
|
|
38
|
-
_globals['_RUNSTATUS']._serialized_end=
|
|
39
|
-
_globals['_CREATERUNREQUEST']._serialized_start=
|
|
40
|
-
_globals['_CREATERUNREQUEST']._serialized_end=
|
|
41
|
-
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=
|
|
42
|
-
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=
|
|
43
|
-
_globals['_CREATERUNRESPONSE']._serialized_start=
|
|
44
|
-
_globals['_CREATERUNRESPONSE']._serialized_end=
|
|
45
|
-
_globals['_GETRUNREQUEST']._serialized_start=
|
|
46
|
-
_globals['_GETRUNREQUEST']._serialized_end=
|
|
47
|
-
_globals['_GETRUNRESPONSE']._serialized_start=
|
|
48
|
-
_globals['_GETRUNRESPONSE']._serialized_end=
|
|
49
|
-
_globals['_UPDATERUNSTATUSREQUEST']._serialized_start=
|
|
50
|
-
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=
|
|
51
|
-
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=
|
|
52
|
-
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=
|
|
53
|
-
_globals['_GETRUNSTATUSREQUEST']._serialized_start=
|
|
54
|
-
_globals['_GETRUNSTATUSREQUEST']._serialized_end=
|
|
55
|
-
_globals['_GETRUNSTATUSRESPONSE']._serialized_start=
|
|
56
|
-
_globals['_GETRUNSTATUSRESPONSE']._serialized_end=
|
|
57
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=
|
|
58
|
-
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=
|
|
34
|
+
_globals['_RUN']._serialized_start=138
|
|
35
|
+
_globals['_RUN']._serialized_end=472
|
|
36
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=399
|
|
37
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=472
|
|
38
|
+
_globals['_RUNSTATUS']._serialized_start=474
|
|
39
|
+
_globals['_RUNSTATUS']._serialized_end=538
|
|
40
|
+
_globals['_CREATERUNREQUEST']._serialized_start=541
|
|
41
|
+
_globals['_CREATERUNREQUEST']._serialized_end=776
|
|
42
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=399
|
|
43
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=472
|
|
44
|
+
_globals['_CREATERUNRESPONSE']._serialized_start=778
|
|
45
|
+
_globals['_CREATERUNRESPONSE']._serialized_end=813
|
|
46
|
+
_globals['_GETRUNREQUEST']._serialized_start=815
|
|
47
|
+
_globals['_GETRUNREQUEST']._serialized_end=878
|
|
48
|
+
_globals['_GETRUNRESPONSE']._serialized_start=880
|
|
49
|
+
_globals['_GETRUNRESPONSE']._serialized_end=926
|
|
50
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_start=928
|
|
51
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=1011
|
|
52
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=1013
|
|
53
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=1038
|
|
54
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_start=1040
|
|
55
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_end=1110
|
|
56
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_start=1113
|
|
57
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_end=1290
|
|
58
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=1215
|
|
59
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1290
|
|
60
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1292
|
|
61
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1337
|
|
62
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1339
|
|
63
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1424
|
|
59
64
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/run_pb2.pyi
CHANGED
|
@@ -5,6 +5,7 @@ isort:skip_file
|
|
|
5
5
|
import builtins
|
|
6
6
|
import flwr.proto.fab_pb2
|
|
7
7
|
import flwr.proto.node_pb2
|
|
8
|
+
import flwr.proto.recordset_pb2
|
|
8
9
|
import flwr.proto.transport_pb2
|
|
9
10
|
import google.protobuf.descriptor
|
|
10
11
|
import google.protobuf.internal.containers
|
|
@@ -36,12 +37,23 @@ class Run(google.protobuf.message.Message):
|
|
|
36
37
|
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
37
38
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
38
39
|
FAB_HASH_FIELD_NUMBER: builtins.int
|
|
40
|
+
PENDING_AT_FIELD_NUMBER: builtins.int
|
|
41
|
+
STARTING_AT_FIELD_NUMBER: builtins.int
|
|
42
|
+
RUNNING_AT_FIELD_NUMBER: builtins.int
|
|
43
|
+
FINISHED_AT_FIELD_NUMBER: builtins.int
|
|
44
|
+
STATUS_FIELD_NUMBER: builtins.int
|
|
39
45
|
run_id: builtins.int
|
|
40
46
|
fab_id: typing.Text
|
|
41
47
|
fab_version: typing.Text
|
|
42
48
|
@property
|
|
43
49
|
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
44
50
|
fab_hash: typing.Text
|
|
51
|
+
pending_at: typing.Text
|
|
52
|
+
starting_at: typing.Text
|
|
53
|
+
running_at: typing.Text
|
|
54
|
+
finished_at: typing.Text
|
|
55
|
+
@property
|
|
56
|
+
def status(self) -> global___RunStatus: ...
|
|
45
57
|
def __init__(self,
|
|
46
58
|
*,
|
|
47
59
|
run_id: builtins.int = ...,
|
|
@@ -49,8 +61,14 @@ class Run(google.protobuf.message.Message):
|
|
|
49
61
|
fab_version: typing.Text = ...,
|
|
50
62
|
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
51
63
|
fab_hash: typing.Text = ...,
|
|
64
|
+
pending_at: typing.Text = ...,
|
|
65
|
+
starting_at: typing.Text = ...,
|
|
66
|
+
running_at: typing.Text = ...,
|
|
67
|
+
finished_at: typing.Text = ...,
|
|
68
|
+
status: typing.Optional[global___RunStatus] = ...,
|
|
52
69
|
) -> None: ...
|
|
53
|
-
def
|
|
70
|
+
def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
|
|
71
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","finished_at",b"finished_at","override_config",b"override_config","pending_at",b"pending_at","run_id",b"run_id","running_at",b"running_at","starting_at",b"starting_at","status",b"status"]) -> None: ...
|
|
54
72
|
global___Run = Run
|
|
55
73
|
|
|
56
74
|
class RunStatus(google.protobuf.message.Message):
|
|
@@ -223,3 +241,28 @@ class GetRunStatusResponse(google.protobuf.message.Message):
|
|
|
223
241
|
) -> None: ...
|
|
224
242
|
def ClearField(self, field_name: typing_extensions.Literal["run_status_dict",b"run_status_dict"]) -> None: ...
|
|
225
243
|
global___GetRunStatusResponse = GetRunStatusResponse
|
|
244
|
+
|
|
245
|
+
class GetFederationOptionsRequest(google.protobuf.message.Message):
|
|
246
|
+
"""Get Federation Options associated with run"""
|
|
247
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
248
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
249
|
+
run_id: builtins.int
|
|
250
|
+
def __init__(self,
|
|
251
|
+
*,
|
|
252
|
+
run_id: builtins.int = ...,
|
|
253
|
+
) -> None: ...
|
|
254
|
+
def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
|
|
255
|
+
global___GetFederationOptionsRequest = GetFederationOptionsRequest
|
|
256
|
+
|
|
257
|
+
class GetFederationOptionsResponse(google.protobuf.message.Message):
|
|
258
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
259
|
+
FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
|
|
260
|
+
@property
|
|
261
|
+
def federation_options(self) -> flwr.proto.recordset_pb2.ConfigsRecord: ...
|
|
262
|
+
def __init__(self,
|
|
263
|
+
*,
|
|
264
|
+
federation_options: typing.Optional[flwr.proto.recordset_pb2.ConfigsRecord] = ...,
|
|
265
|
+
) -> None: ...
|
|
266
|
+
def HasField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> builtins.bool: ...
|
|
267
|
+
def ClearField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> None: ...
|
|
268
|
+
global___GetFederationOptionsResponse = GetFederationOptionsResponse
|