flwr-nightly 1.13.0.dev20241021__py3-none-any.whl → 1.13.0.dev20241111__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.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- flwr/cli/build.py +2 -2
- flwr/cli/config_utils.py +97 -0
- flwr/cli/log.py +63 -97
- flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -0
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
- flwr/cli/run/run.py +34 -88
- flwr/client/app.py +23 -20
- flwr/client/clientapp/app.py +22 -18
- 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/{node_state.py → run_info_store.py} +4 -3
- flwr/client/supernode/app.py +6 -8
- flwr/common/args.py +83 -0
- flwr/common/config.py +10 -0
- flwr/common/constant.py +39 -5
- flwr/common/context.py +9 -4
- flwr/common/date.py +3 -3
- flwr/common/logger.py +108 -1
- flwr/common/object_ref.py +47 -16
- flwr/common/serde.py +24 -0
- flwr/common/telemetry.py +0 -6
- flwr/common/typing.py +10 -1
- flwr/proto/exec_pb2.py +14 -17
- flwr/proto/exec_pb2.pyi +14 -22
- 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 +26 -0
- 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 +272 -105
- flwr/server/driver/driver.py +15 -1
- flwr/server/driver/grpc_driver.py +25 -36
- flwr/server/driver/inmemory_driver.py +6 -16
- flwr/server/run_serverapp.py +29 -23
- flwr/server/{superlink/state → serverapp}/__init__.py +3 -9
- flwr/server/serverapp/app.py +214 -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 +7 -7
- 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} +184 -36
- flwr/server/superlink/{state/state.py → linkstate/linkstate.py} +149 -19
- flwr/server/superlink/{state/state_factory.py → linkstate/linkstate_factory.py} +9 -9
- flwr/server/superlink/{state/sqlite_state.py → linkstate/sqlite_linkstate.py} +306 -65
- flwr/server/superlink/{state → linkstate}/utils.py +81 -30
- 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 +273 -345
- flwr/simulation/legacy_app.py +382 -0
- flwr/simulation/ray_transport/ray_client_proxy.py +2 -2
- flwr/simulation/run_simulation.py +57 -131
- flwr/simulation/simulationio_connection.py +86 -0
- flwr/superexec/app.py +6 -134
- flwr/superexec/deployment.py +61 -66
- flwr/superexec/exec_grpc.py +15 -8
- flwr/superexec/exec_servicer.py +36 -65
- flwr/superexec/executor.py +26 -7
- flwr/superexec/simulation.py +54 -107
- {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/METADATA +5 -4
- {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/RECORD +88 -69
- {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.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_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/WHEEL +0 -0
flwr/common/object_ref.py
CHANGED
|
@@ -55,8 +55,8 @@ def validate(
|
|
|
55
55
|
specified attribute within it.
|
|
56
56
|
project_dir : Optional[Union[str, Path]] (default: None)
|
|
57
57
|
The directory containing the module. If None, the current working directory
|
|
58
|
-
is used. If `check_module` is True, the `project_dir` will be
|
|
59
|
-
the system path
|
|
58
|
+
is used. If `check_module` is True, the `project_dir` will be temporarily
|
|
59
|
+
inserted into the system path and then removed after the validation is complete.
|
|
60
60
|
|
|
61
61
|
Returns
|
|
62
62
|
-------
|
|
@@ -66,8 +66,8 @@ def validate(
|
|
|
66
66
|
|
|
67
67
|
Note
|
|
68
68
|
----
|
|
69
|
-
This function will modify `sys.path` by inserting the provided
|
|
70
|
-
|
|
69
|
+
This function will temporarily modify `sys.path` by inserting the provided
|
|
70
|
+
`project_dir`, which will be removed after the validation is complete.
|
|
71
71
|
"""
|
|
72
72
|
module_str, _, attributes_str = module_attribute_str.partition(":")
|
|
73
73
|
if not module_str:
|
|
@@ -82,11 +82,19 @@ def validate(
|
|
|
82
82
|
)
|
|
83
83
|
|
|
84
84
|
if check_module:
|
|
85
|
+
if project_dir is None:
|
|
86
|
+
project_dir = Path.cwd()
|
|
87
|
+
project_dir = Path(project_dir).absolute()
|
|
85
88
|
# Set the system path
|
|
86
|
-
|
|
89
|
+
sys.path.insert(0, str(project_dir))
|
|
87
90
|
|
|
88
91
|
# Load module
|
|
89
92
|
module = find_spec(module_str)
|
|
93
|
+
|
|
94
|
+
# Unset the system path
|
|
95
|
+
sys.path.remove(str(project_dir))
|
|
96
|
+
|
|
97
|
+
# Check if the module and the attribute exist
|
|
90
98
|
if module and module.origin:
|
|
91
99
|
if not _find_attribute_in_module(module.origin, attributes_str):
|
|
92
100
|
return (
|
|
@@ -133,8 +141,10 @@ def load_app( # pylint: disable= too-many-branches
|
|
|
133
141
|
|
|
134
142
|
Note
|
|
135
143
|
----
|
|
136
|
-
This function will
|
|
137
|
-
|
|
144
|
+
- This function will unload all modules in the previously provided `project_dir`,
|
|
145
|
+
if it is invoked again.
|
|
146
|
+
- This function will modify `sys.path` by inserting the provided `project_dir`
|
|
147
|
+
and removing the previously inserted `project_dir`.
|
|
138
148
|
"""
|
|
139
149
|
valid, error_msg = validate(module_attribute_str, check_module=False)
|
|
140
150
|
if not valid and error_msg:
|
|
@@ -143,8 +153,19 @@ def load_app( # pylint: disable= too-many-branches
|
|
|
143
153
|
module_str, _, attributes_str = module_attribute_str.partition(":")
|
|
144
154
|
|
|
145
155
|
try:
|
|
156
|
+
# Initialize project path
|
|
157
|
+
if project_dir is None:
|
|
158
|
+
project_dir = Path.cwd()
|
|
159
|
+
project_dir = Path(project_dir).absolute()
|
|
160
|
+
|
|
161
|
+
# Unload modules if the project directory has changed
|
|
162
|
+
if _current_sys_path and _current_sys_path != str(project_dir):
|
|
163
|
+
_unload_modules(Path(_current_sys_path))
|
|
164
|
+
|
|
165
|
+
# Set the system path
|
|
146
166
|
_set_sys_path(project_dir)
|
|
147
167
|
|
|
168
|
+
# Import the module
|
|
148
169
|
if module_str not in sys.modules:
|
|
149
170
|
module = importlib.import_module(module_str)
|
|
150
171
|
# Hack: `tabnet` does not work with `importlib.reload`
|
|
@@ -160,15 +181,7 @@ def load_app( # pylint: disable= too-many-branches
|
|
|
160
181
|
module = sys.modules[module_str]
|
|
161
182
|
else:
|
|
162
183
|
module = sys.modules[module_str]
|
|
163
|
-
|
|
164
|
-
if project_dir is None:
|
|
165
|
-
project_dir = Path.cwd()
|
|
166
|
-
|
|
167
|
-
# Reload cached modules in the project directory
|
|
168
|
-
for m in list(sys.modules.values()):
|
|
169
|
-
path: Optional[str] = getattr(m, "__file__", None)
|
|
170
|
-
if path is not None and path.startswith(str(project_dir)):
|
|
171
|
-
importlib.reload(m)
|
|
184
|
+
_reload_modules(project_dir)
|
|
172
185
|
|
|
173
186
|
except ModuleNotFoundError as err:
|
|
174
187
|
raise error_type(
|
|
@@ -189,6 +202,24 @@ def load_app( # pylint: disable= too-many-branches
|
|
|
189
202
|
return attribute
|
|
190
203
|
|
|
191
204
|
|
|
205
|
+
def _unload_modules(project_dir: Path) -> None:
|
|
206
|
+
"""Unload modules from the project directory."""
|
|
207
|
+
dir_str = str(project_dir.absolute())
|
|
208
|
+
for name, m in list(sys.modules.items()):
|
|
209
|
+
path: Optional[str] = getattr(m, "__file__", None)
|
|
210
|
+
if path is not None and path.startswith(dir_str):
|
|
211
|
+
del sys.modules[name]
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def _reload_modules(project_dir: Path) -> None:
|
|
215
|
+
"""Reload modules from the project directory."""
|
|
216
|
+
dir_str = str(project_dir.absolute())
|
|
217
|
+
for m in list(sys.modules.values()):
|
|
218
|
+
path: Optional[str] = getattr(m, "__file__", None)
|
|
219
|
+
if path is not None and path.startswith(dir_str):
|
|
220
|
+
importlib.reload(m)
|
|
221
|
+
|
|
222
|
+
|
|
192
223
|
def _set_sys_path(directory: Optional[Union[str, Path]]) -> None:
|
|
193
224
|
"""Set the system path."""
|
|
194
225
|
if directory is None:
|
flwr/common/serde.py
CHANGED
|
@@ -40,6 +40,7 @@ from flwr.proto.recordset_pb2 import ParametersRecord as ProtoParametersRecord
|
|
|
40
40
|
from flwr.proto.recordset_pb2 import RecordSet as ProtoRecordSet
|
|
41
41
|
from flwr.proto.recordset_pb2 import SintList, StringList, UintList
|
|
42
42
|
from flwr.proto.run_pb2 import Run as ProtoRun
|
|
43
|
+
from flwr.proto.run_pb2 import RunStatus as ProtoRunStatus
|
|
43
44
|
from flwr.proto.task_pb2 import Task, TaskIns, TaskRes
|
|
44
45
|
from flwr.proto.transport_pb2 import (
|
|
45
46
|
ClientMessage,
|
|
@@ -839,6 +840,7 @@ def message_from_proto(message_proto: ProtoMessage) -> Message:
|
|
|
839
840
|
def context_to_proto(context: Context) -> ProtoContext:
|
|
840
841
|
"""Serialize `Context` to ProtoBuf."""
|
|
841
842
|
proto = ProtoContext(
|
|
843
|
+
run_id=context.run_id,
|
|
842
844
|
node_id=context.node_id,
|
|
843
845
|
node_config=user_config_to_proto(context.node_config),
|
|
844
846
|
state=recordset_to_proto(context.state),
|
|
@@ -850,6 +852,7 @@ def context_to_proto(context: Context) -> ProtoContext:
|
|
|
850
852
|
def context_from_proto(context_proto: ProtoContext) -> Context:
|
|
851
853
|
"""Deserialize `Context` from ProtoBuf."""
|
|
852
854
|
context = Context(
|
|
855
|
+
run_id=context_proto.run_id,
|
|
853
856
|
node_id=context_proto.node_id,
|
|
854
857
|
node_config=user_config_from_proto(context_proto.node_config),
|
|
855
858
|
state=recordset_from_proto(context_proto.state),
|
|
@@ -910,3 +913,24 @@ def clientappstatus_from_proto(
|
|
|
910
913
|
if msg.code == ClientAppOutputCode.UNKNOWN_ERROR:
|
|
911
914
|
code = typing.ClientAppOutputCode.UNKNOWN_ERROR
|
|
912
915
|
return typing.ClientAppOutputStatus(code=code, message=msg.message)
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
# === Run status ===
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
def run_status_to_proto(run_status: typing.RunStatus) -> ProtoRunStatus:
|
|
922
|
+
"""Serialize `RunStatus` to ProtoBuf."""
|
|
923
|
+
return ProtoRunStatus(
|
|
924
|
+
status=run_status.status,
|
|
925
|
+
sub_status=run_status.sub_status,
|
|
926
|
+
details=run_status.details,
|
|
927
|
+
)
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
def run_status_from_proto(run_status_proto: ProtoRunStatus) -> typing.RunStatus:
|
|
931
|
+
"""Deserialize `RunStatus` from ProtoBuf."""
|
|
932
|
+
return typing.RunStatus(
|
|
933
|
+
status=run_status_proto.status,
|
|
934
|
+
sub_status=run_status_proto.sub_status,
|
|
935
|
+
details=run_status_proto.details,
|
|
936
|
+
)
|
flwr/common/telemetry.py
CHANGED
|
@@ -150,12 +150,6 @@ class EventType(str, Enum):
|
|
|
150
150
|
|
|
151
151
|
# Not yet implemented
|
|
152
152
|
|
|
153
|
-
# --- SuperExec --------------------------------------------------------------------
|
|
154
|
-
|
|
155
|
-
# SuperExec
|
|
156
|
-
RUN_SUPEREXEC_ENTER = auto()
|
|
157
|
-
RUN_SUPEREXEC_LEAVE = auto()
|
|
158
|
-
|
|
159
153
|
# --- Simulation Engine ------------------------------------------------------------
|
|
160
154
|
|
|
161
155
|
# CLI: flower-simulation
|
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
|
|
@@ -218,6 +218,15 @@ class Run:
|
|
|
218
218
|
override_config: UserConfig
|
|
219
219
|
|
|
220
220
|
|
|
221
|
+
@dataclass
|
|
222
|
+
class RunStatus:
|
|
223
|
+
"""Run status information."""
|
|
224
|
+
|
|
225
|
+
status: str
|
|
226
|
+
sub_status: str
|
|
227
|
+
details: str
|
|
228
|
+
|
|
229
|
+
|
|
221
230
|
@dataclass
|
|
222
231
|
class Fab:
|
|
223
232
|
"""Fab file representation."""
|
flwr/proto/exec_pb2.py
CHANGED
|
@@ -14,9 +14,10 @@ _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
|
|
17
18
|
|
|
18
19
|
|
|
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\"\
|
|
20
|
+
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\"\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\x32\xa0\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\x62\x06proto3')
|
|
20
21
|
|
|
21
22
|
_globals = globals()
|
|
22
23
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -25,20 +26,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
25
26
|
DESCRIPTOR._options = None
|
|
26
27
|
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._options = None
|
|
27
28
|
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
28
|
-
_globals['
|
|
29
|
-
_globals['
|
|
30
|
-
_globals['
|
|
31
|
-
_globals['
|
|
32
|
-
_globals['
|
|
33
|
-
_globals['
|
|
34
|
-
_globals['
|
|
35
|
-
_globals['
|
|
36
|
-
_globals['
|
|
37
|
-
_globals['
|
|
38
|
-
_globals['
|
|
39
|
-
_globals['
|
|
40
|
-
_globals['_STREAMLOGSRESPONSE']._serialized_start=514
|
|
41
|
-
_globals['_STREAMLOGSRESPONSE']._serialized_end=554
|
|
42
|
-
_globals['_EXEC']._serialized_start=557
|
|
43
|
-
_globals['_EXEC']._serialized_end=717
|
|
29
|
+
_globals['_STARTRUNREQUEST']._serialized_start=116
|
|
30
|
+
_globals['_STARTRUNREQUEST']._serialized_end=367
|
|
31
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=294
|
|
32
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=367
|
|
33
|
+
_globals['_STARTRUNRESPONSE']._serialized_start=369
|
|
34
|
+
_globals['_STARTRUNRESPONSE']._serialized_end=403
|
|
35
|
+
_globals['_STREAMLOGSREQUEST']._serialized_start=405
|
|
36
|
+
_globals['_STREAMLOGSREQUEST']._serialized_end=465
|
|
37
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_start=467
|
|
38
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_end=533
|
|
39
|
+
_globals['_EXEC']._serialized_start=536
|
|
40
|
+
_globals['_EXEC']._serialized_end=696
|
|
44
41
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/exec_pb2.pyi
CHANGED
|
@@ -4,6 +4,7 @@ isort:skip_file
|
|
|
4
4
|
"""
|
|
5
5
|
import builtins
|
|
6
6
|
import flwr.proto.fab_pb2
|
|
7
|
+
import flwr.proto.recordset_pb2
|
|
7
8
|
import flwr.proto.transport_pb2
|
|
8
9
|
import google.protobuf.descriptor
|
|
9
10
|
import google.protobuf.internal.containers
|
|
@@ -30,38 +31,23 @@ class StartRunRequest(google.protobuf.message.Message):
|
|
|
30
31
|
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
31
32
|
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
32
33
|
|
|
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
34
|
FAB_FIELD_NUMBER: builtins.int
|
|
49
35
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
50
|
-
|
|
36
|
+
FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
|
|
51
37
|
@property
|
|
52
38
|
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
|
53
39
|
@property
|
|
54
40
|
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
55
41
|
@property
|
|
56
|
-
def
|
|
42
|
+
def federation_options(self) -> flwr.proto.recordset_pb2.ConfigsRecord: ...
|
|
57
43
|
def __init__(self,
|
|
58
44
|
*,
|
|
59
45
|
fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
|
|
60
46
|
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
61
|
-
|
|
47
|
+
federation_options: typing.Optional[flwr.proto.recordset_pb2.ConfigsRecord] = ...,
|
|
62
48
|
) -> 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","
|
|
49
|
+
def HasField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options"]) -> builtins.bool: ...
|
|
50
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options","override_config",b"override_config"]) -> None: ...
|
|
65
51
|
global___StartRunRequest = StartRunRequest
|
|
66
52
|
|
|
67
53
|
class StartRunResponse(google.protobuf.message.Message):
|
|
@@ -78,21 +64,27 @@ global___StartRunResponse = StartRunResponse
|
|
|
78
64
|
class StreamLogsRequest(google.protobuf.message.Message):
|
|
79
65
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
80
66
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
67
|
+
AFTER_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
81
68
|
run_id: builtins.int
|
|
69
|
+
after_timestamp: builtins.float
|
|
82
70
|
def __init__(self,
|
|
83
71
|
*,
|
|
84
72
|
run_id: builtins.int = ...,
|
|
73
|
+
after_timestamp: builtins.float = ...,
|
|
85
74
|
) -> None: ...
|
|
86
|
-
def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
|
|
75
|
+
def ClearField(self, field_name: typing_extensions.Literal["after_timestamp",b"after_timestamp","run_id",b"run_id"]) -> None: ...
|
|
87
76
|
global___StreamLogsRequest = StreamLogsRequest
|
|
88
77
|
|
|
89
78
|
class StreamLogsResponse(google.protobuf.message.Message):
|
|
90
79
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
91
80
|
LOG_OUTPUT_FIELD_NUMBER: builtins.int
|
|
81
|
+
LATEST_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
92
82
|
log_output: typing.Text
|
|
83
|
+
latest_timestamp: builtins.float
|
|
93
84
|
def __init__(self,
|
|
94
85
|
*,
|
|
95
86
|
log_output: typing.Text = ...,
|
|
87
|
+
latest_timestamp: builtins.float = ...,
|
|
96
88
|
) -> None: ...
|
|
97
|
-
def ClearField(self, field_name: typing_extensions.Literal["log_output",b"log_output"]) -> None: ...
|
|
89
|
+
def ClearField(self, field_name: typing_extensions.Literal["latest_timestamp",b"latest_timestamp","log_output",b"log_output"]) -> None: ...
|
|
98
90
|
global___StreamLogsResponse = StreamLogsResponse
|
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\"\xd5\x01\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\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\
|
|
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\"\xd5\x01\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\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=351
|
|
36
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=278
|
|
37
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=351
|
|
38
|
+
_globals['_RUNSTATUS']._serialized_start=353
|
|
39
|
+
_globals['_RUNSTATUS']._serialized_end=417
|
|
40
|
+
_globals['_CREATERUNREQUEST']._serialized_start=420
|
|
41
|
+
_globals['_CREATERUNREQUEST']._serialized_end=655
|
|
42
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=278
|
|
43
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=351
|
|
44
|
+
_globals['_CREATERUNRESPONSE']._serialized_start=657
|
|
45
|
+
_globals['_CREATERUNRESPONSE']._serialized_end=692
|
|
46
|
+
_globals['_GETRUNREQUEST']._serialized_start=694
|
|
47
|
+
_globals['_GETRUNREQUEST']._serialized_end=757
|
|
48
|
+
_globals['_GETRUNRESPONSE']._serialized_start=759
|
|
49
|
+
_globals['_GETRUNRESPONSE']._serialized_end=805
|
|
50
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_start=807
|
|
51
|
+
_globals['_UPDATERUNSTATUSREQUEST']._serialized_end=890
|
|
52
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=892
|
|
53
|
+
_globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=917
|
|
54
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_start=919
|
|
55
|
+
_globals['_GETRUNSTATUSREQUEST']._serialized_end=989
|
|
56
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_start=992
|
|
57
|
+
_globals['_GETRUNSTATUSRESPONSE']._serialized_end=1169
|
|
58
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=1094
|
|
59
|
+
_globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1169
|
|
60
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1171
|
|
61
|
+
_globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1216
|
|
62
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1218
|
|
63
|
+
_globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1303
|
|
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
|
|
@@ -223,3 +224,28 @@ class GetRunStatusResponse(google.protobuf.message.Message):
|
|
|
223
224
|
) -> None: ...
|
|
224
225
|
def ClearField(self, field_name: typing_extensions.Literal["run_status_dict",b"run_status_dict"]) -> None: ...
|
|
225
226
|
global___GetRunStatusResponse = GetRunStatusResponse
|
|
227
|
+
|
|
228
|
+
class GetFederationOptionsRequest(google.protobuf.message.Message):
|
|
229
|
+
"""Get Federation Options associated with run"""
|
|
230
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
231
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
|
232
|
+
run_id: builtins.int
|
|
233
|
+
def __init__(self,
|
|
234
|
+
*,
|
|
235
|
+
run_id: builtins.int = ...,
|
|
236
|
+
) -> None: ...
|
|
237
|
+
def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
|
|
238
|
+
global___GetFederationOptionsRequest = GetFederationOptionsRequest
|
|
239
|
+
|
|
240
|
+
class GetFederationOptionsResponse(google.protobuf.message.Message):
|
|
241
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
242
|
+
FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
|
|
243
|
+
@property
|
|
244
|
+
def federation_options(self) -> flwr.proto.recordset_pb2.ConfigsRecord: ...
|
|
245
|
+
def __init__(self,
|
|
246
|
+
*,
|
|
247
|
+
federation_options: typing.Optional[flwr.proto.recordset_pb2.ConfigsRecord] = ...,
|
|
248
|
+
) -> None: ...
|
|
249
|
+
def HasField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> builtins.bool: ...
|
|
250
|
+
def ClearField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> None: ...
|
|
251
|
+
global___GetFederationOptionsResponse = GetFederationOptionsResponse
|