flwr-nightly 1.10.0.dev20240707__py3-none-any.whl → 1.10.0.dev20240722__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 +16 -2
- flwr/cli/config_utils.py +36 -14
- flwr/cli/install.py +17 -1
- flwr/cli/new/new.py +31 -20
- flwr/cli/new/templates/app/code/client.hf.py.tpl +11 -3
- flwr/cli/new/templates/app/code/client.jax.py.tpl +2 -1
- flwr/cli/new/templates/app/code/client.mlx.py.tpl +15 -10
- flwr/cli/new/templates/app/code/client.numpy.py.tpl +2 -1
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl +12 -3
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl +6 -3
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +13 -3
- flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +2 -2
- flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.hf.py.tpl +16 -11
- flwr/cli/new/templates/app/code/server.jax.py.tpl +15 -8
- flwr/cli/new/templates/app/code/server.mlx.py.tpl +11 -7
- flwr/cli/new/templates/app/code/server.numpy.py.tpl +15 -8
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl +15 -13
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl +16 -10
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +16 -13
- flwr/cli/new/templates/app/code/task.hf.py.tpl +2 -2
- flwr/cli/new/templates/app/code/task.mlx.py.tpl +2 -2
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +9 -12
- flwr/cli/new/templates/app/pyproject.hf.toml.tpl +17 -16
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +17 -11
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +17 -12
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +12 -12
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +13 -12
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +12 -12
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +15 -12
- flwr/cli/run/run.py +128 -53
- flwr/client/app.py +56 -24
- flwr/client/client_app.py +28 -8
- flwr/client/grpc_adapter_client/connection.py +3 -2
- flwr/client/grpc_client/connection.py +3 -2
- flwr/client/grpc_rere_client/connection.py +17 -6
- flwr/client/message_handler/message_handler.py +1 -1
- flwr/client/node_state.py +59 -12
- flwr/client/node_state_tests.py +4 -3
- flwr/client/rest_client/connection.py +19 -8
- flwr/client/supernode/app.py +55 -24
- flwr/client/typing.py +2 -2
- flwr/common/config.py +87 -2
- flwr/common/constant.py +3 -0
- flwr/common/context.py +24 -9
- flwr/common/logger.py +25 -0
- flwr/common/serde.py +45 -0
- flwr/common/telemetry.py +17 -0
- flwr/common/typing.py +5 -0
- flwr/proto/common_pb2.py +36 -0
- flwr/proto/common_pb2.pyi +121 -0
- flwr/proto/common_pb2_grpc.py +4 -0
- flwr/proto/common_pb2_grpc.pyi +4 -0
- flwr/proto/driver_pb2.py +24 -19
- flwr/proto/driver_pb2.pyi +21 -1
- flwr/proto/exec_pb2.py +16 -11
- flwr/proto/exec_pb2.pyi +22 -1
- flwr/proto/run_pb2.py +12 -7
- flwr/proto/run_pb2.pyi +22 -1
- flwr/proto/task_pb2.py +7 -8
- flwr/server/__init__.py +2 -0
- flwr/server/compat/legacy_context.py +5 -4
- flwr/server/driver/grpc_driver.py +82 -140
- flwr/server/run_serverapp.py +40 -15
- flwr/server/server_app.py +56 -10
- flwr/server/serverapp_components.py +52 -0
- flwr/server/superlink/driver/driver_servicer.py +18 -3
- flwr/server/superlink/fleet/message_handler/message_handler.py +13 -2
- flwr/server/superlink/fleet/vce/backend/backend.py +4 -4
- flwr/server/superlink/fleet/vce/backend/raybackend.py +10 -10
- flwr/server/superlink/fleet/vce/vce_api.py +149 -117
- flwr/server/superlink/state/in_memory_state.py +11 -3
- flwr/server/superlink/state/sqlite_state.py +23 -8
- flwr/server/superlink/state/state.py +7 -2
- flwr/server/typing.py +2 -0
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +18 -2
- flwr/simulation/app.py +4 -3
- flwr/simulation/ray_transport/ray_actor.py +15 -19
- flwr/simulation/ray_transport/ray_client_proxy.py +22 -9
- flwr/simulation/run_simulation.py +237 -66
- flwr/superexec/app.py +14 -7
- flwr/superexec/deployment.py +110 -33
- flwr/superexec/exec_grpc.py +5 -1
- flwr/superexec/exec_servicer.py +4 -1
- flwr/superexec/executor.py +18 -0
- flwr/superexec/simulation.py +151 -0
- {flwr_nightly-1.10.0.dev20240707.dist-info → flwr_nightly-1.10.0.dev20240722.dist-info}/METADATA +3 -2
- {flwr_nightly-1.10.0.dev20240707.dist-info → flwr_nightly-1.10.0.dev20240722.dist-info}/RECORD +92 -86
- {flwr_nightly-1.10.0.dev20240707.dist-info → flwr_nightly-1.10.0.dev20240722.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.10.0.dev20240707.dist-info → flwr_nightly-1.10.0.dev20240722.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.10.0.dev20240707.dist-info → flwr_nightly-1.10.0.dev20240722.dist-info}/entry_points.txt +0 -0
flwr/common/typing.py
CHANGED
|
@@ -60,6 +60,10 @@ MetricsAggregationFn = Callable[[List[Tuple[int, Metrics]]], Metrics]
|
|
|
60
60
|
Config = Dict[str, Scalar]
|
|
61
61
|
Properties = Dict[str, Scalar]
|
|
62
62
|
|
|
63
|
+
# Value type for user configs
|
|
64
|
+
UserConfigValue = Union[bool, float, int, str]
|
|
65
|
+
UserConfig = Dict[str, UserConfigValue]
|
|
66
|
+
|
|
63
67
|
|
|
64
68
|
class Code(Enum):
|
|
65
69
|
"""Client status codes."""
|
|
@@ -194,3 +198,4 @@ class Run:
|
|
|
194
198
|
run_id: int
|
|
195
199
|
fab_id: str
|
|
196
200
|
fab_version: str
|
|
201
|
+
override_config: UserConfig
|
flwr/proto/common_pb2.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: flwr/proto/common.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
|
+
|
|
16
|
+
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66lwr/proto/common.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\"\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\"\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\"\xd9\x02\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12-\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x16.flwr.proto.Sint64ListH\x00\x12)\n\tbool_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x19 \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05valueb\x06proto3')
|
|
18
|
+
|
|
19
|
+
_globals = globals()
|
|
20
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.common_pb2', _globals)
|
|
22
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
|
+
DESCRIPTOR._options = None
|
|
24
|
+
_globals['_DOUBLELIST']._serialized_start=39
|
|
25
|
+
_globals['_DOUBLELIST']._serialized_end=65
|
|
26
|
+
_globals['_SINT64LIST']._serialized_start=67
|
|
27
|
+
_globals['_SINT64LIST']._serialized_end=93
|
|
28
|
+
_globals['_BOOLLIST']._serialized_start=95
|
|
29
|
+
_globals['_BOOLLIST']._serialized_end=119
|
|
30
|
+
_globals['_STRINGLIST']._serialized_start=121
|
|
31
|
+
_globals['_STRINGLIST']._serialized_end=147
|
|
32
|
+
_globals['_BYTESLIST']._serialized_start=149
|
|
33
|
+
_globals['_BYTESLIST']._serialized_end=174
|
|
34
|
+
_globals['_CONFIGSRECORDVALUE']._serialized_start=177
|
|
35
|
+
_globals['_CONFIGSRECORDVALUE']._serialized_end=522
|
|
36
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
import builtins
|
|
6
|
+
import google.protobuf.descriptor
|
|
7
|
+
import google.protobuf.internal.containers
|
|
8
|
+
import google.protobuf.message
|
|
9
|
+
import typing
|
|
10
|
+
import typing_extensions
|
|
11
|
+
|
|
12
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
13
|
+
|
|
14
|
+
class DoubleList(google.protobuf.message.Message):
|
|
15
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
16
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
17
|
+
@property
|
|
18
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
|
|
19
|
+
def __init__(self,
|
|
20
|
+
*,
|
|
21
|
+
vals: typing.Optional[typing.Iterable[builtins.float]] = ...,
|
|
22
|
+
) -> None: ...
|
|
23
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
24
|
+
global___DoubleList = DoubleList
|
|
25
|
+
|
|
26
|
+
class Sint64List(google.protobuf.message.Message):
|
|
27
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
28
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
29
|
+
@property
|
|
30
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
31
|
+
def __init__(self,
|
|
32
|
+
*,
|
|
33
|
+
vals: typing.Optional[typing.Iterable[builtins.int]] = ...,
|
|
34
|
+
) -> None: ...
|
|
35
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
36
|
+
global___Sint64List = Sint64List
|
|
37
|
+
|
|
38
|
+
class BoolList(google.protobuf.message.Message):
|
|
39
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
40
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
41
|
+
@property
|
|
42
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
|
|
43
|
+
def __init__(self,
|
|
44
|
+
*,
|
|
45
|
+
vals: typing.Optional[typing.Iterable[builtins.bool]] = ...,
|
|
46
|
+
) -> None: ...
|
|
47
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
48
|
+
global___BoolList = BoolList
|
|
49
|
+
|
|
50
|
+
class StringList(google.protobuf.message.Message):
|
|
51
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
52
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
53
|
+
@property
|
|
54
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
|
55
|
+
def __init__(self,
|
|
56
|
+
*,
|
|
57
|
+
vals: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
|
58
|
+
) -> None: ...
|
|
59
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
60
|
+
global___StringList = StringList
|
|
61
|
+
|
|
62
|
+
class BytesList(google.protobuf.message.Message):
|
|
63
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
64
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
65
|
+
@property
|
|
66
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
|
|
67
|
+
def __init__(self,
|
|
68
|
+
*,
|
|
69
|
+
vals: typing.Optional[typing.Iterable[builtins.bytes]] = ...,
|
|
70
|
+
) -> None: ...
|
|
71
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
72
|
+
global___BytesList = BytesList
|
|
73
|
+
|
|
74
|
+
class ConfigsRecordValue(google.protobuf.message.Message):
|
|
75
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
76
|
+
DOUBLE_FIELD_NUMBER: builtins.int
|
|
77
|
+
SINT64_FIELD_NUMBER: builtins.int
|
|
78
|
+
BOOL_FIELD_NUMBER: builtins.int
|
|
79
|
+
STRING_FIELD_NUMBER: builtins.int
|
|
80
|
+
BYTES_FIELD_NUMBER: builtins.int
|
|
81
|
+
DOUBLE_LIST_FIELD_NUMBER: builtins.int
|
|
82
|
+
SINT64_LIST_FIELD_NUMBER: builtins.int
|
|
83
|
+
BOOL_LIST_FIELD_NUMBER: builtins.int
|
|
84
|
+
STRING_LIST_FIELD_NUMBER: builtins.int
|
|
85
|
+
BYTES_LIST_FIELD_NUMBER: builtins.int
|
|
86
|
+
double: builtins.float
|
|
87
|
+
"""Single element"""
|
|
88
|
+
|
|
89
|
+
sint64: builtins.int
|
|
90
|
+
bool: builtins.bool
|
|
91
|
+
string: typing.Text
|
|
92
|
+
bytes: builtins.bytes
|
|
93
|
+
@property
|
|
94
|
+
def double_list(self) -> global___DoubleList:
|
|
95
|
+
"""List types"""
|
|
96
|
+
pass
|
|
97
|
+
@property
|
|
98
|
+
def sint64_list(self) -> global___Sint64List: ...
|
|
99
|
+
@property
|
|
100
|
+
def bool_list(self) -> global___BoolList: ...
|
|
101
|
+
@property
|
|
102
|
+
def string_list(self) -> global___StringList: ...
|
|
103
|
+
@property
|
|
104
|
+
def bytes_list(self) -> global___BytesList: ...
|
|
105
|
+
def __init__(self,
|
|
106
|
+
*,
|
|
107
|
+
double: builtins.float = ...,
|
|
108
|
+
sint64: builtins.int = ...,
|
|
109
|
+
bool: builtins.bool = ...,
|
|
110
|
+
string: typing.Text = ...,
|
|
111
|
+
bytes: builtins.bytes = ...,
|
|
112
|
+
double_list: typing.Optional[global___DoubleList] = ...,
|
|
113
|
+
sint64_list: typing.Optional[global___Sint64List] = ...,
|
|
114
|
+
bool_list: typing.Optional[global___BoolList] = ...,
|
|
115
|
+
string_list: typing.Optional[global___StringList] = ...,
|
|
116
|
+
bytes_list: typing.Optional[global___BytesList] = ...,
|
|
117
|
+
) -> None: ...
|
|
118
|
+
def HasField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> builtins.bool: ...
|
|
119
|
+
def ClearField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> None: ...
|
|
120
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","bool","string","bytes","double_list","sint64_list","bool_list","string_list","bytes_list"]]: ...
|
|
121
|
+
global___ConfigsRecordValue = ConfigsRecordValue
|
flwr/proto/driver_pb2.py
CHANGED
|
@@ -15,31 +15,36 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
16
16
|
from flwr.proto import task_pb2 as flwr_dot_proto_dot_task__pb2
|
|
17
17
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
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\x17\x66lwr/proto/driver.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\"
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66lwr/proto/driver.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xcd\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\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(\x12\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node\"@\n\x12PushTaskInsRequest\x12*\n\rtask_ins_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"\'\n\x13PushTaskInsResponse\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"F\n\x12PullTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"A\n\x13PullTaskResResponse\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes2\x84\x03\n\x06\x44river\x12J\n\tCreateRun\x12\x1c.flwr.proto.CreateRunRequest\x1a\x1d.flwr.proto.CreateRunResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12P\n\x0bPushTaskIns\x12\x1e.flwr.proto.PushTaskInsRequest\x1a\x1f.flwr.proto.PushTaskInsResponse\"\x00\x12P\n\x0bPullTaskRes\x12\x1e.flwr.proto.PullTaskResRequest\x1a\x1f.flwr.proto.PullTaskResResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x62\x06proto3')
|
|
21
22
|
|
|
22
23
|
_globals = globals()
|
|
23
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
24
25
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.driver_pb2', _globals)
|
|
25
26
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
26
27
|
DESCRIPTOR._options = None
|
|
27
|
-
_globals['
|
|
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['
|
|
41
|
-
_globals['
|
|
42
|
-
_globals['
|
|
43
|
-
_globals['
|
|
44
|
-
_globals['
|
|
28
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._options = None
|
|
29
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
30
|
+
_globals['_CREATERUNREQUEST']._serialized_start=136
|
|
31
|
+
_globals['_CREATERUNREQUEST']._serialized_end=341
|
|
32
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=268
|
|
33
|
+
_globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=341
|
|
34
|
+
_globals['_CREATERUNRESPONSE']._serialized_start=343
|
|
35
|
+
_globals['_CREATERUNRESPONSE']._serialized_end=378
|
|
36
|
+
_globals['_GETNODESREQUEST']._serialized_start=380
|
|
37
|
+
_globals['_GETNODESREQUEST']._serialized_end=413
|
|
38
|
+
_globals['_GETNODESRESPONSE']._serialized_start=415
|
|
39
|
+
_globals['_GETNODESRESPONSE']._serialized_end=466
|
|
40
|
+
_globals['_PUSHTASKINSREQUEST']._serialized_start=468
|
|
41
|
+
_globals['_PUSHTASKINSREQUEST']._serialized_end=532
|
|
42
|
+
_globals['_PUSHTASKINSRESPONSE']._serialized_start=534
|
|
43
|
+
_globals['_PUSHTASKINSRESPONSE']._serialized_end=573
|
|
44
|
+
_globals['_PULLTASKRESREQUEST']._serialized_start=575
|
|
45
|
+
_globals['_PULLTASKRESREQUEST']._serialized_end=645
|
|
46
|
+
_globals['_PULLTASKRESRESPONSE']._serialized_start=647
|
|
47
|
+
_globals['_PULLTASKRESRESPONSE']._serialized_end=712
|
|
48
|
+
_globals['_DRIVER']._serialized_start=715
|
|
49
|
+
_globals['_DRIVER']._serialized_end=1103
|
|
45
50
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/driver_pb2.pyi
CHANGED
|
@@ -5,6 +5,7 @@ isort:skip_file
|
|
|
5
5
|
import builtins
|
|
6
6
|
import flwr.proto.node_pb2
|
|
7
7
|
import flwr.proto.task_pb2
|
|
8
|
+
import flwr.proto.transport_pb2
|
|
8
9
|
import google.protobuf.descriptor
|
|
9
10
|
import google.protobuf.internal.containers
|
|
10
11
|
import google.protobuf.message
|
|
@@ -16,16 +17,35 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
16
17
|
class CreateRunRequest(google.protobuf.message.Message):
|
|
17
18
|
"""CreateRun"""
|
|
18
19
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
20
|
+
class OverrideConfigEntry(google.protobuf.message.Message):
|
|
21
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
22
|
+
KEY_FIELD_NUMBER: builtins.int
|
|
23
|
+
VALUE_FIELD_NUMBER: builtins.int
|
|
24
|
+
key: typing.Text
|
|
25
|
+
@property
|
|
26
|
+
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
27
|
+
def __init__(self,
|
|
28
|
+
*,
|
|
29
|
+
key: typing.Text = ...,
|
|
30
|
+
value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
|
|
31
|
+
) -> None: ...
|
|
32
|
+
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
33
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
34
|
+
|
|
19
35
|
FAB_ID_FIELD_NUMBER: builtins.int
|
|
20
36
|
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
37
|
+
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
21
38
|
fab_id: typing.Text
|
|
22
39
|
fab_version: typing.Text
|
|
40
|
+
@property
|
|
41
|
+
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
23
42
|
def __init__(self,
|
|
24
43
|
*,
|
|
25
44
|
fab_id: typing.Text = ...,
|
|
26
45
|
fab_version: typing.Text = ...,
|
|
46
|
+
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
27
47
|
) -> None: ...
|
|
28
|
-
def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version"]) -> None: ...
|
|
48
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config"]) -> None: ...
|
|
29
49
|
global___CreateRunRequest = CreateRunRequest
|
|
30
50
|
|
|
31
51
|
class CreateRunResponse(google.protobuf.message.Message):
|
flwr/proto/exec_pb2.py
CHANGED
|
@@ -12,23 +12,28 @@ from google.protobuf.internal import builder as _builder
|
|
|
12
12
|
_sym_db = _symbol_database.Default()
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\"
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xb8\x01\n\x0fStartRunRequest\x12\x10\n\x08\x66\x61\x62_file\x18\x01 \x01(\x0c\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\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(\x12\"#\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\"(\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t2\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')
|
|
18
19
|
|
|
19
20
|
_globals = globals()
|
|
20
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
22
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.exec_pb2', _globals)
|
|
22
23
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
24
|
DESCRIPTOR._options = None
|
|
24
|
-
_globals['
|
|
25
|
-
_globals['
|
|
26
|
-
_globals['
|
|
27
|
-
_globals['
|
|
28
|
-
_globals['
|
|
29
|
-
_globals['
|
|
30
|
-
_globals['
|
|
31
|
-
_globals['
|
|
32
|
-
_globals['
|
|
33
|
-
_globals['
|
|
25
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._options = None
|
|
26
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
27
|
+
_globals['_STARTRUNREQUEST']._serialized_start=66
|
|
28
|
+
_globals['_STARTRUNREQUEST']._serialized_end=250
|
|
29
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=177
|
|
30
|
+
_globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=250
|
|
31
|
+
_globals['_STARTRUNRESPONSE']._serialized_start=252
|
|
32
|
+
_globals['_STARTRUNRESPONSE']._serialized_end=286
|
|
33
|
+
_globals['_STREAMLOGSREQUEST']._serialized_start=288
|
|
34
|
+
_globals['_STREAMLOGSREQUEST']._serialized_end=323
|
|
35
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_start=325
|
|
36
|
+
_globals['_STREAMLOGSRESPONSE']._serialized_end=365
|
|
37
|
+
_globals['_EXEC']._serialized_start=368
|
|
38
|
+
_globals['_EXEC']._serialized_end=528
|
|
34
39
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/exec_pb2.pyi
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
isort:skip_file
|
|
4
4
|
"""
|
|
5
5
|
import builtins
|
|
6
|
+
import flwr.proto.transport_pb2
|
|
6
7
|
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.containers
|
|
7
9
|
import google.protobuf.message
|
|
8
10
|
import typing
|
|
9
11
|
import typing_extensions
|
|
@@ -12,13 +14,32 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
12
14
|
|
|
13
15
|
class StartRunRequest(google.protobuf.message.Message):
|
|
14
16
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
17
|
+
class OverrideConfigEntry(google.protobuf.message.Message):
|
|
18
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
+
KEY_FIELD_NUMBER: builtins.int
|
|
20
|
+
VALUE_FIELD_NUMBER: builtins.int
|
|
21
|
+
key: typing.Text
|
|
22
|
+
@property
|
|
23
|
+
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
24
|
+
def __init__(self,
|
|
25
|
+
*,
|
|
26
|
+
key: typing.Text = ...,
|
|
27
|
+
value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
|
|
28
|
+
) -> None: ...
|
|
29
|
+
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
30
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
31
|
+
|
|
15
32
|
FAB_FILE_FIELD_NUMBER: builtins.int
|
|
33
|
+
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
16
34
|
fab_file: builtins.bytes
|
|
35
|
+
@property
|
|
36
|
+
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
17
37
|
def __init__(self,
|
|
18
38
|
*,
|
|
19
39
|
fab_file: builtins.bytes = ...,
|
|
40
|
+
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
20
41
|
) -> None: ...
|
|
21
|
-
def ClearField(self, field_name: typing_extensions.Literal["fab_file",b"fab_file"]) -> None: ...
|
|
42
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_file",b"fab_file","override_config",b"override_config"]) -> None: ...
|
|
22
43
|
global___StartRunRequest = StartRunRequest
|
|
23
44
|
|
|
24
45
|
class StartRunResponse(google.protobuf.message.Message):
|
flwr/proto/run_pb2.py
CHANGED
|
@@ -12,19 +12,24 @@ from google.protobuf.internal import builder as _builder
|
|
|
12
12
|
_sym_db = _symbol_database.Default()
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\"
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xc3\x01\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\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\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\"\x1f\n\rGetRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x12\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Runb\x06proto3')
|
|
18
19
|
|
|
19
20
|
_globals = globals()
|
|
20
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
22
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.run_pb2', _globals)
|
|
22
23
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
24
|
DESCRIPTOR._options = None
|
|
24
|
-
_globals['
|
|
25
|
-
_globals['
|
|
26
|
-
_globals['
|
|
27
|
-
_globals['
|
|
28
|
-
_globals['
|
|
29
|
-
_globals['
|
|
25
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._options = None
|
|
26
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
27
|
+
_globals['_RUN']._serialized_start=65
|
|
28
|
+
_globals['_RUN']._serialized_end=260
|
|
29
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=187
|
|
30
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=260
|
|
31
|
+
_globals['_GETRUNREQUEST']._serialized_start=262
|
|
32
|
+
_globals['_GETRUNREQUEST']._serialized_end=293
|
|
33
|
+
_globals['_GETRUNRESPONSE']._serialized_start=295
|
|
34
|
+
_globals['_GETRUNRESPONSE']._serialized_end=341
|
|
30
35
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/run_pb2.pyi
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
isort:skip_file
|
|
4
4
|
"""
|
|
5
5
|
import builtins
|
|
6
|
+
import flwr.proto.transport_pb2
|
|
6
7
|
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.containers
|
|
7
9
|
import google.protobuf.message
|
|
8
10
|
import typing
|
|
9
11
|
import typing_extensions
|
|
@@ -12,19 +14,38 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
12
14
|
|
|
13
15
|
class Run(google.protobuf.message.Message):
|
|
14
16
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
17
|
+
class OverrideConfigEntry(google.protobuf.message.Message):
|
|
18
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
+
KEY_FIELD_NUMBER: builtins.int
|
|
20
|
+
VALUE_FIELD_NUMBER: builtins.int
|
|
21
|
+
key: typing.Text
|
|
22
|
+
@property
|
|
23
|
+
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
24
|
+
def __init__(self,
|
|
25
|
+
*,
|
|
26
|
+
key: typing.Text = ...,
|
|
27
|
+
value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
|
|
28
|
+
) -> None: ...
|
|
29
|
+
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
|
30
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
|
31
|
+
|
|
15
32
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
16
33
|
FAB_ID_FIELD_NUMBER: builtins.int
|
|
17
34
|
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
35
|
+
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
18
36
|
run_id: builtins.int
|
|
19
37
|
fab_id: typing.Text
|
|
20
38
|
fab_version: typing.Text
|
|
39
|
+
@property
|
|
40
|
+
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
21
41
|
def __init__(self,
|
|
22
42
|
*,
|
|
23
43
|
run_id: builtins.int = ...,
|
|
24
44
|
fab_id: typing.Text = ...,
|
|
25
45
|
fab_version: typing.Text = ...,
|
|
46
|
+
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
26
47
|
) -> None: ...
|
|
27
|
-
def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version","run_id",b"run_id"]) -> None: ...
|
|
48
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config","run_id",b"run_id"]) -> None: ...
|
|
28
49
|
global___Run = Run
|
|
29
50
|
|
|
30
51
|
class GetRunRequest(google.protobuf.message.Message):
|
flwr/proto/task_pb2.py
CHANGED
|
@@ -14,21 +14,20 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
|
16
16
|
from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
|
|
17
|
-
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
17
|
from flwr.proto import error_pb2 as flwr_dot_proto_dot_error__pb2
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x16\x66lwr/proto/error.proto\"\x89\x02\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x11\n\tpushed_at\x18\x05 \x01(\x01\x12\x0b\n\x03ttl\x18\x06 \x01(\x01\x12\x10\n\x08\x61ncestry\x18\x07 \x03(\t\x12\x11\n\ttask_type\x18\x08 \x01(\t\x12(\n\trecordset\x18\t \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\n \x01(\x0b\x32\x11.flwr.proto.Error\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Taskb\x06proto3')
|
|
22
21
|
|
|
23
22
|
_globals = globals()
|
|
24
23
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
25
24
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
|
|
26
25
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
27
26
|
DESCRIPTOR._options = None
|
|
28
|
-
_globals['_TASK']._serialized_start=
|
|
29
|
-
_globals['_TASK']._serialized_end=
|
|
30
|
-
_globals['_TASKINS']._serialized_start=
|
|
31
|
-
_globals['_TASKINS']._serialized_end=
|
|
32
|
-
_globals['_TASKRES']._serialized_start=
|
|
33
|
-
_globals['_TASKRES']._serialized_end=
|
|
27
|
+
_globals['_TASK']._serialized_start=113
|
|
28
|
+
_globals['_TASK']._serialized_end=378
|
|
29
|
+
_globals['_TASKINS']._serialized_start=380
|
|
30
|
+
_globals['_TASKINS']._serialized_end=472
|
|
31
|
+
_globals['_TASKRES']._serialized_start=474
|
|
32
|
+
_globals['_TASKRES']._serialized_end=566
|
|
34
33
|
# @@protoc_insertion_point(module_scope)
|
flwr/server/__init__.py
CHANGED
|
@@ -28,6 +28,7 @@ from .run_serverapp import run_server_app as run_server_app
|
|
|
28
28
|
from .server import Server as Server
|
|
29
29
|
from .server_app import ServerApp as ServerApp
|
|
30
30
|
from .server_config import ServerConfig as ServerConfig
|
|
31
|
+
from .serverapp_components import ServerAppComponents as ServerAppComponents
|
|
31
32
|
|
|
32
33
|
__all__ = [
|
|
33
34
|
"ClientManager",
|
|
@@ -36,6 +37,7 @@ __all__ = [
|
|
|
36
37
|
"LegacyContext",
|
|
37
38
|
"Server",
|
|
38
39
|
"ServerApp",
|
|
40
|
+
"ServerAppComponents",
|
|
39
41
|
"ServerConfig",
|
|
40
42
|
"SimpleClientManager",
|
|
41
43
|
"run_server_app",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
from dataclasses import dataclass
|
|
19
19
|
from typing import Optional
|
|
20
20
|
|
|
21
|
-
from flwr.common import Context
|
|
21
|
+
from flwr.common import Context
|
|
22
22
|
|
|
23
23
|
from ..client_manager import ClientManager, SimpleClientManager
|
|
24
24
|
from ..history import History
|
|
@@ -35,9 +35,9 @@ class LegacyContext(Context):
|
|
|
35
35
|
client_manager: ClientManager
|
|
36
36
|
history: History
|
|
37
37
|
|
|
38
|
-
def __init__(
|
|
38
|
+
def __init__( # pylint: disable=too-many-arguments
|
|
39
39
|
self,
|
|
40
|
-
|
|
40
|
+
context: Context,
|
|
41
41
|
config: Optional[ServerConfig] = None,
|
|
42
42
|
strategy: Optional[Strategy] = None,
|
|
43
43
|
client_manager: Optional[ClientManager] = None,
|
|
@@ -52,4 +52,5 @@ class LegacyContext(Context):
|
|
|
52
52
|
self.strategy = strategy
|
|
53
53
|
self.client_manager = client_manager
|
|
54
54
|
self.history = History()
|
|
55
|
-
|
|
55
|
+
|
|
56
|
+
super().__init__(**vars(context))
|