flwr-nightly 1.17.0.dev20250318__py3-none-any.whl → 1.17.0.dev20250320__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.
Files changed (61) hide show
  1. flwr/client/app.py +6 -4
  2. flwr/client/clientapp/app.py +2 -2
  3. flwr/client/grpc_client/connection.py +23 -20
  4. flwr/client/message_handler/message_handler.py +27 -27
  5. flwr/client/mod/centraldp_mods.py +7 -7
  6. flwr/client/mod/localdp_mod.py +4 -4
  7. flwr/client/mod/secure_aggregation/secaggplus_mod.py +5 -5
  8. flwr/client/run_info_store.py +2 -2
  9. flwr/common/__init__.py +2 -0
  10. flwr/common/constant.py +2 -0
  11. flwr/common/context.py +4 -4
  12. flwr/common/logger.py +2 -2
  13. flwr/common/message.py +269 -101
  14. flwr/common/record/__init__.py +2 -1
  15. flwr/common/record/configsrecord.py +2 -2
  16. flwr/common/record/metricsrecord.py +1 -1
  17. flwr/common/record/parametersrecord.py +1 -1
  18. flwr/common/record/{recordset.py → recorddict.py} +57 -17
  19. flwr/common/{recordset_compat.py → recorddict_compat.py} +105 -105
  20. flwr/common/serde.py +33 -37
  21. flwr/proto/exec_pb2.py +32 -32
  22. flwr/proto/exec_pb2.pyi +3 -3
  23. flwr/proto/message_pb2.py +12 -12
  24. flwr/proto/message_pb2.pyi +9 -9
  25. flwr/proto/recorddict_pb2.py +70 -0
  26. flwr/proto/{recordset_pb2.pyi → recorddict_pb2.pyi} +2 -2
  27. flwr/proto/run_pb2.py +32 -32
  28. flwr/proto/run_pb2.pyi +3 -3
  29. flwr/server/__init__.py +2 -0
  30. flwr/server/compat/__init__.py +2 -2
  31. flwr/server/compat/app.py +11 -11
  32. flwr/server/compat/app_utils.py +16 -16
  33. flwr/server/compat/grid_client_proxy.py +38 -38
  34. flwr/server/grid/__init__.py +7 -6
  35. flwr/server/grid/grid.py +46 -17
  36. flwr/server/grid/grpc_grid.py +26 -33
  37. flwr/server/grid/inmemory_grid.py +19 -25
  38. flwr/server/run_serverapp.py +4 -4
  39. flwr/server/server_app.py +37 -11
  40. flwr/server/serverapp/app.py +10 -10
  41. flwr/server/superlink/fleet/vce/vce_api.py +1 -3
  42. flwr/server/superlink/linkstate/in_memory_linkstate.py +29 -4
  43. flwr/server/superlink/linkstate/sqlite_linkstate.py +54 -20
  44. flwr/server/superlink/linkstate/utils.py +77 -17
  45. flwr/server/superlink/serverappio/serverappio_servicer.py +1 -1
  46. flwr/server/typing.py +3 -3
  47. flwr/server/utils/validator.py +4 -4
  48. flwr/server/workflow/default_workflows.py +24 -26
  49. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +23 -23
  50. flwr/simulation/ray_transport/ray_client_proxy.py +34 -32
  51. flwr/simulation/run_simulation.py +13 -13
  52. flwr/superexec/deployment.py +2 -2
  53. flwr/superexec/simulation.py +2 -2
  54. {flwr_nightly-1.17.0.dev20250318.dist-info → flwr_nightly-1.17.0.dev20250320.dist-info}/METADATA +1 -1
  55. {flwr_nightly-1.17.0.dev20250318.dist-info → flwr_nightly-1.17.0.dev20250320.dist-info}/RECORD +60 -60
  56. flwr/proto/recordset_pb2.py +0 -70
  57. /flwr/proto/{recordset_pb2_grpc.py → recorddict_pb2_grpc.py} +0 -0
  58. /flwr/proto/{recordset_pb2_grpc.pyi → recorddict_pb2_grpc.pyi} +0 -0
  59. {flwr_nightly-1.17.0.dev20250318.dist-info → flwr_nightly-1.17.0.dev20250320.dist-info}/LICENSE +0 -0
  60. {flwr_nightly-1.17.0.dev20250318.dist-info → flwr_nightly-1.17.0.dev20250320.dist-info}/WHEEL +0 -0
  61. {flwr_nightly-1.17.0.dev20250318.dist-info → flwr_nightly-1.17.0.dev20250320.dist-info}/entry_points.txt +0 -0
@@ -23,7 +23,7 @@ from flwr import common
23
23
  from flwr.client import ClientFnExt
24
24
  from flwr.client.client_app import ClientApp
25
25
  from flwr.client.run_info_store import DeprecatedRunInfoStore
26
- from flwr.common import DEFAULT_TTL, Message, Metadata, RecordSet
26
+ from flwr.common import DEFAULT_TTL, Message, Metadata, RecordDict, now
27
27
  from flwr.common.constant import (
28
28
  NUM_PARTITIONS_KEY,
29
29
  PARTITION_ID_KEY,
@@ -31,15 +31,16 @@ from flwr.common.constant import (
31
31
  MessageTypeLegacy,
32
32
  )
33
33
  from flwr.common.logger import log
34
- from flwr.common.recordset_compat import (
35
- evaluateins_to_recordset,
36
- fitins_to_recordset,
37
- getparametersins_to_recordset,
38
- getpropertiesins_to_recordset,
39
- recordset_to_evaluateres,
40
- recordset_to_fitres,
41
- recordset_to_getparametersres,
42
- recordset_to_getpropertiesres,
34
+ from flwr.common.message import make_message
35
+ from flwr.common.recorddict_compat import (
36
+ evaluateins_to_recorddict,
37
+ fitins_to_recorddict,
38
+ getparametersins_to_recorddict,
39
+ getpropertiesins_to_recorddict,
40
+ recorddict_to_evaluateres,
41
+ recorddict_to_fitres,
42
+ recorddict_to_getparametersres,
43
+ recorddict_to_getpropertiesres,
43
44
  )
44
45
  from flwr.server.client_proxy import ClientProxy
45
46
  from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool
@@ -109,23 +110,24 @@ class RayActorClientProxy(ClientProxy):
109
110
 
110
111
  return out_mssg
111
112
 
112
- def _wrap_recordset_in_message(
113
+ def _wrap_recorddict_in_message(
113
114
  self,
114
- recordset: RecordSet,
115
+ recorddict: RecordDict,
115
116
  message_type: str,
116
117
  timeout: Optional[float],
117
118
  group_id: Optional[int],
118
119
  ) -> Message:
119
- """Wrap a RecordSet inside a Message."""
120
- return Message(
121
- content=recordset,
120
+ """Wrap a RecordDict inside a Message."""
121
+ return make_message(
122
+ content=recorddict,
122
123
  metadata=Metadata(
123
124
  run_id=0,
124
125
  message_id="",
125
126
  group_id=str(group_id) if group_id is not None else "",
126
127
  src_node_id=0,
127
128
  dst_node_id=self.node_id,
128
- reply_to_message="",
129
+ reply_to_message_id="",
130
+ created_at=now().timestamp(),
129
131
  ttl=timeout if timeout else DEFAULT_TTL,
130
132
  message_type=message_type,
131
133
  ),
@@ -138,9 +140,9 @@ class RayActorClientProxy(ClientProxy):
138
140
  group_id: Optional[int],
139
141
  ) -> common.GetPropertiesRes:
140
142
  """Return client's properties."""
141
- recordset = getpropertiesins_to_recordset(ins)
142
- message = self._wrap_recordset_in_message(
143
- recordset,
143
+ recorddict = getpropertiesins_to_recorddict(ins)
144
+ message = self._wrap_recorddict_in_message(
145
+ recorddict,
144
146
  message_type=MessageTypeLegacy.GET_PROPERTIES,
145
147
  timeout=timeout,
146
148
  group_id=group_id,
@@ -148,7 +150,7 @@ class RayActorClientProxy(ClientProxy):
148
150
 
149
151
  message_out = self._submit_job(message, timeout)
150
152
 
151
- return recordset_to_getpropertiesres(message_out.content)
153
+ return recorddict_to_getpropertiesres(message_out.content)
152
154
 
153
155
  def get_parameters(
154
156
  self,
@@ -157,9 +159,9 @@ class RayActorClientProxy(ClientProxy):
157
159
  group_id: Optional[int],
158
160
  ) -> common.GetParametersRes:
159
161
  """Return the current local model parameters."""
160
- recordset = getparametersins_to_recordset(ins)
161
- message = self._wrap_recordset_in_message(
162
- recordset,
162
+ recorddict = getparametersins_to_recorddict(ins)
163
+ message = self._wrap_recorddict_in_message(
164
+ recorddict,
163
165
  message_type=MessageTypeLegacy.GET_PARAMETERS,
164
166
  timeout=timeout,
165
167
  group_id=group_id,
@@ -167,17 +169,17 @@ class RayActorClientProxy(ClientProxy):
167
169
 
168
170
  message_out = self._submit_job(message, timeout)
169
171
 
170
- return recordset_to_getparametersres(message_out.content, keep_input=False)
172
+ return recorddict_to_getparametersres(message_out.content, keep_input=False)
171
173
 
172
174
  def fit(
173
175
  self, ins: common.FitIns, timeout: Optional[float], group_id: Optional[int]
174
176
  ) -> common.FitRes:
175
177
  """Train model parameters on the locally held dataset."""
176
- recordset = fitins_to_recordset(
178
+ recorddict = fitins_to_recorddict(
177
179
  ins, keep_input=True
178
180
  ) # This must stay TRUE since ins are in-memory
179
- message = self._wrap_recordset_in_message(
180
- recordset,
181
+ message = self._wrap_recorddict_in_message(
182
+ recorddict,
181
183
  message_type=MessageType.TRAIN,
182
184
  timeout=timeout,
183
185
  group_id=group_id,
@@ -185,17 +187,17 @@ class RayActorClientProxy(ClientProxy):
185
187
 
186
188
  message_out = self._submit_job(message, timeout)
187
189
 
188
- return recordset_to_fitres(message_out.content, keep_input=False)
190
+ return recorddict_to_fitres(message_out.content, keep_input=False)
189
191
 
190
192
  def evaluate(
191
193
  self, ins: common.EvaluateIns, timeout: Optional[float], group_id: Optional[int]
192
194
  ) -> common.EvaluateRes:
193
195
  """Evaluate model parameters on the locally held dataset."""
194
- recordset = evaluateins_to_recordset(
196
+ recorddict = evaluateins_to_recorddict(
195
197
  ins, keep_input=True
196
198
  ) # This must stay TRUE since ins are in-memory
197
- message = self._wrap_recordset_in_message(
198
- recordset,
199
+ message = self._wrap_recorddict_in_message(
200
+ recorddict,
199
201
  message_type=MessageType.EVALUATE,
200
202
  timeout=timeout,
201
203
  group_id=group_id,
@@ -203,7 +205,7 @@ class RayActorClientProxy(ClientProxy):
203
205
 
204
206
  message_out = self._submit_job(message, timeout)
205
207
 
206
- return recordset_to_evaluateres(message_out.content)
208
+ return recorddict_to_evaluateres(message_out.content)
207
209
 
208
210
  def reconnect(
209
211
  self,
@@ -30,7 +30,7 @@ from typing import Any, Optional
30
30
  from flwr.cli.config_utils import load_and_validate
31
31
  from flwr.cli.utils import get_sha256_hash
32
32
  from flwr.client import ClientApp
33
- from flwr.common import Context, EventType, RecordSet, event, log, now
33
+ from flwr.common import Context, EventType, RecordDict, event, log, now
34
34
  from flwr.common.config import get_fused_config_from_dir, parse_config_args
35
35
  from flwr.common.constant import RUN_ID_NUM_BYTES, Status
36
36
  from flwr.common.logger import (
@@ -39,7 +39,7 @@ from flwr.common.logger import (
39
39
  warn_deprecated_feature_with_example,
40
40
  )
41
41
  from flwr.common.typing import Run, RunStatus, UserConfig
42
- from flwr.server.grid import Driver, InMemoryDriver
42
+ from flwr.server.grid import Grid, InMemoryGrid
43
43
  from flwr.server.run_serverapp import run as _run
44
44
  from flwr.server.server_app import ServerApp
45
45
  from flwr.server.superlink.fleet import vce
@@ -168,7 +168,7 @@ def run_simulation(
168
168
  messages sent by the `ServerApp`.
169
169
 
170
170
  num_supernodes : int
171
- Number of nodes that run a ClientApp. They can be sampled by a Driver in the
171
+ Number of nodes that run a ClientApp. They can be sampled by a Grid in the
172
172
  ServerApp and receive a Message describing what the ClientApp should perform.
173
173
 
174
174
  backend_name : str (default: ray)
@@ -225,7 +225,7 @@ def run_serverapp_th(
225
225
  server_app_attr: Optional[str],
226
226
  server_app: Optional[ServerApp],
227
227
  server_app_run_config: UserConfig,
228
- driver: Driver,
228
+ grid: Grid,
229
229
  app_dir: str,
230
230
  f_stop: threading.Event,
231
231
  has_exception: threading.Event,
@@ -239,7 +239,7 @@ def run_serverapp_th(
239
239
  tf_gpu_growth: bool,
240
240
  stop_event: threading.Event,
241
241
  exception_event: threading.Event,
242
- _driver: Driver,
242
+ _grid: Grid,
243
243
  _server_app_dir: str,
244
244
  _server_app_run_config: UserConfig,
245
245
  _server_app_attr: Optional[str],
@@ -260,13 +260,13 @@ def run_serverapp_th(
260
260
  run_id=run_id,
261
261
  node_id=0,
262
262
  node_config={},
263
- state=RecordSet(),
263
+ state=RecordDict(),
264
264
  run_config=_server_app_run_config,
265
265
  )
266
266
 
267
267
  # Run ServerApp
268
268
  updated_context = _run(
269
- driver=_driver,
269
+ grid=_grid,
270
270
  context=context,
271
271
  server_app_dir=_server_app_dir,
272
272
  server_app_attr=_server_app_attr,
@@ -291,7 +291,7 @@ def run_serverapp_th(
291
291
  enable_tf_gpu_growth,
292
292
  f_stop,
293
293
  has_exception,
294
- driver,
294
+ grid,
295
295
  app_dir,
296
296
  server_app_run_config,
297
297
  server_app_attr,
@@ -333,7 +333,7 @@ def _main_loop(
333
333
  run_id=run.run_id,
334
334
  node_id=0,
335
335
  node_config=UserConfig(),
336
- state=RecordSet(),
336
+ state=RecordDict(),
337
337
  run_config=UserConfig(),
338
338
  )
339
339
  try:
@@ -347,9 +347,9 @@ def _main_loop(
347
347
  if server_app_run_config is None:
348
348
  server_app_run_config = {}
349
349
 
350
- # Initialize Driver
351
- driver = InMemoryDriver(state_factory=state_factory)
352
- driver.set_run(run_id=run.run_id)
350
+ # Initialize Grid
351
+ grid = InMemoryGrid(state_factory=state_factory)
352
+ grid.set_run(run_id=run.run_id)
353
353
  output_context_queue: Queue[Context] = Queue()
354
354
 
355
355
  # Get and run ServerApp thread
@@ -357,7 +357,7 @@ def _main_loop(
357
357
  server_app_attr=server_app_attr,
358
358
  server_app=server_app,
359
359
  server_app_run_config=server_app_run_config,
360
- driver=driver,
360
+ grid=grid,
361
361
  app_dir=app_dir,
362
362
  f_stop=f_stop,
363
363
  has_exception=server_app_thread_has_exception,
@@ -23,7 +23,7 @@ from typing import Optional
23
23
  from typing_extensions import override
24
24
 
25
25
  from flwr.cli.config_utils import get_fab_metadata
26
- from flwr.common import ConfigsRecord, Context, RecordSet
26
+ from flwr.common import ConfigsRecord, Context, RecordDict
27
27
  from flwr.common.constant import (
28
28
  SERVERAPPIO_API_DEFAULT_CLIENT_ADDRESS,
29
29
  Status,
@@ -149,7 +149,7 @@ class DeploymentEngine(Executor):
149
149
  """Register a Context for a Run."""
150
150
  # Create an empty context for the Run
151
151
  context = Context(
152
- run_id=run_id, node_id=0, node_config={}, state=RecordSet(), run_config={}
152
+ run_id=run_id, node_id=0, node_config={}, state=RecordDict(), run_config={}
153
153
  )
154
154
 
155
155
  # Register the context at the LinkState
@@ -22,7 +22,7 @@ from typing import Optional
22
22
  from typing_extensions import override
23
23
 
24
24
  from flwr.cli.config_utils import get_fab_metadata
25
- from flwr.common import ConfigsRecord, Context, RecordSet
25
+ from flwr.common import ConfigsRecord, Context, RecordDict
26
26
  from flwr.common.logger import log
27
27
  from flwr.common.typing import Fab, UserConfig
28
28
  from flwr.server.superlink.ffs import Ffs
@@ -104,7 +104,7 @@ class SimulationEngine(Executor):
104
104
  run_id=run_id,
105
105
  node_id=0,
106
106
  node_config={},
107
- state=RecordSet(),
107
+ state=RecordDict(),
108
108
  run_config={},
109
109
  )
110
110
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.17.0.dev20250318
3
+ Version: 1.17.0.dev20250320
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -72,32 +72,32 @@ flwr/cli/run/run.py,sha256=kEOYKin9qPJy8SODxcAvIWk-OskKPsxvcbvhDhf2VD4,8299
72
72
  flwr/cli/stop.py,sha256=E4TGynmYQss5iWJ_fjSdYIW8nrNta2KOiK4sfvHKO_g,4976
73
73
  flwr/cli/utils.py,sha256=D9XcpxzwkGPNdwX16o0kI-sYnRDMlWYyKNIpz6npRhQ,11236
74
74
  flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
75
- flwr/client/app.py,sha256=tNnef5wGVfqMiiGiWzAuULyy1QpvCKukiRmNi_a2cQc,34261
75
+ flwr/client/app.py,sha256=rHL2-ki3XegWNO7RL36-mQmAfpW5cGwlsvNRN6-9W6Y,34301
76
76
  flwr/client/client.py,sha256=8o58nd9o6ZFcMIaVYPGcV4MSjBG4H0oFgWiv8ZEO3oA,7895
77
77
  flwr/client/client_app.py,sha256=iuQSO-iwRjWzpeWOjeYKmvfIpBxoGnIAU2TgsmqLpyo,17145
78
78
  flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
79
- flwr/client/clientapp/app.py,sha256=B3GrIMP8BMvltYf4n4xbtlRR1jEPT5-F93KnBCPuPJM,9069
79
+ flwr/client/clientapp/app.py,sha256=Eh54GXLfCysefGkVhTB2ublrqbaKtGpZ1jRhD389TYQ,9062
80
80
  flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
81
81
  flwr/client/clientapp/utils.py,sha256=qqTw9PKPCldGnnbAbMhtS-Qs_GcqADE1eOtVPXeKYAo,4344
82
82
  flwr/client/dpfedavg_numpy_client.py,sha256=4KsEvzavDKyVDU1V0kMqffTwu1lNdUCYQN-i0DTYVN8,7404
83
83
  flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
84
84
  flwr/client/grpc_adapter_client/connection.py,sha256=nV-hPd5q5Eblg6PgUrGGYj74mbE1a0qjfN8G3wzJVAc,4006
85
85
  flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
86
- flwr/client/grpc_client/connection.py,sha256=HK_y1xfoaypozo6UQJsYJ8mZWXkknf2qx7gjpzuxys8,9057
86
+ flwr/client/grpc_client/connection.py,sha256=qR_hoEwBX_jc7DFNFr_2irn74Q3TGVoniActzXAZtgY,9192
87
87
  flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
88
88
  flwr/client/grpc_rere_client/client_interceptor.py,sha256=8yX2jhwfX9r1PO76ZdME4tPefutnQqWPi7kELriBMUo,2451
89
89
  flwr/client/grpc_rere_client/connection.py,sha256=CHC5ssg7SMIN78JsWFKHg2P_fT2G_Ng3rtR869hLmoQ,11777
90
90
  flwr/client/grpc_rere_client/grpc_adapter.py,sha256=4EixBCeceM-nLu-eqB1jr0pXaGdkvoSbKmrY1ushQok,5601
91
91
  flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
92
92
  flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
93
- flwr/client/message_handler/message_handler.py,sha256=FspUe8JmH8pROpANZVjNtxHX-07yi9A6poLZ9Ro7WK4,6492
93
+ flwr/client/message_handler/message_handler.py,sha256=UPpIV2N4A_fCjADhd8AN0cB_WaXOHOt38laesxkYlLs,6536
94
94
  flwr/client/mod/__init__.py,sha256=37XeXZLFq_tzFVKVtC9JaigM2bSAU7BrGQvMPCE3Q28,1159
95
- flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
95
+ flwr/client/mod/centraldp_mods.py,sha256=IfbUCAMXc0qztC5_bJkoQCEMSCXGje3Z6hiIfhiVwbY,5422
96
96
  flwr/client/mod/comms_mods.py,sha256=s_H57ZXUPaWFifodCbRCOZW06IZRsilcOr9F-yWBtxg,2625
97
- flwr/client/mod/localdp_mod.py,sha256=Zhcu2M1QYCaS0dfmTjkhmFABIJcFXfT6zDgV0o9sn-4,5003
97
+ flwr/client/mod/localdp_mod.py,sha256=vPrPHMw30PoSDBZEZjtbEHKRF8atx3CxZRN1x_yDze4,5007
98
98
  flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4RtO_PsVA53yHc4oWco,849
99
99
  flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
100
- flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=7cNXsY07ZA0M5_9VSc52F8JUoAoGaraNDA2rgaLvvFo,19680
100
+ flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=iMVEG5TSHJMn_Ttd3_E_oOvs2rW7LW079AdvnAa0HM8,19689
101
101
  flwr/client/mod/utils.py,sha256=dFcTHOjUuuiw34fcQlvyzytYD0sCv1w9x8fQX1Yo8Oc,1201
102
102
  flwr/client/nodestate/__init__.py,sha256=6FTlzydo1j0n55Tb-Qo0XmuqTUyRxg3x7jHgo3gU1No,976
103
103
  flwr/client/nodestate/in_memory_nodestate.py,sha256=MKI3jVPARPWJmNGw61k1-9LIXROkTx2PrhWjDM8cpHk,1291
@@ -106,18 +106,18 @@ flwr/client/nodestate/nodestate_factory.py,sha256=apUbcJG0a_FUVsc0TkNN3q9yovc9u_
106
106
  flwr/client/numpy_client.py,sha256=chTkL9dOtK_wgUoYtzp5mfDOC1k8xPAd1qPIsB3hcjA,9581
107
107
  flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
108
108
  flwr/client/rest_client/connection.py,sha256=c0mHsNXHAsbX4zNelbGd2qrV3vj90FfNE6FsiD6JzuY,12904
109
- flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
109
+ flwr/client/run_info_store.py,sha256=CtOTf-m5WMpbHtNL97h6FzYCsRBk7yD4Pl7yNRY-lEo,4042
110
110
  flwr/client/supernode/__init__.py,sha256=D5swXxemuRbA2rB_T9B8LwJW-_PucXwmlFQQerwIUv0,793
111
111
  flwr/client/supernode/app.py,sha256=W1VAgvjdSgrKKgjyM04Hx5XIUGxK2Oouuh0LjavZB9E,8975
112
112
  flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
113
- flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
113
+ flwr/common/__init__.py,sha256=hx6PLFNNpHotn44-MeOmyGHSEnn8uWkpoZP-GYF2weM,3964
114
114
  flwr/common/address.py,sha256=rRaN1JpiCJnit7ImEqZVxURQ69dPihRoyyWn_3I2wh4,4119
115
115
  flwr/common/args.py,sha256=2gGT2a3SPJ0-LTNKnhBsZ-ESIoW9FGpw-9xkUSs8qwk,5417
116
116
  flwr/common/auth_plugin/__init__.py,sha256=1Y8Oj3iB49IHDu9tvDih1J74Ygu7k85V9s2A4WORPyA,887
117
117
  flwr/common/auth_plugin/auth_plugin.py,sha256=dQU5U4uJIA5XqgOJ3PankHWq-uXCaMvO74khaMPGdiU,3938
118
118
  flwr/common/config.py,sha256=SAkG3BztnA6iupXxF3GAIpGmWVVCH0ptyMpC9yjr_14,13965
119
- flwr/common/constant.py,sha256=PvW7StHhK4QuqyDlDpsvLbCxVGG2Dau6z6s1m8MGvfU,6946
120
- flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
119
+ flwr/common/constant.py,sha256=a1kNtPH5yS30YUWs7VgNu-O7i8_RAt5iL0AzG04QHVo,6989
120
+ flwr/common/context.py,sha256=XE3WlKPd4C_md6I8oWw8HM4grtOjMKz7YamhNWieF34,2407
121
121
  flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
122
122
  flwr/common/differential_privacy.py,sha256=YA01NqjddKNAEVmf7hXmOVxOjhekgzvJudk3mBGq-2k,6148
123
123
  flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
@@ -129,19 +129,19 @@ flwr/common/exit/exit.py,sha256=DmZFyksp-w1sFDQekq5Z-qfnr-ivCAv78aQkqj-TDps,3458
129
129
  flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E,3470
130
130
  flwr/common/exit_handlers.py,sha256=yclujry30954o0lI7vtknTajskPCvK8TXw2V3RdldXU,3174
131
131
  flwr/common/grpc.py,sha256=7sHNP34LcNZv7J1GewJxXh509XTEbYvoHvXL5tQ3tcw,9798
132
- flwr/common/logger.py,sha256=Hund1C6bEhMw3GemlzuFK22tXZ27YeHLrFB0b4LP5f8,13041
133
- flwr/common/message.py,sha256=dbaIKvw1hJZrLpipbdX6hUw1nhzrxDMXCS7EADQUwE8,16060
132
+ flwr/common/logger.py,sha256=Q5ZsQq1ouTvpP63I4V8e7gr0T_r7h0DJ122Nh3q0qzg,13049
133
+ flwr/common/message.py,sha256=u2M7mEnKMqrrOOwRj6pEeIiHB2ZjfNuf8s3Ctt9SESE,23060
134
134
  flwr/common/object_ref.py,sha256=DXL8NtbN17DSYaR-Zc8WYhaG8rv0_D_cclvP7Sa66So,9134
135
135
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
136
136
  flwr/common/pyproject.py,sha256=vEAxl800XiJ1JNJDui8vuVV-08msnB6hLt7o95viZl0,1386
137
- flwr/common/record/__init__.py,sha256=LUixpq0Z-lMJwCIu1-4u5HfvRPjRMRgoAc6YJQ6UEOs,1055
138
- flwr/common/record/configsrecord.py,sha256=i40jOzBx04ysZKECwaw4FdUXMdY9HgdY8GAqKdTO1Lw,6486
137
+ flwr/common/record/__init__.py,sha256=NiHmLzVIMPTzwmuQpFNUkdbjbGXRfCdvTD9f7OazCzQ,1086
138
+ flwr/common/record/configsrecord.py,sha256=C92Yk4KfznbgvHBMxrfwgUBnzyhZYn1eFjohyAVDhcc,6490
139
139
  flwr/common/record/conversion_utils.py,sha256=ZcsM-vTm_rVtLXLFD2RY3N47V_hUr3ywTdtnpVXnOGU,1202
140
- flwr/common/record/metricsrecord.py,sha256=UywkEPbifiu_IyPUFoDJCi8WEVLujlqZERUWAWpc3vs,5752
141
- flwr/common/record/parametersrecord.py,sha256=EGnpnfw68P22qqbUWuDFjURMqDOvSUkfZGq7lYQLbUI,21597
142
- flwr/common/record/recordset.py,sha256=ambtB74uF1pooQTfcBt1_xWsjvyDjGMc6awEt20ur2A,8547
140
+ flwr/common/record/metricsrecord.py,sha256=4ZnkDW0-27-3wPwib9GMj04wSATogx1sHlv_VsImhFY,5755
141
+ flwr/common/record/parametersrecord.py,sha256=ywMocK61f1miMC28nh5axQ1sDdR76RYsIwYPpMwy0b4,21598
142
+ flwr/common/record/recorddict.py,sha256=I9dZ9MU3asmKj3Saej2BXOSEdBAs9VgTz51T-SGXn1g,9718
143
143
  flwr/common/record/typeddict.py,sha256=q5hL2xkXymuiCprHWb69mUmLpWQk_XXQq0hGQ69YPaw,3599
144
- flwr/common/recordset_compat.py,sha256=ViSwA26h6Q55ZmV1LLjSJpcKiipV-p_JpCj4wxdE-Ow,14230
144
+ flwr/common/recorddict_compat.py,sha256=BxV198O3fiiUhxuKuM2bqBZIembFwOrdB2NRin6_BNg,14377
145
145
  flwr/common/retry_invoker.py,sha256=UIDKsn0AitS3fOr43WTqZAdD-TaHkBeTj1QxD7SGba0,14481
146
146
  flwr/common/secure_aggregation/__init__.py,sha256=erPnTWdOfMH0K0HQTmj5foDJ6t3iYcExy2aACy8iZNQ,731
147
147
  flwr/common/secure_aggregation/crypto/__init__.py,sha256=nlHesCWy8xxE5s6qHWnauCtyClcMQ2K0CEXAHakY5n0,738
@@ -151,7 +151,7 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8
151
151
  flwr/common/secure_aggregation/quantization.py,sha256=NE_ltC3Fx5Z3bMKqJHA95wQf2tkGQlN0VZf3d1w5ABA,2400
152
152
  flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
153
153
  flwr/common/secure_aggregation/secaggplus_utils.py,sha256=OgYd68YBRaHQYLc-YdExj9CSpwL58bVTaPrdHoAj2AE,3214
154
- flwr/common/serde.py,sha256=dgPUMPoKh8r09NERMgfnZKmEiGuKVBje7bSVFwJVZyk,27340
154
+ flwr/common/serde.py,sha256=2sMooHIcG3KNIuW-sL_EgT9_8_oBF7IPGJ0s08LmqeM,27220
155
155
  flwr/common/telemetry.py,sha256=k4JVXNEZSyYF2BuKk10iH70D8RYmQEtFlVr42Ve6lls,8770
156
156
  flwr/common/typing.py,sha256=Prl8_4tKnIl_Kh5UjJGbw1tnld543EkXrX0RWffJpiA,6900
157
157
  flwr/common/version.py,sha256=aNSxLL49RKeLz8sPcZrsTEWtrAeQ0uxu6tjmfba4O60,1325
@@ -164,8 +164,8 @@ flwr/proto/error_pb2.py,sha256=PQVWrfjVPo88ql_KgV9nCxyQNCcV9PVfmcw7sOzTMro,1084
164
164
  flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
165
165
  flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
166
166
  flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
167
- flwr/proto/exec_pb2.py,sha256=HYvEJ1LtRMpEtUFoo4cgl33QQ8fNisOOEZQlJbTrvTk,5664
168
- flwr/proto/exec_pb2.pyi,sha256=2vbzq2OOYM5GI-Tug4eVM5J6xvNvSFtR8m3MsP-i-Q4,9477
167
+ flwr/proto/exec_pb2.py,sha256=duaVCForuqLgqfz_KRMgbfAsEXehshLi2V5CRXDkPf0,5667
168
+ flwr/proto/exec_pb2.pyi,sha256=UM1LP-xLH1iQolHSjoE3NKiH6XmrHzipXo2XYfZ8BW4,9480
169
169
  flwr/proto/exec_pb2_grpc.py,sha256=-bdLqjsqQxK9R8LIiZaKlLKH2NmjR50EaGKTPPTwFhI,10445
170
170
  flwr/proto/exec_pb2_grpc.pyi,sha256=M5k-FzeLWxal7zt28LJfzMWWRxmNknTC2BzHRRMa1sQ,2914
171
171
  flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
@@ -184,20 +184,20 @@ flwr/proto/log_pb2.py,sha256=iKaS3MVn1BS4xHu8uGPFCOi1KWtvVx-H9V4jCUIJghs,1393
184
184
  flwr/proto/log_pb2.pyi,sha256=ipuhgo40sAHTcRzCsGI1HwIstr5q0THPNk_cf62YyME,1448
185
185
  flwr/proto/log_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
186
186
  flwr/proto/log_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
187
- flwr/proto/message_pb2.py,sha256=QpHsdMqMUTj30jdLARagAc90UvqpRI7xbtXVE_nw9RM,3189
188
- flwr/proto/message_pb2.pyi,sha256=kAFVgSi8j6ZYzkCQ9MkbrpUtVKgZsTYVIoQmcMB6BX0,5735
187
+ flwr/proto/message_pb2.py,sha256=ob77p0WOtDYAvKhVoGOSPriGtVuSSfMw9WR7G7FkAJk,3198
188
+ flwr/proto/message_pb2.pyi,sha256=DPUti2q_VJpRsy6Fzc5OPVm8j3Ko4OgN8IuEiFV4KOo,5759
189
189
  flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
190
190
  flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
191
191
  flwr/proto/node_pb2.py,sha256=BzZfAWIX7lV62bZr9f7x16lUZcpg-EImxnwxQXgCbYg,1045
192
192
  flwr/proto/node_pb2.pyi,sha256=CPMeIPzUeI5-Csw9sHktV9UBH4GbqiGuYzGQQKftm6Q,616
193
193
  flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
194
194
  flwr/proto/node_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
195
- flwr/proto/recordset_pb2.py,sha256=DndSkDNEYjdoOaHopgohRGP8lQtmal8yx_Re1wXfuOM,6367
196
- flwr/proto/recordset_pb2.pyi,sha256=ypFNvroU4aIlnN0D6W4XAsOfm0UzTfXhxxL1v7u__Ac,15370
197
- flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
198
- flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
199
- flwr/proto/run_pb2.py,sha256=_IvmIi3uttPIALjMYExAoUXw7P_rt3I-at_s0yNTIJY,5743
200
- flwr/proto/run_pb2.pyi,sha256=i6TEwphuFH94_kT2hZWb_RjndLuphkPrT3C2VP-NnVs,11739
195
+ flwr/proto/recorddict_pb2.py,sha256=WUse6WhFk_sHtOFsDyaEKlaGSkCDAz5O_pS5qKro9EY,6383
196
+ flwr/proto/recorddict_pb2.pyi,sha256=ySqVewxkw570NY6yRjuAw9FxlXNGVdtoUS-LEwXH0L8,15373
197
+ flwr/proto/recorddict_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
198
+ flwr/proto/recorddict_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
199
+ flwr/proto/run_pb2.py,sha256=NYo1Vf3vQqWhBOoCHYP3bNa_mlxLRjBCrRWDBWlOVHE,5746
200
+ flwr/proto/run_pb2.pyi,sha256=1FjFf7BGN8N89Hs1VkgJsCA1zsbhp9Du7eTdi94eJMk,11742
201
201
  flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
202
202
  flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
203
203
  flwr/proto/serverappio_pb2.py,sha256=WijK7rejbb7h6GVK0pTf81Ey5Ltf7A_S7aKlUJWlny4,4908
@@ -213,28 +213,28 @@ flwr/proto/transport_pb2.pyi,sha256=ipHQ03eFBqsxtAuAVefZ2lVr04BZ4YifJCS2eauNmy8,
213
213
  flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
214
214
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
215
215
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
- flwr/server/__init__.py,sha256=ISimHyzdi2Xnh-WObEdqOwRmhZ7xZzgqWddcq9ixZ3M,1526
216
+ flwr/server/__init__.py,sha256=X-qtJ1lsYJkTEYmLiYwhvnGI-tInj9P5geLtACJ-W9k,1569
217
217
  flwr/server/app.py,sha256=Hc5FIcGPoeKk7D2Mqp-qgDJUHh-I3uAWG7MDuqeasUo,33619
218
218
  flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
219
219
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
220
- flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
221
- flwr/server/compat/app.py,sha256=dBxWAkPy4Bc1ExDemdDaZt3xu5osVSOur0YvETgQT4w,3367
222
- flwr/server/compat/app_utils.py,sha256=fTuoCe-3IAgHRhbIy2JL0M2_v_jR6HwAAs6R2yZ7uPQ,3812
223
- flwr/server/compat/grid_client_proxy.py,sha256=fiibkMOk_gbX1SMm16H5DPwpjirD5uq423wMn56b_bQ,4960
220
+ flwr/server/compat/__init__.py,sha256=uEH_iym6jRdv-Z48CksoMsxvrxU26PIIj50Plf39jhs,886
221
+ flwr/server/compat/app.py,sha256=Q4XY4sQ5fRPvX86X1U2A2Ah1QbVTg26YsTJC8JgdruY,3323
222
+ flwr/server/compat/app_utils.py,sha256=X63iKjRsdsyVL0TTIlIXqysOxXh1lyymR8qEmJopx2c,3772
223
+ flwr/server/compat/grid_client_proxy.py,sha256=YrbYR1JkH53cvbom-wJYNUo5t9ASxyoU-APOkOcQgEo,4973
224
224
  flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
225
225
  flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
226
226
  flwr/server/fleet_event_log_interceptor.py,sha256=AkL7Y5d3xm2vRhL3ahmEVVoOvAP7PA7dRgB-je4v-Ys,3774
227
- flwr/server/grid/__init__.py,sha256=AiZbyU5kWlpjmI-eDWqztz6EBKoTm0kvRphydiibi08,880
228
- flwr/server/grid/grid.py,sha256=fnHtnReACB7aUxcWmbGfI2elHsk5HOp7q8BpbwWMfvc,5705
229
- flwr/server/grid/grpc_grid.py,sha256=OR9AxXn1YI5SilROntnpduoOoZzE3eDjM-JCqetHfHM,11190
230
- flwr/server/grid/inmemory_grid.py,sha256=ClnJwdFTnTyAKN7M2jsd2ZKArgslySkcwFab2kXAND0,6091
227
+ flwr/server/grid/__init__.py,sha256=aWZHezoR2UGMJISB_gPMCm2N_2GSbm97A3lAp7ruhRQ,888
228
+ flwr/server/grid/grid.py,sha256=5r5wdqs3NJ5EJ7HyhMahMauAnPyLZEsgpNOfdKudt_s,6614
229
+ flwr/server/grid/grpc_grid.py,sha256=1aTWEgTA3Z0gnWJy5ywe3H7YmaoPTmrXBlu1fD3CFPI,10973
230
+ flwr/server/grid/inmemory_grid.py,sha256=WypQlPP6ArTOipS0i9xJCZmonu6LoKCAra2s7g_vPsE,5959
231
231
  flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
232
- flwr/server/run_serverapp.py,sha256=LxHIeMLKXbzt2V5vK2x8wJLZt1dQ_0YiMD1lP0PZ27I,2075
232
+ flwr/server/run_serverapp.py,sha256=EEDgJH0iwKCsxguGrdjQ6Eh7BL6VaM23DWjec6AlVdE,2063
233
233
  flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
234
- flwr/server/server_app.py,sha256=WOCUOB_Onf_p5qp_QBaRu-LmsMpFIn-Hd4HcWIxN1YE,8856
234
+ flwr/server/server_app.py,sha256=mQqv3eWNxLKELe_zEIkfLrNdTvB2ljC7jON5bxeExGE,9788
235
235
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
236
236
  flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
237
- flwr/server/serverapp/app.py,sha256=NoBpAokHP5-Gw8-wrm0H1Pqf_VXZLs9yp7RM13f4I9Y,8647
237
+ flwr/server/serverapp/app.py,sha256=ONhyP0mxu2WR7x8MvGvJy5bd2V6LruwjlKcNLZiGzw8,8623
238
238
  flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
239
239
  flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
240
240
  flwr/server/strategy/aggregate.py,sha256=PDvekufza13s9AsVmz9WASunaBs3yCtl8JVliFx9j6Q,13978
@@ -284,50 +284,50 @@ flwr/server/superlink/fleet/vce/__init__.py,sha256=TZJsKTpYO_djv2EXx9Ji62I8TA0Ji
284
284
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=cGgal5qpd0_MwEdIqjJbHHSIgGa6GSPoI5_byUwtG_k,1437
285
285
  flwr/server/superlink/fleet/vce/backend/backend.py,sha256=lr_uBMaoCp7qs59ZRpCI07wp-EsClNB-7QWFfF0r95c,2195
286
286
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=jsUkFEVQTnrucK1jNQ_cUM8YwL7W4MQNA1GAf8ibRdg,7156
287
- flwr/server/superlink/fleet/vce/vce_api.py,sha256=xQbWzfIsXYwcEHoYxrgDcx3yGJKUoBdkc8zkJ8onzBs,12802
287
+ flwr/server/superlink/fleet/vce/vce_api.py,sha256=GlT2wMpAFSk_jTXyp4kWdlsyt9DQ189zpHRzhf1I0Xg,12765
288
288
  flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
289
- flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=Ss64nq7MgbHwx4LOER-YV7vynkzC1K4XVNk542oPg7s,21305
289
+ flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=RQcdLeSN0MoIrKtY-lDEy3VZSADTnm10-NxU-7zwJNM,22295
290
290
  flwr/server/superlink/linkstate/linkstate.py,sha256=YB3SryGNvt-bE-unYjoloJt9d3xAUPBNLK4mor8gk3M,11851
291
291
  flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
292
- flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=Wsx5gD6WRIMLlKarvVV1_dlS7jmfno-yTVW1-rgcIto,38276
293
- flwr/server/superlink/linkstate/utils.py,sha256=b26MJdMQyt83EDnhB7FAiq8BFttV_qNHF_E_3d3oBlA,12739
292
+ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=ksMR8FHj36dzJb4I0-gxyu3Z20x5qPTYfoQIZ6OG_qw,39634
293
+ flwr/server/superlink/linkstate/utils.py,sha256=srQtrrFuj8JVMqPOj3GWjHdgbolw39nG02gnf8AO9aU,15374
294
294
  flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
295
295
  flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=opJ6SYwIAbu4NWEo3K-VxFO-tMSFmE4H3i2HwHIVRzw,2173
296
- flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=71s1SijefpTpJC2mZD3Y0CZBK9PtK0Yxc4aXawdvEDQ,13121
296
+ flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=DwBT7cn0UUc16l9HvyrWtQPAZsdDySTEZfuUV1-k-qA,13124
297
297
  flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
298
298
  flwr/server/superlink/simulation/simulationio_grpc.py,sha256=8aUrZZLdvprKUfLLqFID4aItus9beU6m1qLQYIPB7k0,2224
299
299
  flwr/server/superlink/simulation/simulationio_servicer.py,sha256=J_TmdqM-Bxgp-iPEI3tvCuBpykw1UX0FouMQalEYAF4,6907
300
300
  flwr/server/superlink/utils.py,sha256=KVb3K_g2vYfu9TnftcN0ewmev133WZcjuEePMm8d7GE,2137
301
- flwr/server/typing.py,sha256=Xhcda1Bg2w8C2nZAdoMWsZqQibzJrnLBP60yzyRa7QE,1017
301
+ flwr/server/typing.py,sha256=3pdDgzX-rwW56egOINr1R_Qnbhm20ieYNuVaI_P7-as,1011
302
302
  flwr/server/utils/__init__.py,sha256=vnS9EAyVUsBOmWeYZXMoBcjeEFhqN4_KQQVk5EBiWG0,884
303
303
  flwr/server/utils/tensorboard.py,sha256=gEBD8w_5uaIfp5aw5RYH66lYZpd_SfkObHQ7eDd9MUk,5466
304
- flwr/server/utils/validator.py,sha256=11olMv1UyeaxLa1ci5gsJ0WALk7VwWGCQYCvLsZ56LY,3604
304
+ flwr/server/utils/validator.py,sha256=ka2zJkCNnfs6GdPJYWh_ojq8D5egOICmXBZmJWzecdQ,3616
305
305
  flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
306
306
  flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
307
- flwr/server/workflow/default_workflows.py,sha256=2c_T5NxjIn--zBWAcVWLKHJ9001qV92nCGNvbok_ooo,14150
307
+ flwr/server/workflow/default_workflows.py,sha256=gEZcUR_FB0xnzuI5xESzJ1y5n1e9w_YswBJ_0enJHS4,14109
308
308
  flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
309
309
  flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
310
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=SmZnmmQv4D85NwqFhXfycrgSxZ3sGLJCdbI4bUKhM3E,29621
310
+ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=s4ueiT0okWZWcJQFkaPDn8BsHOJ8TWj8S_2OKTW-f7s,29589
311
311
  flwr/simulation/__init__.py,sha256=5UcDVJNjFoSwWqHbGM1hKfTTUUNdwAtuoNvNrfvdkUY,1556
312
312
  flwr/simulation/app.py,sha256=xRVSJBnTXQUqWIYOzENfTnJlZ24CSNhWkhVEFxIu4I0,9758
313
313
  flwr/simulation/legacy_app.py,sha256=qpZI4Vvzr5TyWSLTRrMP-jN4rH2C25JI9nVSSjhFwSQ,15861
314
314
  flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
315
315
  flwr/simulation/ray_transport/ray_actor.py,sha256=k11yoAPQzFGQU-KnCCP0ZrfPPdUPXXrBe-1DKM5VdW4,18997
316
- flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
316
+ flwr/simulation/ray_transport/ray_client_proxy.py,sha256=4JZRkic8ZYuf-pBaTqSA_yu_1ryms8Ql2FmuCFYrg1k,7506
317
317
  flwr/simulation/ray_transport/utils.py,sha256=wtbQhKQ4jGoiQDLJNQP17m1DSfL22ERhDBGuoeUFaAQ,2393
318
- flwr/simulation/run_simulation.py,sha256=SmhU83eQKwGcf4qZy4drXptGRhGQHNd38LpK0qrOvUU,20334
318
+ flwr/simulation/run_simulation.py,sha256=FGiv4HG89RZ5X5-zR8tLAREeeE9cgEOI3aqkKzIYgBw,20305
319
319
  flwr/simulation/simulationio_connection.py,sha256=lcbEmdjb9RVEF2W5vSbf_J1zlTuv_ZAT_HLox1mqcfY,3494
320
320
  flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
321
321
  flwr/superexec/app.py,sha256=C0T2LMjuyF__I5V1FKfjtWtbsQPxK_EgL4vuhWIwG8s,1465
322
- flwr/superexec/deployment.py,sha256=wZ9G42gGS91knfplswh95MnQ83Fzu-rs6wcuNgDmmvY,6735
322
+ flwr/superexec/deployment.py,sha256=838JZys7mXLSu9EVQheICpYo-jAZ2pyab293CyEH_-c,6737
323
323
  flwr/superexec/exec_event_log_interceptor.py,sha256=IlQ_w-GpGNMJ4g1gTI3H4LHfWli1-8O7a2-pCqB3yeA,5753
324
324
  flwr/superexec/exec_grpc.py,sha256=9-WF6qPuhiYohMe3SIZ5Sapp_dLjICvm5QfdTNizsJg,3252
325
325
  flwr/superexec/exec_servicer.py,sha256=4UpzJqPUHkBG2PZNe2lrX7XFVDOL6yw_HcoBHxuXE9A,8349
326
326
  flwr/superexec/exec_user_auth_interceptor.py,sha256=2kXjjJcrZyff893QTFLQD6zxC4pdVwtN4Rc66jHptfE,4440
327
327
  flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
328
- flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
329
- flwr_nightly-1.17.0.dev20250318.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
330
- flwr_nightly-1.17.0.dev20250318.dist-info/METADATA,sha256=b0bYyeMvfyIYiTRIxjtTqkYBBt2zsXMF_J8XhVGEuAc,15878
331
- flwr_nightly-1.17.0.dev20250318.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
332
- flwr_nightly-1.17.0.dev20250318.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
333
- flwr_nightly-1.17.0.dev20250318.dist-info/RECORD,,
328
+ flwr/superexec/simulation.py,sha256=avPJhubZDN9GZK9kS9ALyI1hJIaCZyy5fJ_ZfJcxjYM,4090
329
+ flwr_nightly-1.17.0.dev20250320.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
330
+ flwr_nightly-1.17.0.dev20250320.dist-info/METADATA,sha256=Y_39geFEo4Y2MNgaJqpTkB5TPYe7d_6ZOpWLewWb6WM,15878
331
+ flwr_nightly-1.17.0.dev20250320.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
332
+ flwr_nightly-1.17.0.dev20250320.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
333
+ flwr_nightly-1.17.0.dev20250320.dist-info/RECORD,,
@@ -1,70 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: flwr/proto/recordset.proto
4
- # Protobuf Python Version: 4.25.1
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\x1a\x66lwr/proto/recordset.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x18\n\x08SintList\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08UintList\x12\x0c\n\x04vals\x18\x01 \x03(\x04\"\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\"B\n\x05\x41rray\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05stype\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xd8\x01\n\x12MetricsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x42\x07\n\x05value\"\x92\x03\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12\x0e\n\x04\x62ool\x18\x04 \x01(\x08H\x00\x12\x10\n\x06string\x18\x05 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x06 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x12)\n\tbool_list\x18\x18 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x19 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x1a \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"M\n\x10ParametersRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8f\x01\n\rMetricsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.MetricsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.MetricsRecordValue:\x02\x38\x01\"\x8f\x01\n\rConfigsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.ConfigsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.ConfigsRecordValue:\x02\x38\x01\"\x97\x03\n\tRecordSet\x12\x39\n\nparameters\x18\x01 \x03(\x0b\x32%.flwr.proto.RecordSet.ParametersEntry\x12\x33\n\x07metrics\x18\x02 \x03(\x0b\x32\".flwr.proto.RecordSet.MetricsEntry\x12\x33\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32\".flwr.proto.RecordSet.ConfigsEntry\x1aO\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.flwr.proto.ParametersRecord:\x02\x38\x01\x1aI\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.MetricsRecord:\x02\x38\x01\x1aI\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord:\x02\x38\x01\x62\x06proto3')
18
-
19
- _globals = globals()
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.recordset_pb2', _globals)
22
- if _descriptor._USE_C_DESCRIPTORS == False:
23
- DESCRIPTOR._options = None
24
- _globals['_METRICSRECORD_DATAENTRY']._options = None
25
- _globals['_METRICSRECORD_DATAENTRY']._serialized_options = b'8\001'
26
- _globals['_CONFIGSRECORD_DATAENTRY']._options = None
27
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_options = b'8\001'
28
- _globals['_RECORDSET_PARAMETERSENTRY']._options = None
29
- _globals['_RECORDSET_PARAMETERSENTRY']._serialized_options = b'8\001'
30
- _globals['_RECORDSET_METRICSENTRY']._options = None
31
- _globals['_RECORDSET_METRICSENTRY']._serialized_options = b'8\001'
32
- _globals['_RECORDSET_CONFIGSENTRY']._options = None
33
- _globals['_RECORDSET_CONFIGSENTRY']._serialized_options = b'8\001'
34
- _globals['_DOUBLELIST']._serialized_start=42
35
- _globals['_DOUBLELIST']._serialized_end=68
36
- _globals['_SINTLIST']._serialized_start=70
37
- _globals['_SINTLIST']._serialized_end=94
38
- _globals['_UINTLIST']._serialized_start=96
39
- _globals['_UINTLIST']._serialized_end=120
40
- _globals['_BOOLLIST']._serialized_start=122
41
- _globals['_BOOLLIST']._serialized_end=146
42
- _globals['_STRINGLIST']._serialized_start=148
43
- _globals['_STRINGLIST']._serialized_end=174
44
- _globals['_BYTESLIST']._serialized_start=176
45
- _globals['_BYTESLIST']._serialized_end=201
46
- _globals['_ARRAY']._serialized_start=203
47
- _globals['_ARRAY']._serialized_end=269
48
- _globals['_METRICSRECORDVALUE']._serialized_start=272
49
- _globals['_METRICSRECORDVALUE']._serialized_end=488
50
- _globals['_CONFIGSRECORDVALUE']._serialized_start=491
51
- _globals['_CONFIGSRECORDVALUE']._serialized_end=893
52
- _globals['_PARAMETERSRECORD']._serialized_start=895
53
- _globals['_PARAMETERSRECORD']._serialized_end=972
54
- _globals['_METRICSRECORD']._serialized_start=975
55
- _globals['_METRICSRECORD']._serialized_end=1118
56
- _globals['_METRICSRECORD_DATAENTRY']._serialized_start=1043
57
- _globals['_METRICSRECORD_DATAENTRY']._serialized_end=1118
58
- _globals['_CONFIGSRECORD']._serialized_start=1121
59
- _globals['_CONFIGSRECORD']._serialized_end=1264
60
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=1189
61
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=1264
62
- _globals['_RECORDSET']._serialized_start=1267
63
- _globals['_RECORDSET']._serialized_end=1674
64
- _globals['_RECORDSET_PARAMETERSENTRY']._serialized_start=1445
65
- _globals['_RECORDSET_PARAMETERSENTRY']._serialized_end=1524
66
- _globals['_RECORDSET_METRICSENTRY']._serialized_start=1526
67
- _globals['_RECORDSET_METRICSENTRY']._serialized_end=1599
68
- _globals['_RECORDSET_CONFIGSENTRY']._serialized_start=1601
69
- _globals['_RECORDSET_CONFIGSENTRY']._serialized_end=1674
70
- # @@protoc_insertion_point(module_scope)