flwr-nightly 1.10.0.dev20240710__py3-none-any.whl → 1.10.0.dev20240712__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/config_utils.py +10 -0
- flwr/cli/run/run.py +25 -8
- flwr/client/app.py +49 -17
- flwr/client/grpc_adapter_client/connection.py +1 -1
- flwr/client/grpc_client/connection.py +1 -1
- flwr/client/grpc_rere_client/connection.py +3 -2
- flwr/client/node_state.py +44 -11
- flwr/client/node_state_tests.py +4 -3
- flwr/client/rest_client/connection.py +4 -3
- flwr/client/supernode/app.py +14 -7
- flwr/common/config.py +3 -3
- flwr/common/context.py +13 -2
- flwr/common/logger.py +25 -0
- flwr/server/__init__.py +2 -0
- flwr/server/compat/legacy_context.py +1 -1
- flwr/server/run_serverapp.py +3 -1
- flwr/server/server_app.py +56 -10
- flwr/server/serverapp_components.py +52 -0
- flwr/server/superlink/fleet/vce/backend/backend.py +4 -4
- flwr/server/superlink/fleet/vce/backend/raybackend.py +8 -9
- flwr/server/superlink/fleet/vce/vce_api.py +88 -121
- flwr/server/typing.py +2 -0
- flwr/simulation/ray_transport/ray_actor.py +15 -19
- flwr/simulation/ray_transport/ray_client_proxy.py +3 -1
- flwr/simulation/run_simulation.py +49 -33
- flwr/superexec/app.py +3 -3
- {flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/METADATA +2 -2
- {flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/RECORD +31 -30
- {flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/entry_points.txt +0 -0
|
@@ -59,7 +59,9 @@ class RayActorClientProxy(ClientProxy):
|
|
|
59
59
|
|
|
60
60
|
self.app_fn = _load_app
|
|
61
61
|
self.actor_pool = actor_pool
|
|
62
|
-
self.proxy_state = NodeState(
|
|
62
|
+
self.proxy_state = NodeState(
|
|
63
|
+
node_id=node_id, node_config={}, partition_id=self.partition_id
|
|
64
|
+
)
|
|
63
65
|
|
|
64
66
|
def _submit_job(self, message: Message, timeout: Optional[float]) -> Message:
|
|
65
67
|
"""Sumbit a message to the ActorPool."""
|
|
@@ -22,7 +22,7 @@ import threading
|
|
|
22
22
|
import traceback
|
|
23
23
|
from logging import DEBUG, ERROR, INFO, WARNING
|
|
24
24
|
from time import sleep
|
|
25
|
-
from typing import Optional
|
|
25
|
+
from typing import Dict, Optional
|
|
26
26
|
|
|
27
27
|
from flwr.client import ClientApp
|
|
28
28
|
from flwr.common import EventType, event, log
|
|
@@ -126,16 +126,25 @@ def run_simulation(
|
|
|
126
126
|
def run_serverapp_th(
|
|
127
127
|
server_app_attr: Optional[str],
|
|
128
128
|
server_app: Optional[ServerApp],
|
|
129
|
+
server_app_run_config: Dict[str, str],
|
|
129
130
|
driver: Driver,
|
|
130
131
|
app_dir: str,
|
|
131
|
-
f_stop:
|
|
132
|
+
f_stop: threading.Event,
|
|
133
|
+
has_exception: threading.Event,
|
|
132
134
|
enable_tf_gpu_growth: bool,
|
|
133
135
|
delay_launch: int = 3,
|
|
134
136
|
) -> threading.Thread:
|
|
135
137
|
"""Run SeverApp in a thread."""
|
|
136
138
|
|
|
137
|
-
def server_th_with_start_checks(
|
|
138
|
-
tf_gpu_growth: bool,
|
|
139
|
+
def server_th_with_start_checks(
|
|
140
|
+
tf_gpu_growth: bool,
|
|
141
|
+
stop_event: threading.Event,
|
|
142
|
+
exception_event: threading.Event,
|
|
143
|
+
_driver: Driver,
|
|
144
|
+
_server_app_dir: str,
|
|
145
|
+
_server_app_run_config: Dict[str, str],
|
|
146
|
+
_server_app_attr: Optional[str],
|
|
147
|
+
_server_app: Optional[ServerApp],
|
|
139
148
|
) -> None:
|
|
140
149
|
"""Run SeverApp, after check if GPU memory growth has to be set.
|
|
141
150
|
|
|
@@ -147,10 +156,18 @@ def run_serverapp_th(
|
|
|
147
156
|
enable_gpu_growth()
|
|
148
157
|
|
|
149
158
|
# Run ServerApp
|
|
150
|
-
run(
|
|
159
|
+
run(
|
|
160
|
+
driver=_driver,
|
|
161
|
+
server_app_dir=_server_app_dir,
|
|
162
|
+
server_app_run_config=_server_app_run_config,
|
|
163
|
+
server_app_attr=_server_app_attr,
|
|
164
|
+
loaded_server_app=_server_app,
|
|
165
|
+
)
|
|
151
166
|
except Exception as ex: # pylint: disable=broad-exception-caught
|
|
152
167
|
log(ERROR, "ServerApp thread raised an exception: %s", ex)
|
|
153
168
|
log(ERROR, traceback.format_exc())
|
|
169
|
+
exception_event.set()
|
|
170
|
+
raise
|
|
154
171
|
finally:
|
|
155
172
|
log(DEBUG, "ServerApp finished running.")
|
|
156
173
|
# Upon completion, trigger stop event if one was passed
|
|
@@ -160,13 +177,16 @@ def run_serverapp_th(
|
|
|
160
177
|
|
|
161
178
|
serverapp_th = threading.Thread(
|
|
162
179
|
target=server_th_with_start_checks,
|
|
163
|
-
args=(
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
180
|
+
args=(
|
|
181
|
+
enable_tf_gpu_growth,
|
|
182
|
+
f_stop,
|
|
183
|
+
has_exception,
|
|
184
|
+
driver,
|
|
185
|
+
app_dir,
|
|
186
|
+
server_app_run_config,
|
|
187
|
+
server_app_attr,
|
|
188
|
+
server_app,
|
|
189
|
+
),
|
|
170
190
|
)
|
|
171
191
|
sleep(delay_launch)
|
|
172
192
|
serverapp_th.start()
|
|
@@ -196,20 +216,18 @@ def _main_loop(
|
|
|
196
216
|
server_app: Optional[ServerApp] = None,
|
|
197
217
|
server_app_attr: Optional[str] = None,
|
|
198
218
|
) -> None:
|
|
199
|
-
"""Launch SuperLink with Simulation Engine, then ServerApp on a separate thread.
|
|
200
|
-
|
|
201
|
-
Everything runs on the main thread or a separate one, depending on whether the main
|
|
202
|
-
thread already contains a running Asyncio event loop. This is the case if running
|
|
203
|
-
the Simulation Engine on a Jupyter/Colab notebook.
|
|
204
|
-
"""
|
|
219
|
+
"""Launch SuperLink with Simulation Engine, then ServerApp on a separate thread."""
|
|
205
220
|
# Initialize StateFactory
|
|
206
221
|
state_factory = StateFactory(":flwr-in-memory-state:")
|
|
207
222
|
|
|
208
|
-
f_stop =
|
|
223
|
+
f_stop = threading.Event()
|
|
224
|
+
# A Threading event to indicate if an exception was raised in the ServerApp thread
|
|
225
|
+
server_app_thread_has_exception = threading.Event()
|
|
209
226
|
serverapp_th = None
|
|
210
227
|
try:
|
|
211
228
|
# Create run (with empty fab_id and fab_version)
|
|
212
229
|
run_id_ = state_factory.state().create_run("", "", {})
|
|
230
|
+
server_app_run_config: Dict[str, str] = {}
|
|
213
231
|
|
|
214
232
|
if run_id:
|
|
215
233
|
_override_run_id(state_factory, run_id_to_replace=run_id_, run_id=run_id)
|
|
@@ -222,9 +240,11 @@ def _main_loop(
|
|
|
222
240
|
serverapp_th = run_serverapp_th(
|
|
223
241
|
server_app_attr=server_app_attr,
|
|
224
242
|
server_app=server_app,
|
|
243
|
+
server_app_run_config=server_app_run_config,
|
|
225
244
|
driver=driver,
|
|
226
245
|
app_dir=app_dir,
|
|
227
246
|
f_stop=f_stop,
|
|
247
|
+
has_exception=server_app_thread_has_exception,
|
|
228
248
|
enable_tf_gpu_growth=enable_tf_gpu_growth,
|
|
229
249
|
)
|
|
230
250
|
|
|
@@ -253,6 +273,8 @@ def _main_loop(
|
|
|
253
273
|
event(EventType.RUN_SUPERLINK_LEAVE)
|
|
254
274
|
if serverapp_th:
|
|
255
275
|
serverapp_th.join()
|
|
276
|
+
if server_app_thread_has_exception.is_set():
|
|
277
|
+
raise RuntimeError("Exception in ServerApp thread")
|
|
256
278
|
|
|
257
279
|
log(DEBUG, "Stopping Simulation Engine now.")
|
|
258
280
|
|
|
@@ -349,7 +371,6 @@ def _run_simulation(
|
|
|
349
371
|
# Convert config to original JSON-stream format
|
|
350
372
|
backend_config_stream = json.dumps(backend_config)
|
|
351
373
|
|
|
352
|
-
simulation_engine_th = None
|
|
353
374
|
args = (
|
|
354
375
|
num_supernodes,
|
|
355
376
|
backend_name,
|
|
@@ -363,31 +384,26 @@ def _run_simulation(
|
|
|
363
384
|
server_app_attr,
|
|
364
385
|
)
|
|
365
386
|
# Detect if there is an Asyncio event loop already running.
|
|
366
|
-
# If yes,
|
|
367
|
-
# like Jupyter/Colab notebooks,
|
|
368
|
-
|
|
387
|
+
# If yes, disable logger propagation. In environmnets
|
|
388
|
+
# like Jupyter/Colab notebooks, it's often better to do this.
|
|
389
|
+
asyncio_loop_running = False
|
|
369
390
|
try:
|
|
370
391
|
_ = (
|
|
371
392
|
asyncio.get_running_loop()
|
|
372
393
|
) # Raises RuntimeError if no event loop is present
|
|
373
394
|
log(DEBUG, "Asyncio event loop already running.")
|
|
374
395
|
|
|
375
|
-
|
|
396
|
+
asyncio_loop_running = True
|
|
376
397
|
|
|
377
398
|
except RuntimeError:
|
|
378
|
-
|
|
399
|
+
pass
|
|
379
400
|
|
|
380
401
|
finally:
|
|
381
|
-
if
|
|
402
|
+
if asyncio_loop_running:
|
|
382
403
|
# Set logger propagation to False to prevent duplicated log output in Colab.
|
|
383
404
|
logger = set_logger_propagation(logger, False)
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
simulation_engine_th.start()
|
|
387
|
-
simulation_engine_th.join()
|
|
388
|
-
else:
|
|
389
|
-
log(DEBUG, "Starting Simulation Engine on the main thread.")
|
|
390
|
-
_main_loop(*args)
|
|
405
|
+
|
|
406
|
+
_main_loop(*args)
|
|
391
407
|
|
|
392
408
|
|
|
393
409
|
def _parse_args_run_simulation() -> argparse.ArgumentParser:
|
flwr/superexec/app.py
CHANGED
|
@@ -127,11 +127,11 @@ def _try_obtain_certificates(
|
|
|
127
127
|
return None
|
|
128
128
|
# Check if certificates are provided
|
|
129
129
|
if args.ssl_certfile and args.ssl_keyfile and args.ssl_ca_certfile:
|
|
130
|
-
if not Path
|
|
130
|
+
if not Path(args.ssl_ca_certfile).is_file():
|
|
131
131
|
sys.exit("Path argument `--ssl-ca-certfile` does not point to a file.")
|
|
132
|
-
if not Path
|
|
132
|
+
if not Path(args.ssl_certfile).is_file():
|
|
133
133
|
sys.exit("Path argument `--ssl-certfile` does not point to a file.")
|
|
134
|
-
if not Path
|
|
134
|
+
if not Path(args.ssl_keyfile).is_file():
|
|
135
135
|
sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
|
|
136
136
|
certificates = (
|
|
137
137
|
Path(args.ssl_ca_certfile).read_bytes(), # CA certificate
|
{flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.10.0.
|
|
3
|
+
Version: 1.10.0.dev20240712
|
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -33,7 +33,7 @@ Classifier: Typing :: Typed
|
|
|
33
33
|
Provides-Extra: rest
|
|
34
34
|
Provides-Extra: simulation
|
|
35
35
|
Requires-Dist: cryptography (>=42.0.4,<43.0.0)
|
|
36
|
-
Requires-Dist: grpcio (>=1.60.0,<2.0.0)
|
|
36
|
+
Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2,!=1.65.0)
|
|
37
37
|
Requires-Dist: iterators (>=0.0.2,<0.0.3)
|
|
38
38
|
Requires-Dist: numpy (>=1.21.0,<2.0.0)
|
|
39
39
|
Requires-Dist: pathspec (>=0.12.1,<0.13.0)
|
{flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/RECORD
RENAMED
|
@@ -2,7 +2,7 @@ flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
3
|
flwr/cli/app.py,sha256=FBcSrE35ll88VE11ib67qgsJe2GYDN25UswV9-cYcX8,1267
|
|
4
4
|
flwr/cli/build.py,sha256=G0wgNrgxir_H0Qb_YlT2itxETEb-9q_3RQflqIqNXTU,4737
|
|
5
|
-
flwr/cli/config_utils.py,sha256=
|
|
5
|
+
flwr/cli/config_utils.py,sha256=jz7ODmLE62tXHorg73zzB7POMe4WXLUzX8lt-WNfNVM,6488
|
|
6
6
|
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
7
|
flwr/cli/install.py,sha256=Wz7Hqg2PE9N-w5CnqlH9Zr8mzADN2J7NLcUhgldZLWU,6579
|
|
8
8
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
@@ -50,20 +50,20 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=wxN6I8uvWZ4MErvTbQJ
|
|
|
50
50
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=wFeJuhqnBPQtKCBvnE3ySBpxmbeNdxcsq2Eb_RmSDIg,655
|
|
51
51
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=zkxLTQRvujF76sIlzNNGPVU7Y9nVCwNBxAx82AOBaJY,654
|
|
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=eFYZwHOw9pHo_jxtS-UQIf7LVIOiNwjnJdaykcZQz5Q,4969
|
|
54
54
|
flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
|
|
55
55
|
flwr/client/__init__.py,sha256=wzJZsYJIHf_8-PMzvfbinyzzjgh1UP1vLrAw2_yEbKI,1345
|
|
56
|
-
flwr/client/app.py,sha256=
|
|
56
|
+
flwr/client/app.py,sha256=60e0vEmMNRusDheu7laQRqe87FhFyVzxIZKAhLrRLAo,26268
|
|
57
57
|
flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
|
|
58
58
|
flwr/client/client_app.py,sha256=cvY-km3JEOWKxUio4xvksNFBk2FQQXliUfQTlDty71w,9648
|
|
59
59
|
flwr/client/dpfedavg_numpy_client.py,sha256=ylZ-LpBIKmL1HCiS8kq4pkp2QGalc8rYEzDHdRG3VRQ,7435
|
|
60
60
|
flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
|
|
61
|
-
flwr/client/grpc_adapter_client/connection.py,sha256=
|
|
61
|
+
flwr/client/grpc_adapter_client/connection.py,sha256=fM6QTIrcDGIXux7nzxOY3qNUfBGxVl1W7861iGSy5wA,3873
|
|
62
62
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
63
|
-
flwr/client/grpc_client/connection.py,sha256=
|
|
63
|
+
flwr/client/grpc_client/connection.py,sha256=7J3YlvvBrky3f8UJ99U9IsPECGtcY8rvXsyr_Ol8qyY,9311
|
|
64
64
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
65
65
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
|
|
66
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
66
|
+
flwr/client/grpc_rere_client/connection.py,sha256=nC4Usb1qok2liVxwlbQokUNwRRRD10_GIscbspqqz_c,10338
|
|
67
67
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=woljH8yr1pyLH4W4Azogyy7Nafn6y9DHBnDCIIVKwCw,4711
|
|
68
68
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
69
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
@@ -77,26 +77,26 @@ flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4R
|
|
|
77
77
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
78
78
|
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
|
|
79
79
|
flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
|
|
80
|
-
flwr/client/node_state.py,sha256=
|
|
81
|
-
flwr/client/node_state_tests.py,sha256=
|
|
80
|
+
flwr/client/node_state.py,sha256=Yh-3-YQtnUfAjMxz356cUQp40UFfdM1yw-n_Ir50JBk,2971
|
|
81
|
+
flwr/client/node_state_tests.py,sha256=DAZk3Ir3HSN24xx42l0u9n5Q7sTgw8Jps4QRhwGew3A,2258
|
|
82
82
|
flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
|
|
83
83
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
84
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
84
|
+
flwr/client/rest_client/connection.py,sha256=aY_UzrNyE8g-xPAK_POZZZ93mERHTe-pOhNP-uZ8GyU,12147
|
|
85
85
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
86
|
-
flwr/client/supernode/app.py,sha256=
|
|
86
|
+
flwr/client/supernode/app.py,sha256=cg8momLzMnFrDBNJsSRDYrn8zHuJ-4UC3wIHf51aBXQ,15385
|
|
87
87
|
flwr/client/typing.py,sha256=RJGVF64Z0nqW-qmdFuFaY4Jig3dMUFgNhFi-5dq-8-I,1069
|
|
88
88
|
flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
|
|
89
89
|
flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
|
|
90
|
-
flwr/common/config.py,sha256=
|
|
90
|
+
flwr/common/config.py,sha256=7OF4R43st8teFXBWmV92noGEYVe00wT29QMs6od8mlI,4994
|
|
91
91
|
flwr/common/constant.py,sha256=qNmxEV3_pOO7MeTAA9qwIh4KoCPStcX3Gm8GRPIRx_4,2890
|
|
92
|
-
flwr/common/context.py,sha256=
|
|
92
|
+
flwr/common/context.py,sha256=iW-rDC0dTzwyvLSWdtaeHMZM7l5XAf6dg2TdVw0lg68,2643
|
|
93
93
|
flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
|
|
94
94
|
flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
|
|
95
95
|
flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
|
|
96
96
|
flwr/common/dp.py,sha256=SZ3MtJKpjxUeQeyb2pqWSF0S_h9rZtCGYPToIxqcNj8,2004
|
|
97
97
|
flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,2812
|
|
98
98
|
flwr/common/grpc.py,sha256=_9838_onFLx7W6_lakUN35ziKpdcKp7fA-0jE0EhcEQ,2460
|
|
99
|
-
flwr/common/logger.py,sha256=
|
|
99
|
+
flwr/common/logger.py,sha256=42rLD69BetRkVKYXZLUaTgyjPxsCn6phVbndMC1fWjk,8130
|
|
100
100
|
flwr/common/message.py,sha256=QmFYYXA-3e9M8tGO-3NPyAI8yvdmcpdYaA_noR1DE88,13194
|
|
101
101
|
flwr/common/object_ref.py,sha256=PQR0tztVOkD1nn_uGuNz4bHm7z4fwsosTsUKvWIGF5Y,6506
|
|
102
102
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
@@ -172,7 +172,7 @@ flwr/proto/transport_pb2.pyi,sha256=CZvJRWTU3QWFWLXNFtyLSrSKFatIyMcy-ohzLbQ-G9c,
|
|
|
172
172
|
flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
|
|
173
173
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
174
174
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
|
-
flwr/server/__init__.py,sha256=
|
|
175
|
+
flwr/server/__init__.py,sha256=BxzPhvouvWFGi7CFpI5b4EeVR9XDqbK7Ndqg24EL_Rw,1679
|
|
176
176
|
flwr/server/app.py,sha256=WABxljYzn9mEaHvnXXBceVkBx2V6lmlFGpl5f0Uue08,23736
|
|
177
177
|
flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
|
|
178
178
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
@@ -180,17 +180,18 @@ flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw
|
|
|
180
180
|
flwr/server/compat/app.py,sha256=u0elxfiLjGouCMQIy5KnCpeCHdc3s0qvojUm8unInIs,3421
|
|
181
181
|
flwr/server/compat/app_utils.py,sha256=B9pec7LnYACzowXKZTZNu3SNS-fSaHfefwvRyAQa4Nc,3456
|
|
182
182
|
flwr/server/compat/driver_client_proxy.py,sha256=BxTDo7i89VAG2tuF4x7zogSVn2bXPMr0H2H0lERzW9c,5444
|
|
183
|
-
flwr/server/compat/legacy_context.py,sha256
|
|
183
|
+
flwr/server/compat/legacy_context.py,sha256=-c2J_tPDFahDILl80XFrgkdRLfpHWDu5W3DQP3nKdls,1814
|
|
184
184
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
185
185
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
186
186
|
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
187
187
|
flwr/server/driver/grpc_driver.py,sha256=4Azmzq4RWzcLbOqBBEF-I78krWVWZ6bT0U42S25zMvY,9659
|
|
188
188
|
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
189
189
|
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
190
|
-
flwr/server/run_serverapp.py,sha256=
|
|
190
|
+
flwr/server/run_serverapp.py,sha256=iq62xuSPYndmsYiJRpRkT9cTfQpZ0FgsWLncktUvh98,9486
|
|
191
191
|
flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
|
|
192
|
-
flwr/server/server_app.py,sha256=
|
|
192
|
+
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
193
193
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
194
|
+
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
194
195
|
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
195
196
|
flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
|
|
196
197
|
flwr/server/strategy/bulyan.py,sha256=zHBSZ40KtRg07tXtwWg2SRvpt89oeRbUO9zTnOFYx2k,6532
|
|
@@ -236,16 +237,16 @@ flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0
|
|
|
236
237
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
|
|
237
238
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
238
239
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=oBIzmnrSSRvH_H0vRGEGWhWzQQwqe3zn6e13RsNwlIY,1466
|
|
239
|
-
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=
|
|
240
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
241
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
240
|
+
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=iG3KSIY7DzNfcxmuLfTs7VdQJnqPCvvn5DFkTWKG5lI,2227
|
|
241
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=pIJm6YXZw-Jv3okRgred1yjm7b3EWuj1BvtyBd3Fk08,7422
|
|
242
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=253x7nGgAbLZzJmSKNxii_xZDrF_8fC0hpbj4bIQ7SY,11800
|
|
242
243
|
flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
|
|
243
244
|
flwr/server/superlink/state/in_memory_state.py,sha256=fb-f4RGiqXON0DC7aSEMNuNIjH406BhBYrNNX5Kza2g,13061
|
|
244
245
|
flwr/server/superlink/state/sqlite_state.py,sha256=dO374mTkvhWQSiwbqwUXVnAYHev-j2mHaX9v8wFmmMA,29044
|
|
245
246
|
flwr/server/superlink/state/state.py,sha256=mwvYPLK_udk4-yV8Q2MLX5FfTlgLG0P9biyyOZGibRY,8115
|
|
246
247
|
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
247
248
|
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
248
|
-
flwr/server/typing.py,sha256=
|
|
249
|
+
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
249
250
|
flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
|
|
250
251
|
flwr/server/utils/tensorboard.py,sha256=l6aMVdtZbbfCX8uwFW-WxH6P171-R-tulMcPhlykowo,5485
|
|
251
252
|
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
@@ -258,18 +259,18 @@ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=BRqhlnVe8C
|
|
|
258
259
|
flwr/simulation/__init__.py,sha256=9x8OCkK3jpFAPJB1aeEMOddz6V58bExQPtwE8Z3q-RY,1359
|
|
259
260
|
flwr/simulation/app.py,sha256=8NDXoQ8oC11khXIGnydrsUh5JfaH7c2Fwzix8vDFK1I,15144
|
|
260
261
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
261
|
-
flwr/simulation/ray_transport/ray_actor.py,sha256=
|
|
262
|
-
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=
|
|
262
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
|
|
263
|
+
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=lcrYLHeAud6AT0TgzKLK14yi3ijZpqMWS4oKj5M1A3A,7009
|
|
263
264
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
264
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
265
|
+
flwr/simulation/run_simulation.py,sha256=qGP8sHKAzJT9nGeqMw36iCsVXm4ZFMBisCORuTswr-g,17277
|
|
265
266
|
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
266
|
-
flwr/superexec/app.py,sha256=
|
|
267
|
+
flwr/superexec/app.py,sha256=1ZGSErFo3AQeIQOARKM1DN99fCuH451PeM1bDasBjRQ,6157
|
|
267
268
|
flwr/superexec/deployment.py,sha256=xv5iQWuaMeeL0XE5KMLWq3gRU4lvsGu1-_oPIXi5x9E,3955
|
|
268
269
|
flwr/superexec/exec_grpc.py,sha256=u-rztpOleqSGqgvNE-ZLw1HchNsBHU1-eB3m52GZ0pQ,1852
|
|
269
270
|
flwr/superexec/exec_servicer.py,sha256=4R1f_9v0vly_bXpIYaXAeV1tO5LAy1AYygGGGNZmlQk,2194
|
|
270
271
|
flwr/superexec/executor.py,sha256=TMQMMf-vv0htlv6v-eEBI67J1WL3Yz7dp_Fm1lgMEyU,1718
|
|
271
|
-
flwr_nightly-1.10.0.
|
|
272
|
-
flwr_nightly-1.10.0.
|
|
273
|
-
flwr_nightly-1.10.0.
|
|
274
|
-
flwr_nightly-1.10.0.
|
|
275
|
-
flwr_nightly-1.10.0.
|
|
272
|
+
flwr_nightly-1.10.0.dev20240712.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
273
|
+
flwr_nightly-1.10.0.dev20240712.dist-info/METADATA,sha256=ueea2HUP0m4iFuOa_T3u2lD-93HGTmfD-ulaZv7LKJg,15632
|
|
274
|
+
flwr_nightly-1.10.0.dev20240712.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
275
|
+
flwr_nightly-1.10.0.dev20240712.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
|
|
276
|
+
flwr_nightly-1.10.0.dev20240712.dist-info/RECORD,,
|
{flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.10.0.dev20240710.dist-info → flwr_nightly-1.10.0.dev20240712.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|