flwr-nightly 1.17.0.dev20250317__py3-none-any.whl → 1.17.0.dev20250319__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 (31) hide show
  1. flwr/common/constant.py +5 -0
  2. flwr/common/logger.py +2 -2
  3. flwr/common/record/parametersrecord.py +336 -92
  4. flwr/server/__init__.py +3 -1
  5. flwr/server/app.py +1 -1
  6. flwr/server/compat/__init__.py +2 -2
  7. flwr/server/compat/app.py +11 -11
  8. flwr/server/compat/app_utils.py +16 -16
  9. flwr/server/compat/{driver_client_proxy.py → grid_client_proxy.py} +9 -9
  10. flwr/server/{driver → grid}/__init__.py +8 -7
  11. flwr/server/{driver/driver.py → grid/grid.py} +44 -15
  12. flwr/server/{driver/grpc_driver.py → grid/grpc_grid.py} +12 -20
  13. flwr/server/{driver/inmemory_driver.py → grid/inmemory_grid.py} +6 -14
  14. flwr/server/run_serverapp.py +4 -4
  15. flwr/server/server_app.py +38 -12
  16. flwr/server/serverapp/app.py +10 -10
  17. flwr/server/superlink/linkstate/in_memory_linkstate.py +28 -3
  18. flwr/server/superlink/linkstate/sqlite_linkstate.py +40 -2
  19. flwr/server/superlink/linkstate/utils.py +67 -10
  20. flwr/server/superlink/{driver → serverappio}/__init__.py +1 -1
  21. flwr/server/superlink/{driver → serverappio}/serverappio_grpc.py +1 -1
  22. flwr/server/superlink/{driver → serverappio}/serverappio_servicer.py +1 -1
  23. flwr/server/typing.py +3 -3
  24. flwr/server/workflow/default_workflows.py +17 -19
  25. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +15 -15
  26. flwr/simulation/run_simulation.py +10 -10
  27. {flwr_nightly-1.17.0.dev20250317.dist-info → flwr_nightly-1.17.0.dev20250319.dist-info}/METADATA +1 -1
  28. {flwr_nightly-1.17.0.dev20250317.dist-info → flwr_nightly-1.17.0.dev20250319.dist-info}/RECORD +31 -31
  29. {flwr_nightly-1.17.0.dev20250317.dist-info → flwr_nightly-1.17.0.dev20250319.dist-info}/LICENSE +0 -0
  30. {flwr_nightly-1.17.0.dev20250317.dist-info → flwr_nightly-1.17.0.dev20250319.dist-info}/WHEEL +0 -0
  31. {flwr_nightly-1.17.0.dev20250317.dist-info → flwr_nightly-1.17.0.dev20250319.dist-info}/entry_points.txt +0 -0
@@ -55,7 +55,7 @@ from flwr.common.secure_aggregation.secaggplus_constants import (
55
55
  from flwr.common.secure_aggregation.secaggplus_utils import pseudo_rand_gen
56
56
  from flwr.server.client_proxy import ClientProxy
57
57
  from flwr.server.compat.legacy_context import LegacyContext
58
- from flwr.server.driver import Driver
58
+ from flwr.server.grid import Grid
59
59
 
60
60
  from ..constant import MAIN_CONFIGS_RECORD, MAIN_PARAMS_RECORD
61
61
  from ..constant import Key as WorkflowKey
@@ -186,7 +186,7 @@ class SecAggPlusWorkflow:
186
186
 
187
187
  self._check_init_params()
188
188
 
189
- def __call__(self, driver: Driver, context: Context) -> None:
189
+ def __call__(self, grid: Grid, context: Context) -> None:
190
190
  """Run the SecAgg+ protocol."""
191
191
  if not isinstance(context, LegacyContext):
192
192
  raise TypeError(
@@ -202,7 +202,7 @@ class SecAggPlusWorkflow:
202
202
  )
203
203
  log(INFO, "Secure aggregation commencing.")
204
204
  for step in steps:
205
- if not step(driver, context, state):
205
+ if not step(grid, context, state):
206
206
  log(INFO, "Secure aggregation halted.")
207
207
  return
208
208
  log(INFO, "Secure aggregation completed.")
@@ -279,7 +279,7 @@ class SecAggPlusWorkflow:
279
279
  return True
280
280
 
281
281
  def setup_stage( # pylint: disable=R0912, R0914, R0915
282
- self, driver: Driver, context: LegacyContext, state: WorkflowState
282
+ self, grid: Grid, context: LegacyContext, state: WorkflowState
283
283
  ) -> bool:
284
284
  """Execute the 'setup' stage."""
285
285
  # Obtain fit instructions
@@ -370,7 +370,7 @@ class SecAggPlusWorkflow:
370
370
  content = RecordSet({RECORD_KEY_CONFIGS: cfgs_record})
371
371
 
372
372
  def make(nid: int) -> Message:
373
- return driver.create_message(
373
+ return grid.create_message(
374
374
  content=content,
375
375
  message_type=MessageType.TRAIN,
376
376
  dst_node_id=nid,
@@ -382,7 +382,7 @@ class SecAggPlusWorkflow:
382
382
  "[Stage 0] Sending configurations to %s clients.",
383
383
  len(state.active_node_ids),
384
384
  )
385
- msgs = driver.send_and_receive(
385
+ msgs = grid.send_and_receive(
386
386
  [make(node_id) for node_id in state.active_node_ids], timeout=self.timeout
387
387
  )
388
388
  state.active_node_ids = {
@@ -406,7 +406,7 @@ class SecAggPlusWorkflow:
406
406
  return self._check_threshold(state)
407
407
 
408
408
  def share_keys_stage( # pylint: disable=R0914
409
- self, driver: Driver, context: LegacyContext, state: WorkflowState
409
+ self, grid: Grid, context: LegacyContext, state: WorkflowState
410
410
  ) -> bool:
411
411
  """Execute the 'share keys' stage."""
412
412
  cfg = context.state.configs_records[MAIN_CONFIGS_RECORD]
@@ -418,7 +418,7 @@ class SecAggPlusWorkflow:
418
418
  )
419
419
  cfgs_record[Key.STAGE] = Stage.SHARE_KEYS
420
420
  content = RecordSet({RECORD_KEY_CONFIGS: cfgs_record})
421
- return driver.create_message(
421
+ return grid.create_message(
422
422
  content=content,
423
423
  message_type=MessageType.TRAIN,
424
424
  dst_node_id=nid,
@@ -431,7 +431,7 @@ class SecAggPlusWorkflow:
431
431
  "[Stage 1] Forwarding public keys to %s clients.",
432
432
  len(state.active_node_ids),
433
433
  )
434
- msgs = driver.send_and_receive(
434
+ msgs = grid.send_and_receive(
435
435
  [make(node_id) for node_id in state.active_node_ids], timeout=self.timeout
436
436
  )
437
437
  state.active_node_ids = {
@@ -476,7 +476,7 @@ class SecAggPlusWorkflow:
476
476
  return self._check_threshold(state)
477
477
 
478
478
  def collect_masked_vectors_stage(
479
- self, driver: Driver, context: LegacyContext, state: WorkflowState
479
+ self, grid: Grid, context: LegacyContext, state: WorkflowState
480
480
  ) -> bool:
481
481
  """Execute the 'collect masked vectors' stage."""
482
482
  cfg = context.state.configs_records[MAIN_CONFIGS_RECORD]
@@ -491,7 +491,7 @@ class SecAggPlusWorkflow:
491
491
  cfgs_record = ConfigsRecord(cfgs_dict) # type: ignore
492
492
  content = state.nid_to_fitins[nid]
493
493
  content.configs_records[RECORD_KEY_CONFIGS] = cfgs_record
494
- return driver.create_message(
494
+ return grid.create_message(
495
495
  content=content,
496
496
  message_type=MessageType.TRAIN,
497
497
  dst_node_id=nid,
@@ -503,7 +503,7 @@ class SecAggPlusWorkflow:
503
503
  "[Stage 2] Forwarding encrypted key shares to %s clients.",
504
504
  len(state.active_node_ids),
505
505
  )
506
- msgs = driver.send_and_receive(
506
+ msgs = grid.send_and_receive(
507
507
  [make(node_id) for node_id in state.active_node_ids], timeout=self.timeout
508
508
  )
509
509
  state.active_node_ids = {
@@ -547,7 +547,7 @@ class SecAggPlusWorkflow:
547
547
  return self._check_threshold(state)
548
548
 
549
549
  def unmask_stage( # pylint: disable=R0912, R0914, R0915
550
- self, driver: Driver, context: LegacyContext, state: WorkflowState
550
+ self, grid: Grid, context: LegacyContext, state: WorkflowState
551
551
  ) -> bool:
552
552
  """Execute the 'unmask' stage."""
553
553
  cfg = context.state.configs_records[MAIN_CONFIGS_RECORD]
@@ -567,7 +567,7 @@ class SecAggPlusWorkflow:
567
567
  }
568
568
  cfgs_record = ConfigsRecord(cfgs_dict) # type: ignore
569
569
  content = RecordSet({RECORD_KEY_CONFIGS: cfgs_record})
570
- return driver.create_message(
570
+ return grid.create_message(
571
571
  content=content,
572
572
  message_type=MessageType.TRAIN,
573
573
  dst_node_id=nid,
@@ -579,7 +579,7 @@ class SecAggPlusWorkflow:
579
579
  "[Stage 3] Requesting key shares from %s clients to remove masks.",
580
580
  len(state.active_node_ids),
581
581
  )
582
- msgs = driver.send_and_receive(
582
+ msgs = grid.send_and_receive(
583
583
  [make(node_id) for node_id in state.active_node_ids], timeout=self.timeout
584
584
  )
585
585
  state.active_node_ids = {
@@ -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.driver 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],
@@ -266,7 +266,7 @@ def run_serverapp_th(
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,
@@ -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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.17.0.dev20250317
3
+ Version: 1.17.0.dev20250319
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -116,7 +116,7 @@ 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=2AHf9ujmfkf9YerhtqBe8hAW6iMDJTmnKnyYdlEXEM0,6875
119
+ flwr/common/constant.py,sha256=a1kNtPH5yS30YUWs7VgNu-O7i8_RAt5iL0AzG04QHVo,6989
120
120
  flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
121
121
  flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
122
122
  flwr/common/differential_privacy.py,sha256=YA01NqjddKNAEVmf7hXmOVxOjhekgzvJudk3mBGq-2k,6148
@@ -129,7 +129,7 @@ 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
132
+ flwr/common/logger.py,sha256=Q5ZsQq1ouTvpP63I4V8e7gr0T_r7h0DJ122Nh3q0qzg,13049
133
133
  flwr/common/message.py,sha256=dbaIKvw1hJZrLpipbdX6hUw1nhzrxDMXCS7EADQUwE8,16060
134
134
  flwr/common/object_ref.py,sha256=DXL8NtbN17DSYaR-Zc8WYhaG8rv0_D_cclvP7Sa66So,9134
135
135
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
@@ -138,7 +138,7 @@ flwr/common/record/__init__.py,sha256=LUixpq0Z-lMJwCIu1-4u5HfvRPjRMRgoAc6YJQ6UEO
138
138
  flwr/common/record/configsrecord.py,sha256=i40jOzBx04ysZKECwaw4FdUXMdY9HgdY8GAqKdTO1Lw,6486
139
139
  flwr/common/record/conversion_utils.py,sha256=ZcsM-vTm_rVtLXLFD2RY3N47V_hUr3ywTdtnpVXnOGU,1202
140
140
  flwr/common/record/metricsrecord.py,sha256=UywkEPbifiu_IyPUFoDJCi8WEVLujlqZERUWAWpc3vs,5752
141
- flwr/common/record/parametersrecord.py,sha256=rR0LbeNrKrdK37CiAA56Z5WBq-ZzZ2YNSUkcmr5i2lI,12950
141
+ flwr/common/record/parametersrecord.py,sha256=EGnpnfw68P22qqbUWuDFjURMqDOvSUkfZGq7lYQLbUI,21597
142
142
  flwr/common/record/recordset.py,sha256=ambtB74uF1pooQTfcBt1_xWsjvyDjGMc6awEt20ur2A,8547
143
143
  flwr/common/record/typeddict.py,sha256=q5hL2xkXymuiCprHWb69mUmLpWQk_XXQq0hGQ69YPaw,3599
144
144
  flwr/common/recordset_compat.py,sha256=ViSwA26h6Q55ZmV1LLjSJpcKiipV-p_JpCj4wxdE-Ow,14230
@@ -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=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
217
- flwr/server/app.py,sha256=yCfZSKCSu2w7jJYIj-dpF0inyPpsY-KkjgVcmMVcZiY,33614
216
+ flwr/server/__init__.py,sha256=X-qtJ1lsYJkTEYmLiYwhvnGI-tInj9P5geLtACJ-W9k,1569
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=Y0xAqXLn20e6XKGb2nHdeUYdCj_Dux-SyFCc-5ivhqk,3369
222
- flwr/server/compat/app_utils.py,sha256=568PfvPME8KHjX-L5GB2rYQa_Wy8iUBGs22KJqn8Xk0,3824
223
- flwr/server/compat/driver_client_proxy.py,sha256=1ElUYvn85iMbxfyjbPiGGlmdWzNqKIIgrGJgZ18uS4E,4964
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=hUSZdzXCDlfsuuVBzjTzE_n-Wp7UJMrvhnhaxbwYyiI,4930
224
224
  flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
225
225
  flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
226
- flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
227
- flwr/server/driver/driver.py,sha256=X072eFWl8Kx-aZbahTkpAc1wwoojr8A4uO2yozwwSbE,5705
228
- flwr/server/driver/grpc_driver.py,sha256=rbSqFhT2ULLQhgIeX24Yt1wZje4bzV4EUoOmbIuVYro,11507
229
- flwr/server/driver/inmemory_driver.py,sha256=p6p9RykDfoty94izzD4i11Xp7A8t1KUaHpbKbbVZAdU,6407
230
226
  flwr/server/fleet_event_log_interceptor.py,sha256=AkL7Y5d3xm2vRhL3ahmEVVoOvAP7PA7dRgB-je4v-Ys,3774
227
+ flwr/server/grid/__init__.py,sha256=aWZHezoR2UGMJISB_gPMCm2N_2GSbm97A3lAp7ruhRQ,888
228
+ flwr/server/grid/grid.py,sha256=p5ZhBT_GQ_oeHfKWFf94Uco4zKCaNeeIZnw32bZ-djI,6611
229
+ flwr/server/grid/grpc_grid.py,sha256=KOMkIWdRkZPLN1bDMxrXPnrJYtibbgMalKEvBt8sqWg,11209
230
+ flwr/server/grid/inmemory_grid.py,sha256=JV9EnOCiPpSfskeYXY3j_IRZ_T1AOXHciA9sHT4YRDI,6079
231
231
  flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
232
- flwr/server/run_serverapp.py,sha256=tyAYB5UEiUd63VG4XiYBUUiivh77SpIol1cGS4xtYdk,2077
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=y6v1WEE7fkJbO9VNGafznm3QfUM3ifpdBcgauKmB4hU,8857
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=5nFRYYzC2vh0l1fKJofBfKwFam93In4b80wvH9eFfQ8,8651
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
@@ -261,9 +261,6 @@ flwr/server/strategy/krum.py,sha256=Gct2OdnvZEnCPKMyIC330baOKabpDrKiCfVXIkr4S0c,
261
261
  flwr/server/strategy/qfedavg.py,sha256=2ijNNc2vVODWLAaoYo9PCoaFvlanq0lbJ7I7Albdudg,10131
262
262
  flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbCKtk,7524
263
263
  flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
264
- flwr/server/superlink/driver/__init__.py,sha256=5soEK5QSvxNjmJQ-CGTWROc4alSAeU0e9Ad9RDhsd3E,717
265
- flwr/server/superlink/driver/serverappio_grpc.py,sha256=UzHwo6qYZMeOhr7nn1iZbcyDSmwvnq_kpYH0mEAndW0,2173
266
- flwr/server/superlink/driver/serverappio_servicer.py,sha256=Y-L0SiaP1p4yEi6r6MWOMiW10nsu_TlAcj_0miaEYSo,13121
267
264
  flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
268
265
  flwr/server/superlink/ffs/disk_ffs.py,sha256=n_Ah0sQwXGVQ9wj5965nLjdkQQbpoHCljjXKFnwftsU,3297
269
266
  flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
@@ -289,25 +286,28 @@ flwr/server/superlink/fleet/vce/backend/backend.py,sha256=lr_uBMaoCp7qs59ZRpCI07
289
286
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=jsUkFEVQTnrucK1jNQ_cUM8YwL7W4MQNA1GAf8ibRdg,7156
290
287
  flwr/server/superlink/fleet/vce/vce_api.py,sha256=xQbWzfIsXYwcEHoYxrgDcx3yGJKUoBdkc8zkJ8onzBs,12802
291
288
  flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
292
- flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=Ss64nq7MgbHwx4LOER-YV7vynkzC1K4XVNk542oPg7s,21305
289
+ flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=9wOOvqmWvchtVDVxhCrifTchzpY2Y6yM4OLHDrzLoq0,22292
293
290
  flwr/server/superlink/linkstate/linkstate.py,sha256=YB3SryGNvt-bE-unYjoloJt9d3xAUPBNLK4mor8gk3M,11851
294
291
  flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
295
- flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=Wsx5gD6WRIMLlKarvVV1_dlS7jmfno-yTVW1-rgcIto,38276
296
- flwr/server/superlink/linkstate/utils.py,sha256=b26MJdMQyt83EDnhB7FAiq8BFttV_qNHF_E_3d3oBlA,12739
292
+ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=N_zWoWDNaNrFCnyz4wHWABc0k4jGryQhx50QWk_D6VQ,39691
293
+ flwr/server/superlink/linkstate/utils.py,sha256=NjGRbvm2VE0ODeLMO0q5pFDd9DK_kV8byvRo4lk2_kE,15232
294
+ flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
295
+ flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=opJ6SYwIAbu4NWEo3K-VxFO-tMSFmE4H3i2HwHIVRzw,2173
296
+ flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=71s1SijefpTpJC2mZD3Y0CZBK9PtK0Yxc4aXawdvEDQ,13121
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=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
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
304
  flwr/server/utils/validator.py,sha256=11olMv1UyeaxLa1ci5gsJ0WALk7VwWGCQYCvLsZ56LY,3604
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=RwDX7hXOI1-q4FH9A0onHvadqa5yXTzslpmShPpXodk,14152
307
+ flwr/server/workflow/default_workflows.py,sha256=WVHupVIHax5g0OcBN0LYeMo4Mxz2UpGf_AgnIIAogBg,14102
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=acfqyzOebe0WvXG2Z7yd7WtEtGJI3eNK2f0d_kjSdnM,29623
310
+ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=VZTe2B-rTYHMJwQsSqXZ2r5y12BhEZ7S0xv6Tiy6DOg,29581
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
@@ -315,7 +315,7 @@ flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQD
315
315
  flwr/simulation/ray_transport/ray_actor.py,sha256=k11yoAPQzFGQU-KnCCP0ZrfPPdUPXXrBe-1DKM5VdW4,18997
316
316
  flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
317
317
  flwr/simulation/ray_transport/utils.py,sha256=wtbQhKQ4jGoiQDLJNQP17m1DSfL22ERhDBGuoeUFaAQ,2393
318
- flwr/simulation/run_simulation.py,sha256=KFpdL_RxE8NHZ68ZdghmFS6rccmWkO_iQ-kLLE1WUn8,20336
318
+ flwr/simulation/run_simulation.py,sha256=bMETYMWS8C9nWOD62qYGnfNQwOJUsQPsUOkCFrf7DIc,20302
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
@@ -326,8 +326,8 @@ flwr/superexec/exec_servicer.py,sha256=4UpzJqPUHkBG2PZNe2lrX7XFVDOL6yw_HcoBHxuXE
326
326
  flwr/superexec/exec_user_auth_interceptor.py,sha256=2kXjjJcrZyff893QTFLQD6zxC4pdVwtN4Rc66jHptfE,4440
327
327
  flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
328
328
  flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
329
- flwr_nightly-1.17.0.dev20250317.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
330
- flwr_nightly-1.17.0.dev20250317.dist-info/METADATA,sha256=BK-20xmip40rp16IosnE5QCL4tnXqfYn0Td2M8Crka8,15878
331
- flwr_nightly-1.17.0.dev20250317.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
332
- flwr_nightly-1.17.0.dev20250317.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
333
- flwr_nightly-1.17.0.dev20250317.dist-info/RECORD,,
329
+ flwr_nightly-1.17.0.dev20250319.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
330
+ flwr_nightly-1.17.0.dev20250319.dist-info/METADATA,sha256=CV7FwrxaqpObFhROZV0wp_HuFRtNjLrbvRgV601Ufmc,15878
331
+ flwr_nightly-1.17.0.dev20250319.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
332
+ flwr_nightly-1.17.0.dev20250319.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
333
+ flwr_nightly-1.17.0.dev20250319.dist-info/RECORD,,