flwr-nightly 1.11.0.dev20240822__py3-none-any.whl → 1.11.0.dev20240824__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 (29) hide show
  1. flwr/cli/build.py +1 -1
  2. flwr/cli/new/templates/app/README.md.tpl +7 -30
  3. flwr/cli/run/run.py +10 -0
  4. flwr/client/client.py +22 -1
  5. flwr/client/numpy_client.py +22 -1
  6. flwr/client/rest_client/connection.py +1 -1
  7. flwr/common/address.py +43 -0
  8. flwr/server/app.py +19 -13
  9. flwr/server/run_serverapp.py +15 -1
  10. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +15 -2
  11. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +5 -0
  12. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +19 -8
  13. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +11 -11
  14. flwr/server/superlink/fleet/rest_rere/rest_api.py +71 -122
  15. flwr/server/superlink/fleet/vce/backend/backend.py +1 -2
  16. flwr/server/superlink/fleet/vce/backend/raybackend.py +13 -4
  17. flwr/server/superlink/fleet/vce/vce_api.py +2 -6
  18. flwr/server/superlink/state/in_memory_state.py +15 -15
  19. flwr/server/superlink/state/sqlite_state.py +10 -10
  20. flwr/server/superlink/state/state.py +8 -8
  21. flwr/server/workflow/secure_aggregation/secagg_workflow.py +1 -0
  22. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +1 -0
  23. flwr/simulation/run_simulation.py +48 -17
  24. flwr/superexec/simulation.py +20 -1
  25. {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/METADATA +2 -2
  26. {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/RECORD +29 -29
  27. {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/LICENSE +0 -0
  28. {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/WHEEL +0 -0
  29. {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/entry_points.txt +0 -0
@@ -25,7 +25,7 @@ from argparse import Namespace
25
25
  from logging import DEBUG, ERROR, INFO, WARNING
26
26
  from pathlib import Path
27
27
  from time import sleep
28
- from typing import List, Optional
28
+ from typing import Any, List, Optional
29
29
 
30
30
  from flwr.cli.config_utils import load_and_validate
31
31
  from flwr.client import ClientApp
@@ -35,6 +35,7 @@ from flwr.common.constant import RUN_ID_NUM_BYTES
35
35
  from flwr.common.logger import (
36
36
  set_logger_propagation,
37
37
  update_console_handler,
38
+ warn_deprecated_feature,
38
39
  warn_deprecated_feature_with_example,
39
40
  )
40
41
  from flwr.common.typing import Run, UserConfig
@@ -91,12 +92,36 @@ def _check_args_do_not_interfere(args: Namespace) -> bool:
91
92
  return True
92
93
 
93
94
 
95
+ def _replace_keys(d: Any, match: str, target: str) -> Any:
96
+ if isinstance(d, dict):
97
+ return {
98
+ k.replace(match, target): _replace_keys(v, match, target)
99
+ for k, v in d.items()
100
+ }
101
+ if isinstance(d, list):
102
+ return [_replace_keys(i, match, target) for i in d]
103
+ return d
104
+
105
+
94
106
  # Entry point from CLI
95
107
  # pylint: disable=too-many-locals
96
108
  def run_simulation_from_cli() -> None:
97
109
  """Run Simulation Engine from the CLI."""
98
110
  args = _parse_args_run_simulation().parse_args()
99
111
 
112
+ # Add warnings for deprecated server_app and client_app arguments
113
+ if args.server_app:
114
+ warn_deprecated_feature(
115
+ "The `--server-app` argument is deprecated. "
116
+ "Please use the `--app` argument instead."
117
+ )
118
+
119
+ if args.client_app:
120
+ warn_deprecated_feature(
121
+ "The `--client-app` argument is deprecated. "
122
+ "Use the `--app` argument instead."
123
+ )
124
+
100
125
  if args.enable_tf_gpu_growth:
101
126
  warn_deprecated_feature_with_example(
102
127
  "Passing `--enable-tf-gpu-growth` is deprecated.",
@@ -105,6 +130,14 @@ def run_simulation_from_cli() -> None:
105
130
  code_example='TF_FORCE_GPU_ALLOW_GROWTH="true" flower-simulation <...>',
106
131
  )
107
132
 
133
+ # Load JSON config
134
+ backend_config_dict = json.loads(args.backend_config)
135
+
136
+ if backend_config_dict:
137
+ # Backend config internally operates with `_` not with `-`
138
+ backend_config_dict = _replace_keys(backend_config_dict, match="-", target="_")
139
+ log(DEBUG, "backend_config_dict: %s", backend_config_dict)
140
+
108
141
  # We are supporting two modes for the CLI entrypoint:
109
142
  # 1) Running an app dir containing a `pyproject.toml`
110
143
  # 2) Running any ClientApp and SeverApp w/o pyproject.toml being present
@@ -167,9 +200,6 @@ def run_simulation_from_cli() -> None:
167
200
  override_config=override_config,
168
201
  )
169
202
 
170
- # Load JSON config
171
- backend_config_dict = json.loads(args.backend_config)
172
-
173
203
  _run_simulation(
174
204
  server_app_attr=server_app_attr,
175
205
  client_app_attr=client_app_attr,
@@ -209,9 +239,8 @@ def run_simulation(
209
239
  messages sent by the `ServerApp`.
210
240
 
211
241
  num_supernodes : int
212
- Number of nodes that run a ClientApp. They can be sampled by a
213
- Driver in the ServerApp and receive a Message describing what the ClientApp
214
- should perform.
242
+ Number of nodes that run a ClientApp. They can be sampled by a Driver in the
243
+ ServerApp and receive a Message describing what the ClientApp should perform.
215
244
 
216
245
  backend_name : str (default: ray)
217
246
  A simulation backend that runs `ClientApp`s.
@@ -239,7 +268,7 @@ def run_simulation(
239
268
  if enable_tf_gpu_growth:
240
269
  warn_deprecated_feature_with_example(
241
270
  "Passing `enable_tf_gpu_growth=True` is deprecated.",
242
- example_message="Instead, set the `TF_FORCE_GPU_ALLOW_GROWTH` environmnet "
271
+ example_message="Instead, set the `TF_FORCE_GPU_ALLOW_GROWTH` environment "
243
272
  "variable to true.",
244
273
  code_example='import os;os.environ["TF_FORCE_GPU_ALLOW_GROWTH"]="true"'
245
274
  "\n\tflwr.simulation.run_simulationt(...)",
@@ -512,13 +541,22 @@ def _parse_args_run_simulation() -> argparse.ArgumentParser:
512
541
  parser = argparse.ArgumentParser(
513
542
  description="Start a Flower simulation",
514
543
  )
544
+ parser.add_argument(
545
+ "--app",
546
+ type=str,
547
+ default=None,
548
+ help="Path to a directory containing a FAB-like structure with a "
549
+ "pyproject.toml.",
550
+ )
515
551
  parser.add_argument(
516
552
  "--server-app",
517
- help="For example: `server:app` or `project.package.module:wrapper.app`",
553
+ help="(DEPRECATED: use --app instead) For example: `server:app` or "
554
+ "`project.package.module:wrapper.app`",
518
555
  )
519
556
  parser.add_argument(
520
557
  "--client-app",
521
- help="For example: `client:app` or `project.package.module:wrapper.app`",
558
+ help="(DEPRECATED: use --app instead) For example: `client:app` or "
559
+ "`project.package.module:wrapper.app`",
522
560
  )
523
561
  parser.add_argument(
524
562
  "--num-supernodes",
@@ -526,13 +564,6 @@ def _parse_args_run_simulation() -> argparse.ArgumentParser:
526
564
  required=True,
527
565
  help="Number of simulated SuperNodes.",
528
566
  )
529
- parser.add_argument(
530
- "--app",
531
- type=str,
532
- default=None,
533
- help="Path to a directory containing a FAB-like structure with a "
534
- "pyproject.toml.",
535
- )
536
567
  parser.add_argument(
537
568
  "--run-config",
538
569
  default=None,
@@ -15,6 +15,7 @@
15
15
  """Simulation engine executor."""
16
16
 
17
17
 
18
+ import json
18
19
  import subprocess
19
20
  import sys
20
21
  from logging import ERROR, INFO, WARN
@@ -24,6 +25,7 @@ from typing_extensions import override
24
25
 
25
26
  from flwr.cli.config_utils import load_and_validate
26
27
  from flwr.cli.install import install_from_fab
28
+ from flwr.common.config import unflatten_dict
27
29
  from flwr.common.constant import RUN_ID_NUM_BYTES
28
30
  from flwr.common.logger import log
29
31
  from flwr.common.typing import UserConfig
@@ -108,6 +110,7 @@ class SimulationEngine(Executor):
108
110
  )
109
111
  self.verbose = verbose
110
112
 
113
+ # pylint: disable=too-many-locals
111
114
  @override
112
115
  def start_run(
113
116
  self,
@@ -152,6 +155,15 @@ class SimulationEngine(Executor):
152
155
  "Config extracted from FAB's pyproject.toml is not valid"
153
156
  )
154
157
 
158
+ # Flatten federated config
159
+ federation_config_flat = unflatten_dict(federation_config)
160
+
161
+ num_supernodes = federation_config_flat.get(
162
+ "num-supernodes", self.num_supernodes
163
+ )
164
+ backend_cfg = federation_config_flat.get("backend", {})
165
+ verbose: Optional[bool] = federation_config_flat.get("verbose")
166
+
155
167
  # In Simulation there is no SuperLink, still we create a run_id
156
168
  run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
157
169
  log(INFO, "Created run %s", str(run_id))
@@ -162,11 +174,18 @@ class SimulationEngine(Executor):
162
174
  "--app",
163
175
  f"{str(fab_path)}",
164
176
  "--num-supernodes",
165
- f"{federation_config.get('num-supernodes', self.num_supernodes)}",
177
+ f"{num_supernodes}",
166
178
  "--run-id",
167
179
  str(run_id),
168
180
  ]
169
181
 
182
+ if backend_cfg:
183
+ # Stringify as JSON
184
+ command.extend(["--backend-config", json.dumps(backend_cfg)])
185
+
186
+ if verbose:
187
+ command.extend(["--verbose"])
188
+
170
189
  if override_config:
171
190
  override_config_str = _user_config_to_str(override_config)
172
191
  command.extend(["--run-config", f"{override_config_str}"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.11.0.dev20240822
3
+ Version: 1.11.0.dev20240824
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -196,7 +196,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
196
196
  - [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
197
197
  - [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
198
198
  - [Federated Finetuning of Large Language Model](https://github.com/adap/flower/tree/main/examples/llm-flowertune)
199
- - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/vit-finetune)
199
+ - [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/flowertune-vit)
200
200
  - [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
201
201
  - [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
202
202
  - Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
@@ -1,7 +1,7 @@
1
1
  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
- flwr/cli/build.py,sha256=gIR-nTgmLJY5ZtJFLN5ebFBCN3_hoqaioFT77AHojNU,5159
4
+ flwr/cli/build.py,sha256=YrzjnwP1A1WQnyPuxtGy4kylcPoj0lexaF99ST872VQ,5174
5
5
  flwr/cli/config_utils.py,sha256=mDGXbcIxG14UpkUplILBYUkSk5M1LeTzZYDGNx-pFpU,7540
6
6
  flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
7
7
  flwr/cli/install.py,sha256=tUncrbZYRbC9QEcWSeTER16plPEoU-ERP0-nMgWiSPo,7094
@@ -10,7 +10,7 @@ flwr/cli/new/new.py,sha256=VNb31-NLedm-_OK_D0aed0QxHO-tVlXjnf9UWVhC_Jk,9612
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=9-z-JDEao3QmFWNLQyf-OzHlvWxVSzs2s1MeTKk68Zc,699
13
+ flwr/cli/new/templates/app/README.md.tpl,sha256=t7w4YFZEcJOxAnuJmNPw5-fDdIJu7PfLd8gFJDiBwwo,436
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
16
  flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=J0Gn74E7khpLyKJVNqOPu7ev93vkcu1PZugsbxtABMw,52
@@ -50,11 +50,11 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=vIO1ArukTC76ogYLNmJ
50
50
  flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=jk_5teoyOVM9QdBea8J-nk10S6TKw81QZiiKB54ATF0,654
51
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
- flwr/cli/run/run.py,sha256=8SoZsow349rC4KC6bfm4uV7NakqWiZahrqvd1Yb-lt0,7653
53
+ flwr/cli/run/run.py,sha256=8JziIz-NITpCVcGj1OgOdyjxa80SyifV0a_jElXaCU0,7987
54
54
  flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
55
55
  flwr/client/__init__.py,sha256=wzJZsYJIHf_8-PMzvfbinyzzjgh1UP1vLrAw2_yEbKI,1345
56
56
  flwr/client/app.py,sha256=o_2bhmlBeZATtWnAPZhL-Q1Ly0QZxc9ou4i7t0HKumE,31956
57
- flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
57
+ flwr/client/client.py,sha256=gy6WVlMUFAp8oevN4xpQPX30vPOIYGVqdbuFlTWkyG4,9080
58
58
  flwr/client/client_app.py,sha256=WcO4r6wrdfaus__3s22D2sYjfcptdgmVujUAYdNE6HU,10393
59
59
  flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
60
60
  flwr/client/clientapp/app.py,sha256=4QtblvJsZ0-V-QBbzyNqWV13ugrgJmkZnsHpBCuqgi8,7797
@@ -83,14 +83,14 @@ flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL6
83
83
  flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
84
84
  flwr/client/node_state.py,sha256=ETr9XmMJ9irFT3shCM4Hv4JWN0ewV-e0S-CFwCh80B8,3953
85
85
  flwr/client/node_state_tests.py,sha256=-4fVsn7y-z9NYBuhq-cjepgxgVuPqqQgDOL4SofrdIo,2239
86
- flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
86
+ flwr/client/numpy_client.py,sha256=9rpj5OLmeeDQVzopR1My6A2VS3nkBFw6cmNcMMPYGlQ,11180
87
87
  flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
88
- flwr/client/rest_client/connection.py,sha256=SglZC4jpqc_0-VBo9cBHa1_2RO9TfPUULQ49DnYeFS0,12767
88
+ flwr/client/rest_client/connection.py,sha256=21YNE6K6JfyZtwIftx1MGOkM78J9wb4EGGOyLS8ej0E,12767
89
89
  flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
90
90
  flwr/client/supernode/app.py,sha256=MOYvLX3VkrslsMQ7V0YdY0GovjXOGsgabYXrvRvHUWc,11856
91
91
  flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
92
92
  flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
93
- flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
93
+ flwr/common/address.py,sha256=1zvmVIAyYP6JbGkMnXuROzkYJ7aSKbJM754lC_kbh1M,3024
94
94
  flwr/common/config.py,sha256=GN-eKrCuyypLMFgr1kO2d-mwiNNphaFt30UlfbaKJFk,7435
95
95
  flwr/common/constant.py,sha256=1XxuRezsr9fl3xvQNPR2kyFkwNeG_f5vZayv0PFh0kY,3012
96
96
  flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
@@ -185,7 +185,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
185
185
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
186
186
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
187
  flwr/server/__init__.py,sha256=BxzPhvouvWFGi7CFpI5b4EeVR9XDqbK7Ndqg24EL_Rw,1679
188
- flwr/server/app.py,sha256=YhGK5LKD12yZOXJC6p5deAodweV91c0IInyiHx7PnWA,24252
188
+ flwr/server/app.py,sha256=QFnqrN1aeNTN-hmHt2YcqZNncAq89Qr2mlZtwITRIc4,24430
189
189
  flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
190
190
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
191
191
  flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
@@ -199,7 +199,7 @@ flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,
199
199
  flwr/server/driver/grpc_driver.py,sha256=EbnOtrTR4cmu2ZhmPqKEmOHAhNQD1fd0hAd_xN1MePQ,9749
200
200
  flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
201
201
  flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
202
- flwr/server/run_serverapp.py,sha256=Lb3n-YEsZ86ZzI9vbhLytr4uiVngZ1LgHhnDtYxn42k,9633
202
+ flwr/server/run_serverapp.py,sha256=Xw42zqNXmKGy3Fz5QjYOUS1MH7ULy2u9nad4QA8hh74,10479
203
203
  flwr/server/server.py,sha256=PsJeh7ROKMoeLpIVrmbKoQUvdz-iqb54E4HZJanRUmM,17912
204
204
  flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
205
205
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
@@ -238,28 +238,28 @@ flwr/server/superlink/ffs/ffs.py,sha256=vzldg6ulYOFwOhLMk9LrUADaJaM6klP9H8_JL76i
238
238
  flwr/server/superlink/ffs/ffs_factory.py,sha256=N_eMuUZggotdGiDQ5r_Tf21xsu_ob0e3jyM6ag7d3kk,1490
239
239
  flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
240
240
  flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
241
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
241
+ flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=pBvUEwSFWjKyROE_F2r_j-mX2mxz9snxGwhirpnZB8E,5597
242
242
  flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=dkSKQMuMTYh1qSnuN87cAPv_mcdLg3f0PqTABHs8gUE,735
243
243
  flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=KCtr4WzoVvYKEgDQFu4XEStXheO7DN2znTiQX6WFA9k,5993
244
244
  flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFMfX7D1EUPWhD29n_cI0fS2Nk,6458
245
245
  flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
246
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=ROH-dr7TQZ9nVXjkKOzMhxidJguX2li8--nDnXRi-dU,12095
246
+ flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=DIXCYfPwm5paWq6hccReW0tB7-dTfq4vvMZ7CsiuYf4,12292
247
247
  flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
248
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=9vZPmdNuRcXsCJQUv9hrzQvdvUJO4-gvxxCHJJTFvGE,4047
249
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=DsHj6XaE0pBSWLYFsUYE44NPqx6IWWTJ9sqbh3GpmvY,7961
248
+ flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=bgoLQEhahVHjdlRDk_58zyKFeMOziiPUXSbYMhOxybY,4757
249
+ flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=paUSrLADNsMdN0anHdbEeGDvI_SMWjAkFSiP3SA-hx8,7933
250
250
  flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
251
251
  flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=9qDDPwj3txHPo2dNaWQiO3UpGno5Zm9IMhJXnAPZbqg,4439
252
252
  flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
253
- flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
253
+ flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=3wegOVJadA3pH_2CwZHQ3UweoYFZpqzOTM92GqLGQ9Y,6301
254
254
  flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
255
255
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
256
- flwr/server/superlink/fleet/vce/backend/backend.py,sha256=KL0eHScWr_YfP2eY3VP8_OOMgZwnRNW7qpu5J-ISpXI,2212
257
- flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=nb_IZNW_ZKoVzM9duqPddUV4C6T1Jpz9VDBVOzpU-WE,6408
258
- flwr/server/superlink/fleet/vce/vce_api.py,sha256=n9SfUaLDgiPVvGVudSC4dZ37vytEDlPn1WA0iUDWJ1I,12750
256
+ flwr/server/superlink/fleet/vce/backend/backend.py,sha256=YugFH_XYclqmq07er5ne1DZc7PgR9lWGs5LY_YIHwc8,2207
257
+ flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=GkeaSe7uXg2iIgKiZNTCwM3TAwYEzuJnr9mA8-vg4hM,6793
258
+ flwr/server/superlink/fleet/vce/vce_api.py,sha256=lTQ2WycKK4-w22EPoJJz1qn73j9ZTwBlNz2cla2Zv0Q,12653
259
259
  flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
260
- flwr/server/superlink/state/in_memory_state.py,sha256=XMcT5WvKPOrFOuKcByr5BRFacX4aR2n9bRkABUuPg-M,13206
261
- flwr/server/superlink/state/sqlite_state.py,sha256=N8eOLZUveJOzdzL31-hXRYOMqV_-w75S1InyDenaDWU,29420
262
- flwr/server/superlink/state/state.py,sha256=peHACUjhUF4gfZ5icMsBGjQNa6A6rvku9a_mziRJW40,8154
260
+ flwr/server/superlink/state/in_memory_state.py,sha256=eNXOVt3HhJOYxkbYRNWEudCaNrYj2B7tOU9xgKbM2Ag,13166
261
+ flwr/server/superlink/state/sqlite_state.py,sha256=Mxb1QLFca9xFtnKgeu1XCe2kFzKGWmpnI-eRMa6-QSE,29395
262
+ flwr/server/superlink/state/state.py,sha256=0DPFJcIGJMMYh3fIGGKSjDswl_HxL57tVYMYdB3TJxI,8138
263
263
  flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
264
264
  flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
265
265
  flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
@@ -270,24 +270,24 @@ flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V7
270
270
  flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
271
271
  flwr/server/workflow/default_workflows.py,sha256=q9f1N2NfOrDrR3S3FH1ePNmTMsUUNwv3cdcAejbGSlk,14086
272
272
  flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
273
- flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
274
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=LLW4LfPAVdpMhIjJBopHVl-OltYuVSqsESw3PULcrN8,29694
273
+ flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
274
+ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=vdS_AeRYBvxbSKhM7yaWzfjb21wJfnmr55IAAqIeDGM,29695
275
275
  flwr/simulation/__init__.py,sha256=ybVBW3xT6cg_IasJV4_ymI3bVrCbFhw1mmcfrdfl3q0,1359
276
276
  flwr/simulation/app.py,sha256=te3dQB3eodPwzsv1y4daPyaskIAaOtgoHaQLobrqoqY,15163
277
277
  flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
278
278
  flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
279
279
  flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
280
280
  flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
281
- flwr/simulation/run_simulation.py,sha256=BXzDF2vMoLTne1NkHKHOGv1FH0fRNy4Ds83Vkr_Qudk,20613
281
+ flwr/simulation/run_simulation.py,sha256=EeioiueoxuBompr04ETUSJp4nNuigamiUEObjVAZHV4,21722
282
282
  flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
283
283
  flwr/superexec/app.py,sha256=KQuAnyTs2RQMGeIOrJjR3fJ70HsIEF3LQRKazOy27OA,6489
284
284
  flwr/superexec/deployment.py,sha256=1qhztkcZDjaSbicligbXGqn49gbpN271rTlEVAnNuWw,6283
285
285
  flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
286
286
  flwr/superexec/exec_servicer.py,sha256=jl0aKVjm0PLQABcTL5c3jdSIzb0Z6hpVOtrAn4Ob7ts,2323
287
287
  flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
288
- flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
289
- flwr_nightly-1.11.0.dev20240822.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
290
- flwr_nightly-1.11.0.dev20240822.dist-info/METADATA,sha256=1OtA53Kfj8jYKL3qUYVhcE5TqBzsuwmxR-EalE1b5yw,15701
291
- flwr_nightly-1.11.0.dev20240822.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
292
- flwr_nightly-1.11.0.dev20240822.dist-info/entry_points.txt,sha256=3cDQVJEBRCSLzJrVYAgjXpoCjuQ74I3A9NZ61DOHdVo,388
293
- flwr_nightly-1.11.0.dev20240822.dist-info/RECORD,,
288
+ flwr/superexec/simulation.py,sha256=J6pw-RqCSiUed8I_3MasZH4tl57ZmDebPAHNnbb0-vE,7420
289
+ flwr_nightly-1.11.0.dev20240824.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
290
+ flwr_nightly-1.11.0.dev20240824.dist-info/METADATA,sha256=c4bYJYoDKPDrknqbeXipSxwNQYCoRjWHlQo_cvQXqvI,15703
291
+ flwr_nightly-1.11.0.dev20240824.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
292
+ flwr_nightly-1.11.0.dev20240824.dist-info/entry_points.txt,sha256=3cDQVJEBRCSLzJrVYAgjXpoCjuQ74I3A9NZ61DOHdVo,388
293
+ flwr_nightly-1.11.0.dev20240824.dist-info/RECORD,,