flwr-nightly 1.11.0.dev20240804__py3-none-any.whl → 1.11.0.dev20240806__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.

Files changed (47) hide show
  1. flwr/cli/config_utils.py +27 -8
  2. flwr/cli/new/new.py +10 -9
  3. flwr/cli/new/templates/app/README.md.tpl +1 -1
  4. flwr/cli/new/templates/app/code/__init__.py.tpl +1 -1
  5. flwr/cli/new/templates/app/code/client.huggingface.py.tpl +1 -1
  6. flwr/cli/new/templates/app/code/client.jax.py.tpl +1 -1
  7. flwr/cli/new/templates/app/code/client.mlx.py.tpl +1 -1
  8. flwr/cli/new/templates/app/code/client.numpy.py.tpl +1 -1
  9. flwr/cli/new/templates/app/code/client.pytorch.py.tpl +9 -8
  10. flwr/cli/new/templates/app/code/client.sklearn.py.tpl +1 -1
  11. flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +5 -8
  12. flwr/cli/new/templates/app/code/server.huggingface.py.tpl +1 -1
  13. flwr/cli/new/templates/app/code/server.jax.py.tpl +1 -1
  14. flwr/cli/new/templates/app/code/server.mlx.py.tpl +1 -1
  15. flwr/cli/new/templates/app/code/server.numpy.py.tpl +1 -1
  16. flwr/cli/new/templates/app/code/server.pytorch.py.tpl +7 -6
  17. flwr/cli/new/templates/app/code/server.sklearn.py.tpl +1 -1
  18. flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +4 -5
  19. flwr/cli/new/templates/app/code/task.huggingface.py.tpl +1 -1
  20. flwr/cli/new/templates/app/code/task.jax.py.tpl +1 -1
  21. flwr/cli/new/templates/app/code/task.mlx.py.tpl +2 -1
  22. flwr/cli/new/templates/app/code/task.pytorch.py.tpl +14 -20
  23. flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +16 -4
  24. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +2 -2
  25. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  26. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +3 -3
  27. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  28. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -2
  29. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +2 -2
  30. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  31. flwr/client/grpc_rere_client/grpc_adapter.py +7 -0
  32. flwr/proto/driver_pb2.py +22 -21
  33. flwr/proto/driver_pb2.pyi +7 -1
  34. flwr/proto/driver_pb2_grpc.py +35 -0
  35. flwr/proto/driver_pb2_grpc.pyi +14 -0
  36. flwr/proto/fleet_pb2.py +28 -27
  37. flwr/proto/fleet_pb2_grpc.py +35 -0
  38. flwr/proto/fleet_pb2_grpc.pyi +14 -0
  39. flwr/proto/run_pb2.py +8 -8
  40. flwr/proto/run_pb2.pyi +4 -1
  41. flwr/server/superlink/driver/driver_servicer.py +7 -0
  42. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +7 -0
  43. {flwr_nightly-1.11.0.dev20240804.dist-info → flwr_nightly-1.11.0.dev20240806.dist-info}/METADATA +1 -1
  44. {flwr_nightly-1.11.0.dev20240804.dist-info → flwr_nightly-1.11.0.dev20240806.dist-info}/RECORD +47 -47
  45. {flwr_nightly-1.11.0.dev20240804.dist-info → flwr_nightly-1.11.0.dev20240806.dist-info}/LICENSE +0 -0
  46. {flwr_nightly-1.11.0.dev20240804.dist-info → flwr_nightly-1.11.0.dev20240806.dist-info}/WHEEL +0 -0
  47. {flwr_nightly-1.11.0.dev20240804.dist-info → flwr_nightly-1.11.0.dev20240806.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 ClearField(self, field_name: typing_extensions.Literal["fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config"]) -> None: ...
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):
@@ -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)
@@ -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\xc9\x03\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\x62\x06proto3')
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=106
30
- _globals['_CREATENODEREQUEST']._serialized_end=148
31
- _globals['_CREATENODERESPONSE']._serialized_start=150
32
- _globals['_CREATENODERESPONSE']._serialized_end=202
33
- _globals['_DELETENODEREQUEST']._serialized_start=204
34
- _globals['_DELETENODEREQUEST']._serialized_end=255
35
- _globals['_DELETENODERESPONSE']._serialized_start=257
36
- _globals['_DELETENODERESPONSE']._serialized_end=277
37
- _globals['_PINGREQUEST']._serialized_start=279
38
- _globals['_PINGREQUEST']._serialized_end=347
39
- _globals['_PINGRESPONSE']._serialized_start=349
40
- _globals['_PINGRESPONSE']._serialized_end=380
41
- _globals['_PULLTASKINSREQUEST']._serialized_start=382
42
- _globals['_PULLTASKINSREQUEST']._serialized_end=452
43
- _globals['_PULLTASKINSRESPONSE']._serialized_start=454
44
- _globals['_PULLTASKINSRESPONSE']._serialized_end=561
45
- _globals['_PUSHTASKRESREQUEST']._serialized_start=563
46
- _globals['_PUSHTASKRESREQUEST']._serialized_end=627
47
- _globals['_PUSHTASKRESRESPONSE']._serialized_start=630
48
- _globals['_PUSHTASKRESRESPONSE']._serialized_end=804
49
- _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_start=758
50
- _globals['_PUSHTASKRESRESPONSE_RESULTSENTRY']._serialized_end=804
51
- _globals['_RECONNECT']._serialized_start=806
52
- _globals['_RECONNECT']._serialized_end=836
53
- _globals['_FLEET']._serialized_start=839
54
- _globals['_FLEET']._serialized_end=1296
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)
@@ -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)
@@ -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\"\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
+ 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=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
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.11.0.dev20240804
3
+ Version: 1.11.0.dev20240806
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -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=kSgAMA4KE2SEKmfKLEvMcYQVdT8fTEnX5JTq2t04wGM,7057
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=LIUAIxhqc04rxl8sOr-9JbUlOWNiHf6UUpiDQD1hH-s,9623
9
+ flwr/cli/new/new.py,sha256=kwP-hUD8Qz2BMoZaELhZh0Q0bEL1PM-dRfrzoVYJ_lc,9679
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=_qGtgpKYKoCJVjQnvlBMKvFs_1gzTcL908I3KJg0oAM,668
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=olwrBeJemHNBWvjc6gJURloFRqW40dAy7FRQA5pDqHU,21
17
- flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=gELeNHzJQLMhBIMxnW7rqKGHf-jE9oLMWA2-UesVCao,1813
18
- flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=i_SZykD42vqEvv2ZyX655szuikXJXLc6uV1T-LWiYLU,1479
19
- flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=2NBg3Q7siU-SsReTMZ6W1VwcuVImaxH7L2r1AkSJyYQ,2895
20
- flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=ov9mtWJGjaQ9ZVlQ5jsuCjHDeETf13GFla5jbP3KimE,561
21
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256=-Q41F1fqt_RzqM_C3qA-dKl4AoRev9jZq-pFo7LCaVU,1558
22
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=9JUQc_qAoo7dizeAhaHC_Ml06dYtEIxHZrCNxl5xTDs,2976
23
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=yIK9nE5YUaidM5YPtlfBbfMBSYDp-h7adjmT599TtR8,1891
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=r-sO6W-K-apf3byEQDh70ANHfPwsRgArJgTuctFFBi4,601
33
- flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=hg6GrJu4B1Lifc-WyZq9vb3c5FnrTjkz3rdr3HxrJwo,518
34
- flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=qyo_Nla-AVC1Yf7sJJ-xlOHLLE7e0FRNkWcoltB68ag,518
35
- flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=R_-xdu9eEvrN_lhyqK4akSCQaj7sPP4QIACZkUZ7Ihw,520
36
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=FH6jQsUliJueMVzXlrvr1aFwXWq6Mp_6jjmNbolkEcA,834
37
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=blkpvISjmPNOaJCyZf5Ezrg8VyxXdHUzxb3vMxcD3Lg,622
38
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=LGQaVsfo5rVzgiFTew0z3O6AVwIoDG5rdobnwMpb1yE,852
39
- flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=jiCZobChVJkm9OomI9_Q0bCsdGfXMgVh5bY_OulsLMk,3163
40
- flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=FCGo_ZK5bqLKOgLOIERDKGScVcRV6Tk9TocwHVcTQsI,1519
41
- flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=q4yf8B0hdvHKZUvuhlxpQpyY-wfV5pbqEQ4VHFtuqkU,2899
42
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=LEBb0-IOAlnRnn-aTAYv80Fgs67wHCSP6PlhNBdsH2k,3939
43
- flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=8sZ8Y5kkaptzwfhAeuoBdth7VFQmD9jjjUrRvcyRrEk,1330
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=X82t0bKRzsTG1w5kjkZhCLneyFJouX41-6Uvsj1sb8Q,776
46
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=9_Gz-6feYYXV5aMlV4WllTyjIJWXxWb7cVVchUauwgc,663
47
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=0q2vl4zFRiW3ElZiSzpEL2ZvHkzfKhZw-3zMTUHNDxk,752
48
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=6KPl7wLZ6d4aV-GmL6JXolwPtbs5IZ4NOyZ3fU54ahg,616
49
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=PlRf_AwQdFzA-PL5kvE3bXbLU3feSZLopOYVHHtUV6I,702
50
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=6rPeA9XgQByr6ECnlkNYpjYgQKA3BKTJFFvDBjjL6l8,665
51
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=zMb6GxI91ta9jQDg6zSww7I7bvO0oq9RutIKEwN2OVM,713
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=woljH8yr1pyLH4W4Azogyy7Nafn6y9DHBnDCIIVKwCw,4711
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=X564Q-YgZp3n9P2tFRlfgqmwgtc8RGsoeKCF_nr-ZOA,4046
131
- flwr/proto/driver_pb2.pyi,sha256=7puRl1C2bowtW0vAu0cWZGrmOA8cQLZ9l5HaH5_QIKs,6095
132
- flwr/proto/driver_pb2_grpc.py,sha256=lEaiX6MAHC-GzGSh0S6949jrYyBEB0ox6hWQgw1iOdQ,8887
133
- flwr/proto/driver_pb2_grpc.pyi,sha256=__NCO_mAPMZt3_X_6CUIwWzOm7TmRfghoSs6syEsyAo,2425
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=sASthuSb5R0v1NH2g6vRDC4BeJUFPAso8bjcihAflo0,4543
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=4eP1jkEVuckzSxo16yNaOBrHPzxHqQfj2MaNtPql4Wk,10655
149
- flwr/proto/fleet_pb2_grpc.pyi,sha256=0OFEMk6rCOrPLcYb74hB0c5fh2dcPzc2opm3NTLCbDE,2829
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=4mSz75pYB8hM9lvPnqJmM3XL9cY7FfzAJieu3akk4Lg,2055
163
- flwr/proto/run_pb2.pyi,sha256=sffgYQOJAmX7HclA8Qkr4mNiGC0a7h72sAFqaTQj9ww,2937
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=oqqn0ifYBKuO6qj-auPjdZJu6J7ChuYVmR0qHPvLHDY,5739
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=1BIUy1HAcvQ6-OhAj88jjRgwWdxnYVzQHkM3xrWZGCk,3434
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
@@ -270,8 +270,8 @@ flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1
270
270
  flwr/superexec/exec_servicer.py,sha256=fxQAKfgmQRSnYq5anjryfGeRbsZrNFEkuiNcTZhRwiE,2320
271
271
  flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
272
272
  flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
273
- flwr_nightly-1.11.0.dev20240804.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
274
- flwr_nightly-1.11.0.dev20240804.dist-info/METADATA,sha256=ejJw2n8jrtTurz10ZBPcJyH6YsdkuVrWJAgzzzzsmC4,15672
275
- flwr_nightly-1.11.0.dev20240804.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
276
- flwr_nightly-1.11.0.dev20240804.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
277
- flwr_nightly-1.11.0.dev20240804.dist-info/RECORD,,
273
+ flwr_nightly-1.11.0.dev20240806.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
274
+ flwr_nightly-1.11.0.dev20240806.dist-info/METADATA,sha256=qS7p71EK_N9Uvxpp5E3CQzsmSywUzXBjyCeaC-VKKpQ,15672
275
+ flwr_nightly-1.11.0.dev20240806.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
276
+ flwr_nightly-1.11.0.dev20240806.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
277
+ flwr_nightly-1.11.0.dev20240806.dist-info/RECORD,,