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.
- flwr/cli/build.py +1 -1
- flwr/cli/new/templates/app/README.md.tpl +7 -30
- flwr/cli/run/run.py +10 -0
- flwr/client/client.py +22 -1
- flwr/client/numpy_client.py +22 -1
- flwr/client/rest_client/connection.py +1 -1
- flwr/common/address.py +43 -0
- flwr/server/app.py +19 -13
- flwr/server/run_serverapp.py +15 -1
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +15 -2
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +5 -0
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +19 -8
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +11 -11
- flwr/server/superlink/fleet/rest_rere/rest_api.py +71 -122
- flwr/server/superlink/fleet/vce/backend/backend.py +1 -2
- flwr/server/superlink/fleet/vce/backend/raybackend.py +13 -4
- flwr/server/superlink/fleet/vce/vce_api.py +2 -6
- flwr/server/superlink/state/in_memory_state.py +15 -15
- flwr/server/superlink/state/sqlite_state.py +10 -10
- flwr/server/superlink/state/state.py +8 -8
- flwr/server/workflow/secure_aggregation/secagg_workflow.py +1 -0
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +1 -0
- flwr/simulation/run_simulation.py +48 -17
- flwr/superexec/simulation.py +20 -1
- {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/METADATA +2 -2
- {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/RECORD +29 -29
- {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/WHEEL +0 -0
- {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
|
-
|
|
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`
|
|
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
|
|
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
|
|
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,
|
flwr/superexec/simulation.py
CHANGED
|
@@ -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"{
|
|
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}"])
|
{flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.11.0.
|
|
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
|
|
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))
|
{flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
249
|
-
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=
|
|
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=
|
|
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=
|
|
257
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
258
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
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=
|
|
261
|
-
flwr/server/superlink/state/sqlite_state.py,sha256=
|
|
262
|
-
flwr/server/superlink/state/state.py,sha256=
|
|
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=
|
|
274
|
-
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=
|
|
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=
|
|
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=
|
|
289
|
-
flwr_nightly-1.11.0.
|
|
290
|
-
flwr_nightly-1.11.0.
|
|
291
|
-
flwr_nightly-1.11.0.
|
|
292
|
-
flwr_nightly-1.11.0.
|
|
293
|
-
flwr_nightly-1.11.0.
|
|
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,,
|
{flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.11.0.dev20240822.dist-info → flwr_nightly-1.11.0.dev20240824.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|