flwr-nightly 1.13.0.dev20241025__py3-none-any.whl → 1.13.0.dev20241029__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.
- flwr/common/date.py +3 -3
- flwr/common/logger.py +31 -0
- flwr/common/serde.py +22 -0
- flwr/proto/driver_pb2.py +24 -23
- flwr/proto/driver_pb2_grpc.py +69 -0
- flwr/proto/driver_pb2_grpc.pyi +27 -0
- flwr/proto/log_pb2.py +29 -0
- flwr/proto/log_pb2.pyi +39 -0
- flwr/proto/log_pb2_grpc.py +4 -0
- flwr/proto/log_pb2_grpc.pyi +4 -0
- flwr/server/app.py +10 -8
- flwr/server/driver/driver.py +14 -0
- flwr/server/driver/grpc_driver.py +8 -15
- flwr/server/driver/inmemory_driver.py +3 -11
- flwr/server/run_serverapp.py +3 -4
- flwr/server/serverapp/app.py +193 -18
- flwr/server/superlink/driver/driver_servicer.py +34 -1
- flwr/server/superlink/linkstate/in_memory_linkstate.py +28 -2
- flwr/server/superlink/linkstate/linkstate.py +35 -0
- flwr/server/superlink/linkstate/sqlite_linkstate.py +50 -0
- flwr/simulation/run_simulation.py +2 -1
- flwr/superexec/deployment.py +3 -37
- flwr/superexec/exec_servicer.py +5 -72
- flwr/superexec/executor.py +3 -4
- flwr/superexec/simulation.py +4 -7
- {flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/METADATA +1 -1
- {flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/RECORD +30 -26
- {flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/entry_points.txt +0 -0
flwr/superexec/exec_servicer.py
CHANGED
|
@@ -15,10 +15,6 @@
|
|
|
15
15
|
"""SuperExec API servicer."""
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
import select
|
|
19
|
-
import sys
|
|
20
|
-
import threading
|
|
21
|
-
import time
|
|
22
18
|
from collections.abc import Generator
|
|
23
19
|
from logging import ERROR, INFO
|
|
24
20
|
from typing import Any
|
|
@@ -37,7 +33,7 @@ from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
|
|
|
37
33
|
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
|
38
34
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
|
39
35
|
|
|
40
|
-
from .executor import Executor
|
|
36
|
+
from .executor import Executor
|
|
41
37
|
|
|
42
38
|
SELECT_TIMEOUT = 1 # Timeout for selecting ready-to-read file descriptors (in seconds)
|
|
43
39
|
|
|
@@ -55,7 +51,6 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
55
51
|
self.ffs_factory = ffs_factory
|
|
56
52
|
self.executor = executor
|
|
57
53
|
self.executor.initialize(linkstate_factory, ffs_factory)
|
|
58
|
-
self.runs: dict[int, RunTracker] = {}
|
|
59
54
|
|
|
60
55
|
def StartRun(
|
|
61
56
|
self, request: StartRunRequest, context: grpc.ServicerContext
|
|
@@ -63,25 +58,17 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
63
58
|
"""Create run ID."""
|
|
64
59
|
log(INFO, "ExecServicer.StartRun")
|
|
65
60
|
|
|
66
|
-
|
|
61
|
+
run_id = self.executor.start_run(
|
|
67
62
|
request.fab.content,
|
|
68
63
|
user_config_from_proto(request.override_config),
|
|
69
64
|
user_config_from_proto(request.federation_config),
|
|
70
65
|
)
|
|
71
66
|
|
|
72
|
-
if
|
|
67
|
+
if run_id is None:
|
|
73
68
|
log(ERROR, "Executor failed to start run")
|
|
74
69
|
return StartRunResponse()
|
|
75
70
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
# Start a background thread to capture the log output
|
|
79
|
-
capture_thread = threading.Thread(
|
|
80
|
-
target=_capture_logs, args=(run,), daemon=True
|
|
81
|
-
)
|
|
82
|
-
capture_thread.start()
|
|
83
|
-
|
|
84
|
-
return StartRunResponse(run_id=run.run_id)
|
|
71
|
+
return StartRunResponse(run_id=run_id)
|
|
85
72
|
|
|
86
73
|
def StreamLogs( # pylint: disable=C0103
|
|
87
74
|
self, request: StreamLogsRequest, context: grpc.ServicerContext
|
|
@@ -89,58 +76,4 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
89
76
|
"""Get logs."""
|
|
90
77
|
log(INFO, "ExecServicer.StreamLogs")
|
|
91
78
|
|
|
92
|
-
|
|
93
|
-
if request.run_id not in self.runs:
|
|
94
|
-
context.abort(grpc.StatusCode.NOT_FOUND, "Run ID not found")
|
|
95
|
-
|
|
96
|
-
last_sent_index = 0
|
|
97
|
-
while context.is_active():
|
|
98
|
-
# Yield n'th row of logs, if n'th row < len(logs)
|
|
99
|
-
logs = self.runs[request.run_id].logs
|
|
100
|
-
for i in range(last_sent_index, len(logs)):
|
|
101
|
-
yield StreamLogsResponse(log_output=logs[i])
|
|
102
|
-
last_sent_index = len(logs)
|
|
103
|
-
|
|
104
|
-
# Wait for and continue to yield more log responses only if the
|
|
105
|
-
# run isn't completed yet. If the run is finished, the entire log
|
|
106
|
-
# is returned at this point and the server ends the stream.
|
|
107
|
-
if self.runs[request.run_id].proc.poll() is not None:
|
|
108
|
-
log(INFO, "All logs for run ID `%s` returned", request.run_id)
|
|
109
|
-
context.set_code(grpc.StatusCode.OK)
|
|
110
|
-
context.cancel()
|
|
111
|
-
|
|
112
|
-
time.sleep(1.0) # Sleep briefly to avoid busy waiting
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
def _capture_logs(
|
|
116
|
-
run: RunTracker,
|
|
117
|
-
) -> None:
|
|
118
|
-
while True:
|
|
119
|
-
# Explicitly check if Popen.poll() is None. Required for `pytest`.
|
|
120
|
-
if run.proc.poll() is None:
|
|
121
|
-
# Select streams only when ready to read
|
|
122
|
-
ready_to_read, _, _ = select.select(
|
|
123
|
-
[run.proc.stdout, run.proc.stderr],
|
|
124
|
-
[],
|
|
125
|
-
[],
|
|
126
|
-
SELECT_TIMEOUT,
|
|
127
|
-
)
|
|
128
|
-
# Read from std* and append to RunTracker.logs
|
|
129
|
-
for stream in ready_to_read:
|
|
130
|
-
# Flush stdout to view output in real time
|
|
131
|
-
readline = stream.readline()
|
|
132
|
-
sys.stdout.write(readline)
|
|
133
|
-
sys.stdout.flush()
|
|
134
|
-
# Append to logs
|
|
135
|
-
line = readline.rstrip()
|
|
136
|
-
if line:
|
|
137
|
-
run.logs.append(f"{line}")
|
|
138
|
-
|
|
139
|
-
# Close std* to prevent blocking
|
|
140
|
-
elif run.proc.poll() is not None:
|
|
141
|
-
log(INFO, "Subprocess finished, exiting log capture")
|
|
142
|
-
if run.proc.stdout:
|
|
143
|
-
run.proc.stdout.close()
|
|
144
|
-
if run.proc.stderr:
|
|
145
|
-
run.proc.stderr.close()
|
|
146
|
-
break
|
|
79
|
+
yield StreamLogsResponse()
|
flwr/superexec/executor.py
CHANGED
|
@@ -72,7 +72,7 @@ class Executor(ABC):
|
|
|
72
72
|
fab_file: bytes,
|
|
73
73
|
override_config: UserConfig,
|
|
74
74
|
federation_config: UserConfig,
|
|
75
|
-
) -> Optional[
|
|
75
|
+
) -> Optional[int]:
|
|
76
76
|
"""Start a run using the given Flower FAB ID and version.
|
|
77
77
|
|
|
78
78
|
This method creates a new run on the SuperLink, returns its run_id
|
|
@@ -89,7 +89,6 @@ class Executor(ABC):
|
|
|
89
89
|
|
|
90
90
|
Returns
|
|
91
91
|
-------
|
|
92
|
-
run_id : Optional[
|
|
93
|
-
The run_id
|
|
94
|
-
or `None` if it fails.
|
|
92
|
+
run_id : Optional[int]
|
|
93
|
+
The run_id of the run created by the SuperLink, or `None` if it fails.
|
|
95
94
|
"""
|
flwr/superexec/simulation.py
CHANGED
|
@@ -33,7 +33,7 @@ from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
|
|
33
33
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
|
34
34
|
from flwr.server.superlink.linkstate.utils import generate_rand_int_from_bytes
|
|
35
35
|
|
|
36
|
-
from .executor import Executor
|
|
36
|
+
from .executor import Executor
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def _user_config_to_str(user_config: UserConfig) -> str:
|
|
@@ -125,7 +125,7 @@ class SimulationEngine(Executor):
|
|
|
125
125
|
fab_file: bytes,
|
|
126
126
|
override_config: UserConfig,
|
|
127
127
|
federation_config: UserConfig,
|
|
128
|
-
) -> Optional[
|
|
128
|
+
) -> Optional[int]:
|
|
129
129
|
"""Start run using the Flower Simulation Engine."""
|
|
130
130
|
if self.num_supernodes is None:
|
|
131
131
|
raise ValueError(
|
|
@@ -199,17 +199,14 @@ class SimulationEngine(Executor):
|
|
|
199
199
|
command.extend(["--run-config", f"{override_config_str}"])
|
|
200
200
|
|
|
201
201
|
# Start Simulation
|
|
202
|
-
|
|
202
|
+
_ = subprocess.Popen( # pylint: disable=consider-using-with
|
|
203
203
|
command,
|
|
204
204
|
text=True,
|
|
205
205
|
)
|
|
206
206
|
|
|
207
207
|
log(INFO, "Started run %s", str(run_id))
|
|
208
208
|
|
|
209
|
-
return
|
|
210
|
-
run_id=run_id,
|
|
211
|
-
proc=proc,
|
|
212
|
-
)
|
|
209
|
+
return run_id
|
|
213
210
|
|
|
214
211
|
# pylint: disable-next=broad-except
|
|
215
212
|
except Exception as e:
|
{flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/RECORD
RENAMED
|
@@ -104,13 +104,13 @@ flwr/common/address.py,sha256=7kM2Rqjw86-c8aKwAvrXerWqznnVv4TFJ62aSAeTn10,3017
|
|
|
104
104
|
flwr/common/config.py,sha256=nYA1vjiiqSWx5JjSdlQd1i_0N_Dh9kEGUse1Qze3JMs,7803
|
|
105
105
|
flwr/common/constant.py,sha256=iv2O8vQdrIqsGy-RFluRDd0R0oaqWO046KPm14yPzw0,4376
|
|
106
106
|
flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
|
|
107
|
-
flwr/common/date.py,sha256=
|
|
107
|
+
flwr/common/date.py,sha256=uTvLmCkd3uVQuD4MviPHnIXMGyheL16mEI_UlOsv_R8,894
|
|
108
108
|
flwr/common/differential_privacy.py,sha256=XwcJ3rWr8S8BZUocc76vLSJAXIf6OHnWkBV6-xlIRuw,6106
|
|
109
109
|
flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
|
|
110
110
|
flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
|
|
111
111
|
flwr/common/exit_handlers.py,sha256=MracJaBeoCOC7TaXK9zCJQxhrMSx9ZtczK237qvhBpU,2806
|
|
112
112
|
flwr/common/grpc.py,sha256=6Yi28JjAll19nxYJlOT9B03RN8dvJZP9zUoR3RSmxoY,2487
|
|
113
|
-
flwr/common/logger.py,sha256=
|
|
113
|
+
flwr/common/logger.py,sha256=0Whe3ce3anXNVQkJpRjM--nRnGum_UfYBsl4fACVuts,8959
|
|
114
114
|
flwr/common/message.py,sha256=4O1m0OWXBAYZz05gKgEtnoJ94J1gjo7hCNHyUXThxRo,13831
|
|
115
115
|
flwr/common/object_ref.py,sha256=5lgWqYaJR28UdFc-iirWw9YqFXMfgkOOAdfJc1AVibE,8711
|
|
116
116
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
@@ -132,7 +132,7 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8
|
|
|
132
132
|
flwr/common/secure_aggregation/quantization.py,sha256=mC4uLf05zeONo8Ke-BY0Tj8UCMOS7VD93zHCzuv3MHU,2304
|
|
133
133
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
134
134
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=o7IhHH6J9xqinhQy3TdPgQpoj1XyEpyv3OQFyx81RVQ,3193
|
|
135
|
-
flwr/common/serde.py,sha256=
|
|
135
|
+
flwr/common/serde.py,sha256=ZNPGTjxmIyRMPskpIy3VVYgjckeix0jzDEc1PtVSgLo,30562
|
|
136
136
|
flwr/common/telemetry.py,sha256=PvdlipCPYciqEgmXRwQ1HklP1uyECcNqt9HTBzthmAg,8904
|
|
137
137
|
flwr/common/typing.py,sha256=fS_KmVdg0c1B87yMnccIPfjBzQ3CTRwYJcaWfmvZzEA,5103
|
|
138
138
|
flwr/common/version.py,sha256=tCcl_FvxVK206C1dxIJCs4TjL06WmyaODBP19FRHE1c,1324
|
|
@@ -149,10 +149,10 @@ flwr/proto/control_pb2.py,sha256=yaUkwY2J9uo-fdUIB5aHwVSDOuGunxaUr4ZlggifA_M,143
|
|
|
149
149
|
flwr/proto/control_pb2.pyi,sha256=XbFvpZvvrS7QcH5AFXfpRGl4hQvhd3QdKO6x0oTlCCU,165
|
|
150
150
|
flwr/proto/control_pb2_grpc.py,sha256=FFE21nZvEILWpe1WCR5vAwgYEtpzrdG78-_SsU0gZ7w,5783
|
|
151
151
|
flwr/proto/control_pb2_grpc.pyi,sha256=9DU4sgkzJ497a4Nq6kitZWEG4g_5MO8MevichnO0oAg,1672
|
|
152
|
-
flwr/proto/driver_pb2.py,sha256=
|
|
152
|
+
flwr/proto/driver_pb2.py,sha256=B07TlCJaBFtfoekcyla2vpQ0b3JE0VoXgNSIkaRaBmw,4830
|
|
153
153
|
flwr/proto/driver_pb2.pyi,sha256=Mq4xZ5Hn55CrUVLu4kvNZylKtF9AQ9NomOv1qJ3Py4Q,6636
|
|
154
|
-
flwr/proto/driver_pb2_grpc.py,sha256=
|
|
155
|
-
flwr/proto/driver_pb2_grpc.pyi,sha256=
|
|
154
|
+
flwr/proto/driver_pb2_grpc.py,sha256=UgZ2PrrBmff-mwH1FG3Zf1YPYLoZVMldEBMUesjC-IQ,17154
|
|
155
|
+
flwr/proto/driver_pb2_grpc.pyi,sha256=1yVGhlZFwR-o1hrGFJptMBrEpdjc_MYpD14oEWDqib8,4654
|
|
156
156
|
flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
157
157
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
158
158
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -173,6 +173,10 @@ flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM
|
|
|
173
173
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
|
174
174
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
|
175
175
|
flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
|
|
176
|
+
flwr/proto/log_pb2.py,sha256=0McrbU6ZlGLMEUAOhxmJvcVdEnptE2t4HsuzI_j77Sg,1393
|
|
177
|
+
flwr/proto/log_pb2.pyi,sha256=ipuhgo40sAHTcRzCsGI1HwIstr5q0THPNk_cf62YyME,1448
|
|
178
|
+
flwr/proto/log_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
179
|
+
flwr/proto/log_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
176
180
|
flwr/proto/message_pb2.py,sha256=GW0ID-d2pvtgylsKxtINQx_oORgNGel3WJ3ybZcXxtI,3151
|
|
177
181
|
flwr/proto/message_pb2.pyi,sha256=_J9NjZa7Pr-kSO7-GGOL5EvIXQx5mQD04iVIvnVHBMU,5617
|
|
178
182
|
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -199,7 +203,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
199
203
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
200
204
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
201
205
|
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
|
202
|
-
flwr/server/app.py,sha256=
|
|
206
|
+
flwr/server/app.py,sha256=7mV0p6Ej7GHyAnSyTOaaPJC2UuXpXfgNLuoDvLemsRM,28353
|
|
203
207
|
flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
|
|
204
208
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
205
209
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -209,16 +213,16 @@ flwr/server/compat/driver_client_proxy.py,sha256=Af0bRUEVZNcCYRxt3DjpLPdvVYpTgz6
|
|
|
209
213
|
flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
|
|
210
214
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
211
215
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
212
|
-
flwr/server/driver/driver.py,sha256=
|
|
213
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
214
|
-
flwr/server/driver/inmemory_driver.py,sha256=
|
|
216
|
+
flwr/server/driver/driver.py,sha256=m8u4ZjtRmy1Cqg7SAld1trg9cd7E7O2IAnfsrJ97sXE,5697
|
|
217
|
+
flwr/server/driver/grpc_driver.py,sha256=cB9uL3JnMOBaObtwo0c60JH2slnoG2-Hsv9tZXpaeCI,9539
|
|
218
|
+
flwr/server/driver/inmemory_driver.py,sha256=kMNYmWWy2VOTDC_PnU-jKfVGrCqdeqp3-kwWiYkJGjo,6453
|
|
215
219
|
flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
|
|
216
|
-
flwr/server/run_serverapp.py,sha256=
|
|
220
|
+
flwr/server/run_serverapp.py,sha256=QAeNzOpZPgHQqhCu2glwMSAE-TSu5Z0IQvldNETKA3w,10497
|
|
217
221
|
flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
|
|
218
222
|
flwr/server/server_app.py,sha256=RsgS6PRS5Z74cMUAHzsm8r3LWddwn00MjRs6rlacHt8,6297
|
|
219
223
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
220
224
|
flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
|
|
221
|
-
flwr/server/serverapp/app.py,sha256=
|
|
225
|
+
flwr/server/serverapp/app.py,sha256=0cL0rL7AFr2SJwahKMs2xc8Eh6fa9IkrtJsJm4a6HN8,8464
|
|
222
226
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
223
227
|
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
224
228
|
flwr/server/strategy/aggregate.py,sha256=iFZ8lp7PV_a2m9kywV-FK0iM33ofxavOs5TIaEQY8nU,13961
|
|
@@ -247,7 +251,7 @@ flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbC
|
|
|
247
251
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
248
252
|
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
249
253
|
flwr/server/superlink/driver/driver_grpc.py,sha256=melAgaV37Y0B9bZe5bRWQOobItZZ9DIzlcbVE8B01wo,2060
|
|
250
|
-
flwr/server/superlink/driver/driver_servicer.py,sha256=
|
|
254
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=o-Ln3Ji2w7dXxP302PyZX-goEwiG71f1nJmHFuqjsqY,10563
|
|
251
255
|
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
|
252
256
|
flwr/server/superlink/ffs/disk_ffs.py,sha256=yCN6CCzegnJIOaHr5nIu49wZQa4g5BByiSKshz50RKU,3296
|
|
253
257
|
flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
|
|
@@ -273,10 +277,10 @@ flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0Q
|
|
|
273
277
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=7kB3re3mR53b7E6L6DPSioTSKD3YGtS3uJsPD7Hn2Fw,7155
|
|
274
278
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=VL6e_Jwf4uxA-X1EelxJZMv6Eji-_p2J9D0MdHG10a4,13029
|
|
275
279
|
flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
|
|
276
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
|
277
|
-
flwr/server/superlink/linkstate/linkstate.py,sha256=
|
|
280
|
+
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=zsolNnK3LPkk_b00hnA9kSmnQ71hS_BPpc7s7uG_tps,20599
|
|
281
|
+
flwr/server/superlink/linkstate/linkstate.py,sha256=fBaIBlQAc0oBu_AWSXlMmHAUHJ2YF1I79MS9wq7HvCs,11428
|
|
278
282
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
|
|
279
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
|
283
|
+
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=Yda1uPiRkEmH7HDNwVtQnpzVjDAkGCJePutkjeyYyT4,43188
|
|
280
284
|
flwr/server/superlink/linkstate/utils.py,sha256=ukrMlSv0mNFd0YSpyPDpq_ND90SBkwuKgw3FFux3lqs,6914
|
|
281
285
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
282
286
|
flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
|
|
@@ -294,16 +298,16 @@ flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQD
|
|
|
294
298
|
flwr/simulation/ray_transport/ray_actor.py,sha256=9-XBguAm5IFqm2ddPFsQtnuuFN6lzqdb00SnCxGUGBo,18996
|
|
295
299
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
|
|
296
300
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
297
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
301
|
+
flwr/simulation/run_simulation.py,sha256=3n1nSik8tTC6LCYVZesNkHuXDQ1Ea4unTnNEOC5rdAc,23436
|
|
298
302
|
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
|
299
303
|
flwr/superexec/app.py,sha256=Tt3GonnTwHrMmicwx9XaP-crP78-bf4DUWl-N5cG6zY,1841
|
|
300
|
-
flwr/superexec/deployment.py,sha256=
|
|
304
|
+
flwr/superexec/deployment.py,sha256=fCAX2heyrraN-matKhHqFSaGKRVPEANAyTt43u8fddM,5678
|
|
301
305
|
flwr/superexec/exec_grpc.py,sha256=OuhBAk7hiky9rjGceinLGIXqchtzGPQThZnwyYv6Ei0,2241
|
|
302
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
303
|
-
flwr/superexec/executor.py,sha256=
|
|
304
|
-
flwr/superexec/simulation.py,sha256=
|
|
305
|
-
flwr_nightly-1.13.0.
|
|
306
|
-
flwr_nightly-1.13.0.
|
|
307
|
-
flwr_nightly-1.13.0.
|
|
308
|
-
flwr_nightly-1.13.0.
|
|
309
|
-
flwr_nightly-1.13.0.
|
|
306
|
+
flwr/superexec/exec_servicer.py,sha256=OcwB5XDMmjVHThY4Ucw1oKDaCw8t1dWlNlnUjkmdiWU,2633
|
|
307
|
+
flwr/superexec/executor.py,sha256=QA2_hQJxmN3zc75oEkDs-zkWAHesz59jE0P5lem-5VU,3073
|
|
308
|
+
flwr/superexec/simulation.py,sha256=Ny3MJnNlgzW4K3NbgsgDM0LKKcoCd_q3LqNqb0GhWLI,7640
|
|
309
|
+
flwr_nightly-1.13.0.dev20241029.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
310
|
+
flwr_nightly-1.13.0.dev20241029.dist-info/METADATA,sha256=Nq2hEJsE6LmIwcbUMIOJqRWWSbaDl66NmtBE9YxR12o,15618
|
|
311
|
+
flwr_nightly-1.13.0.dev20241029.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
312
|
+
flwr_nightly-1.13.0.dev20241029.dist-info/entry_points.txt,sha256=FxJQ96pmcNF2OvkTH6XF-Ip2PNrHvykjArkvkjQC7Mk,486
|
|
313
|
+
flwr_nightly-1.13.0.dev20241029.dist-info/RECORD,,
|
{flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.13.0.dev20241025.dist-info → flwr_nightly-1.13.0.dev20241029.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|