flwr-nightly 1.11.0.dev20240724__py3-none-any.whl → 1.11.0.dev20240805__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/config_utils.py +27 -8
- flwr/cli/new/new.py +6 -5
- flwr/cli/new/templates/app/README.md.tpl +1 -1
- flwr/cli/new/templates/app/code/__init__.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.huggingface.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.jax.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.mlx.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.numpy.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl +9 -8
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +5 -8
- flwr/cli/new/templates/app/code/server.huggingface.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.jax.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.mlx.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.numpy.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl +7 -6
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +4 -5
- flwr/cli/new/templates/app/code/task.huggingface.py.tpl +1 -1
- flwr/cli/new/templates/app/code/task.jax.py.tpl +2 -2
- flwr/cli/new/templates/app/code/task.mlx.py.tpl +2 -1
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +14 -20
- flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +16 -4
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +2 -2
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +3 -3
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -2
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +2 -2
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
- flwr/client/grpc_rere_client/grpc_adapter.py +7 -0
- flwr/proto/driver_pb2.py +22 -21
- flwr/proto/driver_pb2.pyi +7 -1
- flwr/proto/driver_pb2_grpc.py +35 -0
- flwr/proto/driver_pb2_grpc.pyi +14 -0
- flwr/proto/fleet_pb2.py +28 -27
- flwr/proto/fleet_pb2_grpc.py +35 -0
- flwr/proto/fleet_pb2_grpc.pyi +14 -0
- flwr/proto/run_pb2.py +8 -8
- flwr/proto/run_pb2.pyi +4 -1
- flwr/server/superlink/driver/driver_servicer.py +7 -0
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +7 -0
- flwr/superexec/simulation.py +15 -3
- {flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/METADATA +1 -1
- {flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/RECORD +48 -48
- {flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/entry_points.txt +0 -0
flwr/proto/driver_pb2.pyi
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
isort:skip_file
|
|
4
4
|
"""
|
|
5
5
|
import builtins
|
|
6
|
+
import flwr.proto.fab_pb2
|
|
6
7
|
import flwr.proto.node_pb2
|
|
7
8
|
import flwr.proto.task_pb2
|
|
8
9
|
import flwr.proto.transport_pb2
|
|
@@ -35,17 +36,22 @@ class CreateRunRequest(google.protobuf.message.Message):
|
|
|
35
36
|
FAB_ID_FIELD_NUMBER: builtins.int
|
|
36
37
|
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
37
38
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
39
|
+
FAB_FIELD_NUMBER: builtins.int
|
|
38
40
|
fab_id: typing.Text
|
|
39
41
|
fab_version: typing.Text
|
|
40
42
|
@property
|
|
41
43
|
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
44
|
+
@property
|
|
45
|
+
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
|
42
46
|
def __init__(self,
|
|
43
47
|
*,
|
|
44
48
|
fab_id: typing.Text = ...,
|
|
45
49
|
fab_version: typing.Text = ...,
|
|
46
50
|
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
51
|
+
fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
|
|
47
52
|
) -> None: ...
|
|
48
|
-
def
|
|
53
|
+
def HasField(self, field_name: typing_extensions.Literal["fab",b"fab"]) -> builtins.bool: ...
|
|
54
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config"]) -> None: ...
|
|
49
55
|
global___CreateRunRequest = CreateRunRequest
|
|
50
56
|
|
|
51
57
|
class CreateRunResponse(google.protobuf.message.Message):
|
flwr/proto/driver_pb2_grpc.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import grpc
|
|
4
4
|
|
|
5
5
|
from flwr.proto import driver_pb2 as flwr_dot_proto_dot_driver__pb2
|
|
6
|
+
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
6
7
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
7
8
|
|
|
8
9
|
|
|
@@ -40,6 +41,11 @@ class DriverStub(object):
|
|
|
40
41
|
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
|
41
42
|
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
|
42
43
|
)
|
|
44
|
+
self.GetFab = channel.unary_unary(
|
|
45
|
+
'/flwr.proto.Driver/GetFab',
|
|
46
|
+
request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
|
47
|
+
response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
48
|
+
)
|
|
43
49
|
|
|
44
50
|
|
|
45
51
|
class DriverServicer(object):
|
|
@@ -80,6 +86,13 @@ class DriverServicer(object):
|
|
|
80
86
|
context.set_details('Method not implemented!')
|
|
81
87
|
raise NotImplementedError('Method not implemented!')
|
|
82
88
|
|
|
89
|
+
def GetFab(self, request, context):
|
|
90
|
+
"""Get FAB
|
|
91
|
+
"""
|
|
92
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
93
|
+
context.set_details('Method not implemented!')
|
|
94
|
+
raise NotImplementedError('Method not implemented!')
|
|
95
|
+
|
|
83
96
|
|
|
84
97
|
def add_DriverServicer_to_server(servicer, server):
|
|
85
98
|
rpc_method_handlers = {
|
|
@@ -108,6 +121,11 @@ def add_DriverServicer_to_server(servicer, server):
|
|
|
108
121
|
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
|
|
109
122
|
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
|
|
110
123
|
),
|
|
124
|
+
'GetFab': grpc.unary_unary_rpc_method_handler(
|
|
125
|
+
servicer.GetFab,
|
|
126
|
+
request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
|
|
127
|
+
response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
|
|
128
|
+
),
|
|
111
129
|
}
|
|
112
130
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
113
131
|
'flwr.proto.Driver', rpc_method_handlers)
|
|
@@ -202,3 +220,20 @@ class Driver(object):
|
|
|
202
220
|
flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
|
203
221
|
options, channel_credentials,
|
|
204
222
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
223
|
+
|
|
224
|
+
@staticmethod
|
|
225
|
+
def GetFab(request,
|
|
226
|
+
target,
|
|
227
|
+
options=(),
|
|
228
|
+
channel_credentials=None,
|
|
229
|
+
call_credentials=None,
|
|
230
|
+
insecure=False,
|
|
231
|
+
compression=None,
|
|
232
|
+
wait_for_ready=None,
|
|
233
|
+
timeout=None,
|
|
234
|
+
metadata=None):
|
|
235
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Driver/GetFab',
|
|
236
|
+
flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
|
237
|
+
flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
238
|
+
options, channel_credentials,
|
|
239
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
flwr/proto/driver_pb2_grpc.pyi
CHANGED
|
@@ -4,6 +4,7 @@ isort:skip_file
|
|
|
4
4
|
"""
|
|
5
5
|
import abc
|
|
6
6
|
import flwr.proto.driver_pb2
|
|
7
|
+
import flwr.proto.fab_pb2
|
|
7
8
|
import flwr.proto.run_pb2
|
|
8
9
|
import grpc
|
|
9
10
|
|
|
@@ -34,6 +35,11 @@ class DriverStub:
|
|
|
34
35
|
flwr.proto.run_pb2.GetRunResponse]
|
|
35
36
|
"""Get run details"""
|
|
36
37
|
|
|
38
|
+
GetFab: grpc.UnaryUnaryMultiCallable[
|
|
39
|
+
flwr.proto.fab_pb2.GetFabRequest,
|
|
40
|
+
flwr.proto.fab_pb2.GetFabResponse]
|
|
41
|
+
"""Get FAB"""
|
|
42
|
+
|
|
37
43
|
|
|
38
44
|
class DriverServicer(metaclass=abc.ABCMeta):
|
|
39
45
|
@abc.abstractmethod
|
|
@@ -76,5 +82,13 @@ class DriverServicer(metaclass=abc.ABCMeta):
|
|
|
76
82
|
"""Get run details"""
|
|
77
83
|
pass
|
|
78
84
|
|
|
85
|
+
@abc.abstractmethod
|
|
86
|
+
def GetFab(self,
|
|
87
|
+
request: flwr.proto.fab_pb2.GetFabRequest,
|
|
88
|
+
context: grpc.ServicerContext,
|
|
89
|
+
) -> flwr.proto.fab_pb2.GetFabResponse:
|
|
90
|
+
"""Get FAB"""
|
|
91
|
+
pass
|
|
92
|
+
|
|
79
93
|
|
|
80
94
|
def add_DriverServicer_to_server(servicer: DriverServicer, server: grpc.Server) -> None: ...
|
flwr/proto/fleet_pb2.py
CHANGED
|
@@ -15,9 +15,10 @@ _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 fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"@\n\x12PushTaskResRequest\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x15\x66lwr/proto/task.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"*\n\x11\x43reateNodeRequest\x12\x15\n\rping_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"D\n\x0bPingRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x15\n\rping_interval\x18\x02 \x01(\x01\"\x1f\n\x0cPingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"F\n\x12PullTaskInsRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"k\n\x13PullTaskInsResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rtask_ins_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"@\n\x12PushTaskResRequest\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\xae\x01\n\x13PushTaskResResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12=\n\x07results\x18\x02 \x03(\x0b\x32,.flwr.proto.PushTaskResResponse.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\x8c\x04\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12;\n\x04Ping\x12\x17.flwr.proto.PingRequest\x1a\x18.flwr.proto.PingResponse\"\x00\x12P\n\x0bPullTaskIns\x12\x1e.flwr.proto.PullTaskInsRequest\x1a\x1f.flwr.proto.PullTaskInsResponse\"\x00\x12P\n\x0bPushTaskRes\x12\x1e.flwr.proto.PushTaskResRequest\x1a\x1f.flwr.proto.PushTaskResResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x62\x06proto3')
|
|
21
22
|
|
|
22
23
|
_globals = globals()
|
|
23
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -26,30 +27,30 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
26
27
|
DESCRIPTOR._options = None
|
|
27
28
|
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._options = None
|
|
28
29
|
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
|
29
|
-
_globals['_CREATENODEREQUEST']._serialized_start=
|
|
30
|
-
_globals['_CREATENODEREQUEST']._serialized_end=
|
|
31
|
-
_globals['_CREATENODERESPONSE']._serialized_start=
|
|
32
|
-
_globals['_CREATENODERESPONSE']._serialized_end=
|
|
33
|
-
_globals['_DELETENODEREQUEST']._serialized_start=
|
|
34
|
-
_globals['_DELETENODEREQUEST']._serialized_end=
|
|
35
|
-
_globals['_DELETENODERESPONSE']._serialized_start=
|
|
36
|
-
_globals['_DELETENODERESPONSE']._serialized_end=
|
|
37
|
-
_globals['_PINGREQUEST']._serialized_start=
|
|
38
|
-
_globals['_PINGREQUEST']._serialized_end=
|
|
39
|
-
_globals['_PINGRESPONSE']._serialized_start=
|
|
40
|
-
_globals['_PINGRESPONSE']._serialized_end=
|
|
41
|
-
_globals['_PULLTASKINSREQUEST']._serialized_start=
|
|
42
|
-
_globals['_PULLTASKINSREQUEST']._serialized_end=
|
|
43
|
-
_globals['_PULLTASKINSRESPONSE']._serialized_start=
|
|
44
|
-
_globals['_PULLTASKINSRESPONSE']._serialized_end=
|
|
45
|
-
_globals['_PUSHTASKRESREQUEST']._serialized_start=
|
|
46
|
-
_globals['_PUSHTASKRESREQUEST']._serialized_end=
|
|
47
|
-
_globals['_PUSHTASKRESRESPONSE']._serialized_start=
|
|
48
|
-
_globals['_PUSHTASKRESRESPONSE']._serialized_end=
|
|
49
|
-
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=
|
|
50
|
-
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=
|
|
51
|
-
_globals['_RECONNECT']._serialized_start=
|
|
52
|
-
_globals['_RECONNECT']._serialized_end=
|
|
53
|
-
_globals['_FLEET']._serialized_start=
|
|
54
|
-
_globals['_FLEET']._serialized_end=
|
|
30
|
+
_globals['_CREATENODEREQUEST']._serialized_start=128
|
|
31
|
+
_globals['_CREATENODEREQUEST']._serialized_end=170
|
|
32
|
+
_globals['_CREATENODERESPONSE']._serialized_start=172
|
|
33
|
+
_globals['_CREATENODERESPONSE']._serialized_end=224
|
|
34
|
+
_globals['_DELETENODEREQUEST']._serialized_start=226
|
|
35
|
+
_globals['_DELETENODEREQUEST']._serialized_end=277
|
|
36
|
+
_globals['_DELETENODERESPONSE']._serialized_start=279
|
|
37
|
+
_globals['_DELETENODERESPONSE']._serialized_end=299
|
|
38
|
+
_globals['_PINGREQUEST']._serialized_start=301
|
|
39
|
+
_globals['_PINGREQUEST']._serialized_end=369
|
|
40
|
+
_globals['_PINGRESPONSE']._serialized_start=371
|
|
41
|
+
_globals['_PINGRESPONSE']._serialized_end=402
|
|
42
|
+
_globals['_PULLTASKINSREQUEST']._serialized_start=404
|
|
43
|
+
_globals['_PULLTASKINSREQUEST']._serialized_end=474
|
|
44
|
+
_globals['_PULLTASKINSRESPONSE']._serialized_start=476
|
|
45
|
+
_globals['_PULLTASKINSRESPONSE']._serialized_end=583
|
|
46
|
+
_globals['_PUSHTASKRESREQUEST']._serialized_start=585
|
|
47
|
+
_globals['_PUSHTASKRESREQUEST']._serialized_end=649
|
|
48
|
+
_globals['_PUSHTASKRESRESPONSE']._serialized_start=652
|
|
49
|
+
_globals['_PUSHTASKRESRESPONSE']._serialized_end=826
|
|
50
|
+
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=780
|
|
51
|
+
_globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=826
|
|
52
|
+
_globals['_RECONNECT']._serialized_start=828
|
|
53
|
+
_globals['_RECONNECT']._serialized_end=858
|
|
54
|
+
_globals['_FLEET']._serialized_start=861
|
|
55
|
+
_globals['_FLEET']._serialized_end=1385
|
|
55
56
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/fleet_pb2_grpc.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
4
|
|
|
5
|
+
from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
|
|
5
6
|
from flwr.proto import fleet_pb2 as flwr_dot_proto_dot_fleet__pb2
|
|
6
7
|
from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
|
|
7
8
|
|
|
@@ -45,6 +46,11 @@ class FleetStub(object):
|
|
|
45
46
|
request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
|
|
46
47
|
response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
|
47
48
|
)
|
|
49
|
+
self.GetFab = channel.unary_unary(
|
|
50
|
+
'/flwr.proto.Fleet/GetFab',
|
|
51
|
+
request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
|
52
|
+
response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
53
|
+
)
|
|
48
54
|
|
|
49
55
|
|
|
50
56
|
class FleetServicer(object):
|
|
@@ -92,6 +98,13 @@ class FleetServicer(object):
|
|
|
92
98
|
context.set_details('Method not implemented!')
|
|
93
99
|
raise NotImplementedError('Method not implemented!')
|
|
94
100
|
|
|
101
|
+
def GetFab(self, request, context):
|
|
102
|
+
"""Get FAB
|
|
103
|
+
"""
|
|
104
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
105
|
+
context.set_details('Method not implemented!')
|
|
106
|
+
raise NotImplementedError('Method not implemented!')
|
|
107
|
+
|
|
95
108
|
|
|
96
109
|
def add_FleetServicer_to_server(servicer, server):
|
|
97
110
|
rpc_method_handlers = {
|
|
@@ -125,6 +138,11 @@ def add_FleetServicer_to_server(servicer, server):
|
|
|
125
138
|
request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
|
|
126
139
|
response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
|
|
127
140
|
),
|
|
141
|
+
'GetFab': grpc.unary_unary_rpc_method_handler(
|
|
142
|
+
servicer.GetFab,
|
|
143
|
+
request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
|
|
144
|
+
response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
|
|
145
|
+
),
|
|
128
146
|
}
|
|
129
147
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
130
148
|
'flwr.proto.Fleet', rpc_method_handlers)
|
|
@@ -236,3 +254,20 @@ class Fleet(object):
|
|
|
236
254
|
flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
|
|
237
255
|
options, channel_credentials,
|
|
238
256
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
257
|
+
|
|
258
|
+
@staticmethod
|
|
259
|
+
def GetFab(request,
|
|
260
|
+
target,
|
|
261
|
+
options=(),
|
|
262
|
+
channel_credentials=None,
|
|
263
|
+
call_credentials=None,
|
|
264
|
+
insecure=False,
|
|
265
|
+
compression=None,
|
|
266
|
+
wait_for_ready=None,
|
|
267
|
+
timeout=None,
|
|
268
|
+
metadata=None):
|
|
269
|
+
return grpc.experimental.unary_unary(request, target, '/flwr.proto.Fleet/GetFab',
|
|
270
|
+
flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
|
|
271
|
+
flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
|
|
272
|
+
options, channel_credentials,
|
|
273
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
flwr/proto/fleet_pb2_grpc.pyi
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
isort:skip_file
|
|
4
4
|
"""
|
|
5
5
|
import abc
|
|
6
|
+
import flwr.proto.fab_pb2
|
|
6
7
|
import flwr.proto.fleet_pb2
|
|
7
8
|
import flwr.proto.run_pb2
|
|
8
9
|
import grpc
|
|
@@ -41,6 +42,11 @@ class FleetStub:
|
|
|
41
42
|
flwr.proto.run_pb2.GetRunRequest,
|
|
42
43
|
flwr.proto.run_pb2.GetRunResponse]
|
|
43
44
|
|
|
45
|
+
GetFab: grpc.UnaryUnaryMultiCallable[
|
|
46
|
+
flwr.proto.fab_pb2.GetFabRequest,
|
|
47
|
+
flwr.proto.fab_pb2.GetFabResponse]
|
|
48
|
+
"""Get FAB"""
|
|
49
|
+
|
|
44
50
|
|
|
45
51
|
class FleetServicer(metaclass=abc.ABCMeta):
|
|
46
52
|
@abc.abstractmethod
|
|
@@ -89,5 +95,13 @@ class FleetServicer(metaclass=abc.ABCMeta):
|
|
|
89
95
|
context: grpc.ServicerContext,
|
|
90
96
|
) -> flwr.proto.run_pb2.GetRunResponse: ...
|
|
91
97
|
|
|
98
|
+
@abc.abstractmethod
|
|
99
|
+
def GetFab(self,
|
|
100
|
+
request: flwr.proto.fab_pb2.GetFabRequest,
|
|
101
|
+
context: grpc.ServicerContext,
|
|
102
|
+
) -> flwr.proto.fab_pb2.GetFabResponse:
|
|
103
|
+
"""Get FAB"""
|
|
104
|
+
pass
|
|
105
|
+
|
|
92
106
|
|
|
93
107
|
def add_FleetServicer_to_server(servicer: FleetServicer, server: grpc.Server) -> None: ...
|
flwr/proto/run_pb2.py
CHANGED
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/transport.proto\"\
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xd5\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\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\"\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')
|
|
19
19
|
|
|
20
20
|
_globals = globals()
|
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -25,11 +25,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
25
25
|
_globals['_RUN_OVERRIDECONFIGENTRY']._options = None
|
|
26
26
|
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
|
|
27
27
|
_globals['_RUN']._serialized_start=65
|
|
28
|
-
_globals['_RUN']._serialized_end=
|
|
29
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=
|
|
30
|
-
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=
|
|
31
|
-
_globals['_GETRUNREQUEST']._serialized_start=
|
|
32
|
-
_globals['_GETRUNREQUEST']._serialized_end=
|
|
33
|
-
_globals['_GETRUNRESPONSE']._serialized_start=
|
|
34
|
-
_globals['_GETRUNRESPONSE']._serialized_end=
|
|
28
|
+
_globals['_RUN']._serialized_end=278
|
|
29
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=205
|
|
30
|
+
_globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=278
|
|
31
|
+
_globals['_GETRUNREQUEST']._serialized_start=280
|
|
32
|
+
_globals['_GETRUNREQUEST']._serialized_end=311
|
|
33
|
+
_globals['_GETRUNRESPONSE']._serialized_start=313
|
|
34
|
+
_globals['_GETRUNRESPONSE']._serialized_end=359
|
|
35
35
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/run_pb2.pyi
CHANGED
|
@@ -33,19 +33,22 @@ class Run(google.protobuf.message.Message):
|
|
|
33
33
|
FAB_ID_FIELD_NUMBER: builtins.int
|
|
34
34
|
FAB_VERSION_FIELD_NUMBER: builtins.int
|
|
35
35
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
36
|
+
FAB_HASH_FIELD_NUMBER: builtins.int
|
|
36
37
|
run_id: builtins.int
|
|
37
38
|
fab_id: typing.Text
|
|
38
39
|
fab_version: typing.Text
|
|
39
40
|
@property
|
|
40
41
|
def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
|
|
42
|
+
fab_hash: typing.Text
|
|
41
43
|
def __init__(self,
|
|
42
44
|
*,
|
|
43
45
|
run_id: builtins.int = ...,
|
|
44
46
|
fab_id: typing.Text = ...,
|
|
45
47
|
fab_version: typing.Text = ...,
|
|
46
48
|
override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
|
|
49
|
+
fab_hash: typing.Text = ...,
|
|
47
50
|
) -> 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: ...
|
|
51
|
+
def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config","run_id",b"run_id"]) -> None: ...
|
|
49
52
|
global___Run = Run
|
|
50
53
|
|
|
51
54
|
class GetRunRequest(google.protobuf.message.Message):
|
|
@@ -35,6 +35,7 @@ from flwr.proto.driver_pb2 import ( # pylint: disable=E0611
|
|
|
35
35
|
PushTaskInsRequest,
|
|
36
36
|
PushTaskInsResponse,
|
|
37
37
|
)
|
|
38
|
+
from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
|
|
38
39
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
|
39
40
|
from flwr.proto.run_pb2 import ( # pylint: disable=E0611
|
|
40
41
|
GetRunRequest,
|
|
@@ -163,6 +164,12 @@ class DriverServicer(driver_pb2_grpc.DriverServicer):
|
|
|
163
164
|
)
|
|
164
165
|
)
|
|
165
166
|
|
|
167
|
+
def GetFab(
|
|
168
|
+
self, request: GetFabRequest, context: grpc.ServicerContext
|
|
169
|
+
) -> GetFabResponse:
|
|
170
|
+
"""Will be implemented later."""
|
|
171
|
+
raise NotImplementedError
|
|
172
|
+
|
|
166
173
|
|
|
167
174
|
def _raise_if(validation_error: bool, detail: str) -> None:
|
|
168
175
|
if validation_error:
|
|
@@ -21,6 +21,7 @@ import grpc
|
|
|
21
21
|
|
|
22
22
|
from flwr.common.logger import log
|
|
23
23
|
from flwr.proto import fleet_pb2_grpc # pylint: disable=E0611
|
|
24
|
+
from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
|
|
24
25
|
from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
25
26
|
CreateNodeRequest,
|
|
26
27
|
CreateNodeResponse,
|
|
@@ -101,3 +102,9 @@ class FleetServicer(fleet_pb2_grpc.FleetServicer):
|
|
|
101
102
|
request=request,
|
|
102
103
|
state=self.state_factory.state(),
|
|
103
104
|
)
|
|
105
|
+
|
|
106
|
+
def GetFab(
|
|
107
|
+
self, request: GetFabRequest, context: grpc.ServicerContext
|
|
108
|
+
) -> GetFabResponse:
|
|
109
|
+
"""Will be implemented later."""
|
|
110
|
+
raise NotImplementedError
|
flwr/superexec/simulation.py
CHANGED
|
@@ -63,8 +63,10 @@ class SimulationEngine(Executor):
|
|
|
63
63
|
def __init__(
|
|
64
64
|
self,
|
|
65
65
|
num_supernodes: Optional[int] = None,
|
|
66
|
+
verbose: Optional[bool] = False,
|
|
66
67
|
) -> None:
|
|
67
68
|
self.num_supernodes = num_supernodes
|
|
69
|
+
self.verbose = verbose
|
|
68
70
|
|
|
69
71
|
@override
|
|
70
72
|
def set_config(
|
|
@@ -80,6 +82,8 @@ class SimulationEngine(Executor):
|
|
|
80
82
|
Supported configuration key/value pairs:
|
|
81
83
|
- "num-supernodes": int
|
|
82
84
|
Number of nodes to register for the simulation.
|
|
85
|
+
- "verbose": bool
|
|
86
|
+
Set verbosity of logs.
|
|
83
87
|
"""
|
|
84
88
|
if num_supernodes := config.get("num-supernodes"):
|
|
85
89
|
if not isinstance(num_supernodes, int):
|
|
@@ -97,6 +101,13 @@ class SimulationEngine(Executor):
|
|
|
97
101
|
"positive integer."
|
|
98
102
|
)
|
|
99
103
|
|
|
104
|
+
if verbose := config.get("verbose"):
|
|
105
|
+
if not isinstance(verbose, bool):
|
|
106
|
+
raise ValueError(
|
|
107
|
+
"The `verbose` value must be a string `true` or `false`."
|
|
108
|
+
)
|
|
109
|
+
self.verbose = verbose
|
|
110
|
+
|
|
100
111
|
@override
|
|
101
112
|
def start_run(
|
|
102
113
|
self,
|
|
@@ -121,10 +132,11 @@ class SimulationEngine(Executor):
|
|
|
121
132
|
fab_path = install_from_fab(fab_file, None, True)
|
|
122
133
|
|
|
123
134
|
# Install FAB Python package
|
|
124
|
-
subprocess.
|
|
135
|
+
subprocess.run(
|
|
125
136
|
[sys.executable, "-m", "pip", "install", "--no-deps", str(fab_path)],
|
|
126
|
-
stdout=subprocess.DEVNULL,
|
|
127
|
-
stderr=subprocess.DEVNULL,
|
|
137
|
+
stdout=None if self.verbose else subprocess.DEVNULL,
|
|
138
|
+
stderr=None if self.verbose else subprocess.DEVNULL,
|
|
139
|
+
check=True,
|
|
128
140
|
)
|
|
129
141
|
|
|
130
142
|
# Load and validate config
|
{flwr_nightly-1.11.0.dev20240724.dist-info → flwr_nightly-1.11.0.dev20240805.dist-info}/RECORD
RENAMED
|
@@ -2,25 +2,25 @@ flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
3
|
flwr/cli/app.py,sha256=FBcSrE35ll88VE11ib67qgsJe2GYDN25UswV9-cYcX8,1267
|
|
4
4
|
flwr/cli/build.py,sha256=5igi2013fLH-TlR6MNpbxNEMaVqdBbts-E-WdY3JPsE,5167
|
|
5
|
-
flwr/cli/config_utils.py,sha256=
|
|
5
|
+
flwr/cli/config_utils.py,sha256=WK6ywT-mHt2iMG90bspkSGMewv8jXh7yQPVdcPuT2JE,7540
|
|
6
6
|
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
7
|
flwr/cli/install.py,sha256=AI6Zv2dQVDHpLDX1Z_vX5XHVxmZo1OU3ndCSrD2stzQ,7059
|
|
8
8
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
9
|
-
flwr/cli/new/new.py,sha256=
|
|
9
|
+
flwr/cli/new/new.py,sha256=w7Zh9RIrwuasiyZoaj8eM1jTZJ8tzRiwLDXNT4TEAyg,9687
|
|
10
10
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
11
11
|
flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
|
|
12
12
|
flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=PqzkGm0g6Zy-vZK9_0EO3f_U6g1r69lGc4UL8kds5Q8,2696
|
|
13
|
-
flwr/cli/new/templates/app/README.md.tpl,sha256=
|
|
13
|
+
flwr/cli/new/templates/app/README.md.tpl,sha256=9-z-JDEao3QmFWNLQyf-OzHlvWxVSzs2s1MeTKk68Zc,699
|
|
14
14
|
flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
|
|
15
15
|
flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
|
|
16
|
-
flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=
|
|
17
|
-
flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=
|
|
18
|
-
flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=
|
|
19
|
-
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=
|
|
20
|
-
flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=
|
|
21
|
-
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256
|
|
22
|
-
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=
|
|
23
|
-
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=
|
|
16
|
+
flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=J0Gn74E7khpLyKJVNqOPu7ev93vkcu1PZugsbxtABMw,52
|
|
17
|
+
flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=62wtB4k1yrDApiG-rvGlOYFuiwAVk8kqJFmyY_v8HLo,1803
|
|
18
|
+
flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=c2LDew2V8BUybZJiz1FeB3Kq4ey0Q2s0S5qNPUTNmI4,1490
|
|
19
|
+
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=gxipt57ldc741qwRqSWtsLQH05JODKdGMTtvoXiBzDA,2906
|
|
20
|
+
flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=DMUXvQd2dr-wEn0ZrYJQhZ0OFUT4PKoHXtiD2haWnCI,570
|
|
21
|
+
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256=WczaR5avJUhfw2Grn2KEC4tDJ4voIYG-2pAy-7i2cT8,1685
|
|
22
|
+
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=xW9cuKhybk5S8IeDZhbeb0DNegDIJGEYrzMKsxgc2GE,2978
|
|
23
|
+
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=u3KKf7hC9xGqOIUJXYCHJ_jiIu3aVbsC8pxVxm4yN6I,1759
|
|
24
24
|
flwr/cli/new/templates/app/code/flwr_tune/__init__.py,sha256=JgNgBtKdm1jKM9625WxappCAVUGtYAmcjKSsXJ1u3ZQ,748
|
|
25
25
|
flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl,sha256=LOtmEYYayMCpF4rJRdo059n5w_cZRmzyuEkCN2qpTyQ,2826
|
|
26
26
|
flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl,sha256=3s41XYHRvmcLhyA60tZyGCNK2wxo2shl6mwmPfZANlA,4155
|
|
@@ -29,26 +29,26 @@ flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl,sha256=kPG4AIXQfNNHZGYC
|
|
|
29
29
|
flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl,sha256=cEq9ZWM3zImJVceNtxHC_bYBLE8OChK0BdjpWs5Wz-0,1881
|
|
30
30
|
flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl,sha256=tz4hgAGV6pn5cOFW10ELRNRsUzLBSssHxrH_gSs_jtk,1552
|
|
31
31
|
flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl,sha256=cBPpBVN_N7p4T2a3rqChlngmE0dB_jveOLHesNcEHvs,268
|
|
32
|
-
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=
|
|
33
|
-
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=
|
|
34
|
-
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=
|
|
35
|
-
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=
|
|
36
|
-
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=
|
|
37
|
-
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=
|
|
38
|
-
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=
|
|
39
|
-
flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=
|
|
40
|
-
flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=
|
|
41
|
-
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=
|
|
42
|
-
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=
|
|
43
|
-
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=
|
|
32
|
+
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=etpjLvGu6pVXzYQBKZp4tTbD3zm461qFo24NliKo74U,591
|
|
33
|
+
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=pIdUH-LgWRAGWQYLlivMNf8XnDSNDe2cCuRjlxbRzys,529
|
|
34
|
+
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
35
|
+
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
36
|
+
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=DW5c8vzXCvFeIE8YIWBhoGnSdv8Ka_e5wd3F6B3xvp8,916
|
|
37
|
+
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=25Ae3kDqjDdBl8LwkDwye69nevd02Pk_e7F3SQKLdyk,624
|
|
38
|
+
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=xMhQ7AumowgLkgUilgjVK7IbpRhPjslhVJU-vID6NY8,856
|
|
39
|
+
flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=G_LOeGErw-6WZAyuT01mXqR6s_BUrQYErXf_nHLujo4,3153
|
|
40
|
+
flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=F05eg149c9icRyVNdfcLyZvAXROQ7QhfifoGw_U1dsg,1530
|
|
41
|
+
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=jWtCULLRr_9bCIJvoTLMx037-SDl_LF8udtA1UGoXDk,2946
|
|
42
|
+
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=NgbPix74X1t3ybaGjqdls30vF1i5oY3L7EQExhWhN74,3812
|
|
43
|
+
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
|
|
44
44
|
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=chTKewidM-st9Uk5o95tGOqJ5FSa1L2R0UdSW2wTr0c,789
|
|
45
|
-
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=
|
|
46
|
-
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=
|
|
47
|
-
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=
|
|
48
|
-
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256
|
|
49
|
-
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=
|
|
50
|
-
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=
|
|
51
|
-
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=
|
|
45
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=nD0rRUyr_Cj0TaSH8PsiaMhCwu_BuOVX4oqWfFSvOcE,765
|
|
46
|
+
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=Tq6jeGcoOKzMwWWYxMVnzMcipLURHLiW69iYlD1ywMg,659
|
|
47
|
+
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=SHwYAA2qgIlOAU3Sb9BKSZcZ7O9biACg27MHexXUtDw,741
|
|
48
|
+
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=-FCi64ygMgQke3zApUt0XtkIBo3WtQoPAPhtp_FqkPE,612
|
|
49
|
+
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=vIO1ArukTC76ogYLNmJIl25MOE_nEELj3IcTZZJjohU,710
|
|
50
|
+
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=jk_5teoyOVM9QdBea8J-nk10S6TKw81QZiiKB54ATF0,654
|
|
51
|
+
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=bRIvPCPvTTI4Eo5b61Rmw8WdDw3sjcohciTXgULN5l8,702
|
|
52
52
|
flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
53
53
|
flwr/cli/run/run.py,sha256=s6I2EU6dmjJHPJ_LNdjIBe9UZlCwvf5RA5O61nAgO3g,7483
|
|
54
54
|
flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
|
|
@@ -64,7 +64,7 @@ flwr/client/grpc_client/connection.py,sha256=7J3YlvvBrky3f8UJ99U9IsPECGtcY8rvXsy
|
|
|
64
64
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
65
65
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
|
|
66
66
|
flwr/client/grpc_rere_client/connection.py,sha256=MFDfvYQX-ges2rOgsn1GIOTGY3Py0g2GTnHRtdOdjVA,10389
|
|
67
|
-
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=
|
|
67
|
+
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=Pw7Toi4wCUIEdBMyv4yKirjgW6814gFhhAmsTYmV4IM,5005
|
|
68
68
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
69
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
70
70
|
flwr/client/message_handler/message_handler.py,sha256=q1fiWQob4TCaSHxvIklEtqsz-TwupXNYK-yKV9LubWY,6531
|
|
@@ -127,10 +127,10 @@ flwr/proto/common_pb2.py,sha256=uzSmq0FJdC-MriN9UGPFs7QVIFTKJmX5lyLnzcyZ5WE,2405
|
|
|
127
127
|
flwr/proto/common_pb2.pyi,sha256=0ylFO7G79qqLuRg9IQUCBdgyIIFv4m8VzrfoWad4xXU,5394
|
|
128
128
|
flwr/proto/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
129
129
|
flwr/proto/common_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
130
|
-
flwr/proto/driver_pb2.py,sha256=
|
|
131
|
-
flwr/proto/driver_pb2.pyi,sha256=
|
|
132
|
-
flwr/proto/driver_pb2_grpc.py,sha256=
|
|
133
|
-
flwr/proto/driver_pb2_grpc.pyi,sha256=
|
|
130
|
+
flwr/proto/driver_pb2.py,sha256=Zeh0qvAdcKED8fxHDai67mgDq0iFR0b87C8BbOemvi8,4299
|
|
131
|
+
flwr/proto/driver_pb2.pyi,sha256=apvTyy7N0SV3H8mueOwgB8aDETtxb6ZuKB1g1nMmJ4o,6390
|
|
132
|
+
flwr/proto/driver_pb2_grpc.py,sha256=ZNDFyPfEZt5L3eFqJRwAE_ylwWLTNf1hfXzUGkVpzTI,10462
|
|
133
|
+
flwr/proto/driver_pb2_grpc.pyi,sha256=_SLFI7AvJv5JU_7axipERF4oTspRh3bzZswLiKDtV1E,2812
|
|
134
134
|
flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
135
135
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
136
136
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -143,10 +143,10 @@ flwr/proto/fab_pb2.py,sha256=k1L3z4L3pJGRIUmgt609xUe-UAtSKFwT0C7wXnb12IY,1427
|
|
|
143
143
|
flwr/proto/fab_pb2.pyi,sha256=G2eHjgIAeVAf4TchXg3XPdeUk-h5-OMJnAv7CLyxdGs,1930
|
|
144
144
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
145
145
|
flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
146
|
-
flwr/proto/fleet_pb2.py,sha256=
|
|
146
|
+
flwr/proto/fleet_pb2.py,sha256=euBC2M_LfQSwiSK9kFi18OvoV1gnQT4cC9lAMCCiOGY,4729
|
|
147
147
|
flwr/proto/fleet_pb2.pyi,sha256=45kQ9YINv3VG0nxWSjCN4SppdepjKW8rRBlxKxz7ud4,7571
|
|
148
|
-
flwr/proto/fleet_pb2_grpc.py,sha256=
|
|
149
|
-
flwr/proto/fleet_pb2_grpc.pyi,sha256=
|
|
148
|
+
flwr/proto/fleet_pb2_grpc.py,sha256=VyqpAcX-6tiQVehQfRMbCErtIW4Mot1uXUSzRaklZTI,12228
|
|
149
|
+
flwr/proto/fleet_pb2_grpc.pyi,sha256=VvOtOBwPcgoHRPgj2JENXq2HbcfU8cxp82E9tDfGyEs,3216
|
|
150
150
|
flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM,1843
|
|
151
151
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
|
152
152
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
|
@@ -159,8 +159,8 @@ flwr/proto/recordset_pb2.py,sha256=un8L0kvBcgFXQIiQweOseeIJBjlOozUvQY9uTQ42Dqo,6
|
|
|
159
159
|
flwr/proto/recordset_pb2.pyi,sha256=NPzCJWAj1xLWzeZ_xZ6uaObQjQfWGnnqlLtn4J-SoFY,14161
|
|
160
160
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
161
161
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
162
|
-
flwr/proto/run_pb2.py,sha256=
|
|
163
|
-
flwr/proto/run_pb2.pyi,sha256=
|
|
162
|
+
flwr/proto/run_pb2.py,sha256=Fs2HlEgOFDm9-No40K8GE2o_4aTRXZrxa_jTeYPz9l4,2102
|
|
163
|
+
flwr/proto/run_pb2.pyi,sha256=oIaKIjgyjnifossFMTSqQISEMb1IJYhSYGQYcAGBIS4,3063
|
|
164
164
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
165
165
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
166
166
|
flwr/proto/task_pb2.py,sha256=xuXMmfPAWd7lhyyqhGrmjsfn_j_s5HRz21vMXtxziNE,2361
|
|
@@ -219,7 +219,7 @@ flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5u
|
|
|
219
219
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
220
220
|
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
221
221
|
flwr/server/superlink/driver/driver_grpc.py,sha256=wMqYVeDwIc_FEfQPbCzd9p1YyIcjwiFUMX4QZjGSx5k,1932
|
|
222
|
-
flwr/server/superlink/driver/driver_servicer.py,sha256=
|
|
222
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=UWJKw7-eVILw97MdTGjZt9yV0noXnrzcO72bYZ0b2kM,6010
|
|
223
223
|
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
224
224
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
225
225
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
|
|
@@ -229,7 +229,7 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFM
|
|
|
229
229
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
230
230
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=ROH-dr7TQZ9nVXjkKOzMhxidJguX2li8--nDnXRi-dU,12095
|
|
231
231
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
232
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
|
232
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=D7OBFZSDBTpA5MiNHtAmELr569gqhjpCHbFlsvqx4Gg,3705
|
|
233
233
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
|
|
234
234
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
235
235
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=KgNah2AaNDiqsTEa653wQqVGUy8hvNAOFzeUfaQR6-Y,3893
|
|
@@ -269,9 +269,9 @@ flwr/superexec/deployment.py,sha256=B--96bAvyotQX-c4-umXIe50uCw4HVjD79rXCQtSUH4,
|
|
|
269
269
|
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
270
270
|
flwr/superexec/exec_servicer.py,sha256=fxQAKfgmQRSnYq5anjryfGeRbsZrNFEkuiNcTZhRwiE,2320
|
|
271
271
|
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
272
|
-
flwr/superexec/simulation.py,sha256=
|
|
273
|
-
flwr_nightly-1.11.0.
|
|
274
|
-
flwr_nightly-1.11.0.
|
|
275
|
-
flwr_nightly-1.11.0.
|
|
276
|
-
flwr_nightly-1.11.0.
|
|
277
|
-
flwr_nightly-1.11.0.
|
|
272
|
+
flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
|
|
273
|
+
flwr_nightly-1.11.0.dev20240805.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
274
|
+
flwr_nightly-1.11.0.dev20240805.dist-info/METADATA,sha256=GbnPZD32eyE4EtjGhNPvXtx0eATKrt8oTW0Y7Qa6k9c,15672
|
|
275
|
+
flwr_nightly-1.11.0.dev20240805.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
276
|
+
flwr_nightly-1.11.0.dev20240805.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
|
|
277
|
+
flwr_nightly-1.11.0.dev20240805.dist-info/RECORD,,
|