flwr-nightly 1.19.0.dev20250512__py3-none-any.whl → 1.19.0.dev20250514__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/client/grpc_rere_client/grpc_adapter.py +18 -0
- flwr/common/heartbeat.py +63 -1
- flwr/common/inflatable.py +35 -3
- flwr/common/record/array.py +10 -1
- flwr/common/record/arrayrecord.py +65 -1
- flwr/common/record/configrecord.py +10 -1
- flwr/common/record/metricrecord.py +10 -1
- flwr/common/record/recorddict.py +69 -1
- flwr/proto/fleet_pb2.py +2 -2
- flwr/proto/fleet_pb2_grpc.py +69 -0
- flwr/proto/fleet_pb2_grpc.pyi +27 -0
- flwr/proto/heartbeat_pb2.py +5 -1
- flwr/proto/heartbeat_pb2.pyi +26 -0
- flwr/proto/message_pb2.py +9 -1
- flwr/proto/message_pb2.pyi +44 -0
- flwr/proto/serverappio_pb2.py +24 -23
- flwr/proto/serverappio_pb2_grpc.py +104 -0
- flwr/proto/serverappio_pb2_grpc.pyi +41 -0
- flwr/proto/simulationio_pb2.py +12 -11
- flwr/proto/simulationio_pb2_grpc.py +35 -0
- flwr/proto/simulationio_pb2_grpc.pyi +14 -0
- flwr/server/serverapp/app.py +18 -0
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +8 -0
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +35 -0
- flwr/server/superlink/serverappio/serverappio_servicer.py +50 -0
- flwr/server/superlink/simulation/simulationio_servicer.py +23 -0
- flwr/simulation/app.py +17 -0
- {flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/METADATA +1 -1
- {flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/RECORD +31 -31
- {flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/entry_points.txt +0 -0
@@ -24,6 +24,7 @@ import grpc
|
|
24
24
|
|
25
25
|
from flwr.common import ConfigRecord, Message
|
26
26
|
from flwr.common.constant import SUPERLINK_NODE_ID, Status
|
27
|
+
from flwr.common.inflatable import check_body_len_consistency
|
27
28
|
from flwr.common.logger import log
|
28
29
|
from flwr.common.serde import (
|
29
30
|
context_from_proto,
|
@@ -40,10 +41,20 @@ from flwr.common.serde import (
|
|
40
41
|
from flwr.common.typing import Fab, RunStatus
|
41
42
|
from flwr.proto import serverappio_pb2_grpc # pylint: disable=E0611
|
42
43
|
from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
|
44
|
+
from flwr.proto.heartbeat_pb2 import ( # pylint: disable=E0611
|
45
|
+
SendAppHeartbeatRequest,
|
46
|
+
SendAppHeartbeatResponse,
|
47
|
+
)
|
43
48
|
from flwr.proto.log_pb2 import ( # pylint: disable=E0611
|
44
49
|
PushLogsRequest,
|
45
50
|
PushLogsResponse,
|
46
51
|
)
|
52
|
+
from flwr.proto.message_pb2 import ( # pylint: disable=E0611
|
53
|
+
PullObjectRequest,
|
54
|
+
PullObjectResponse,
|
55
|
+
PushObjectRequest,
|
56
|
+
PushObjectResponse,
|
57
|
+
)
|
47
58
|
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
48
59
|
from flwr.proto.run_pb2 import ( # pylint: disable=E0611
|
49
60
|
CreateRunRequest,
|
@@ -362,6 +373,45 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
362
373
|
}
|
363
374
|
return GetRunStatusResponse(run_status_dict=run_status_dict)
|
364
375
|
|
376
|
+
def SendAppHeartbeat(
|
377
|
+
self, request: SendAppHeartbeatRequest, context: grpc.ServicerContext
|
378
|
+
) -> SendAppHeartbeatResponse:
|
379
|
+
"""Handle a heartbeat from the ServerApp."""
|
380
|
+
log(DEBUG, "ServerAppIoServicer.SendAppHeartbeat")
|
381
|
+
|
382
|
+
# Init state
|
383
|
+
state = self.state_factory.state()
|
384
|
+
|
385
|
+
# Acknowledge the heartbeat
|
386
|
+
# The app heartbeat can only be acknowledged if the run is in
|
387
|
+
# starting or running status.
|
388
|
+
success = state.acknowledge_app_heartbeat(
|
389
|
+
run_id=request.run_id,
|
390
|
+
heartbeat_interval=request.heartbeat_interval,
|
391
|
+
)
|
392
|
+
|
393
|
+
return SendAppHeartbeatResponse(success=success)
|
394
|
+
|
395
|
+
def PushObject(
|
396
|
+
self, request: PushObjectRequest, context: grpc.ServicerContext
|
397
|
+
) -> PushObjectResponse:
|
398
|
+
"""Push an object to the ObjectStore."""
|
399
|
+
log(DEBUG, "ServerAppIoServicer.PushObject")
|
400
|
+
|
401
|
+
if not check_body_len_consistency(request.object_content):
|
402
|
+
# Cancel insertion in ObjectStore
|
403
|
+
context.abort(grpc.StatusCode.PERMISSION_DENIED, "Unexpected object length")
|
404
|
+
|
405
|
+
return PushObjectResponse()
|
406
|
+
|
407
|
+
def PullObject(
|
408
|
+
self, request: PullObjectRequest, context: grpc.ServicerContext
|
409
|
+
) -> PullObjectResponse:
|
410
|
+
"""Pull an object from the ObjectStore."""
|
411
|
+
log(DEBUG, "ServerAppIoServicer.PullObject")
|
412
|
+
|
413
|
+
return PullObjectResponse()
|
414
|
+
|
365
415
|
|
366
416
|
def _raise_if(validation_error: bool, request_name: str, detail: str) -> None:
|
367
417
|
"""Raise a `ValueError` with a detailed message if a validation error occurs."""
|
@@ -34,6 +34,10 @@ from flwr.common.serde import (
|
|
34
34
|
)
|
35
35
|
from flwr.common.typing import Fab, RunStatus
|
36
36
|
from flwr.proto import simulationio_pb2_grpc
|
37
|
+
from flwr.proto.heartbeat_pb2 import ( # pylint: disable=E0611
|
38
|
+
SendAppHeartbeatRequest,
|
39
|
+
SendAppHeartbeatResponse,
|
40
|
+
)
|
37
41
|
from flwr.proto.log_pb2 import ( # pylint: disable=E0611
|
38
42
|
PushLogsRequest,
|
39
43
|
PushLogsResponse,
|
@@ -184,3 +188,22 @@ class SimulationIoServicer(simulationio_pb2_grpc.SimulationIoServicer):
|
|
184
188
|
return GetFederationOptionsResponse(
|
185
189
|
federation_options=config_record_to_proto(federation_options)
|
186
190
|
)
|
191
|
+
|
192
|
+
def SendAppHeartbeat(
|
193
|
+
self, request: SendAppHeartbeatRequest, context: grpc.ServicerContext
|
194
|
+
) -> SendAppHeartbeatResponse:
|
195
|
+
"""Handle a heartbeat from the ServerApp in simulation."""
|
196
|
+
log(DEBUG, "SimultionIoServicer.SendAppHeartbeat")
|
197
|
+
|
198
|
+
# Init state
|
199
|
+
state = self.state_factory.state()
|
200
|
+
|
201
|
+
# Acknowledge the heartbeat
|
202
|
+
# The app heartbeat can only be acknowledged if the run is in
|
203
|
+
# starting or running status.
|
204
|
+
success = state.acknowledge_app_heartbeat(
|
205
|
+
run_id=request.run_id,
|
206
|
+
heartbeat_interval=request.heartbeat_interval,
|
207
|
+
)
|
208
|
+
|
209
|
+
return SendAppHeartbeatResponse(success=success)
|
flwr/simulation/app.py
CHANGED
@@ -39,6 +39,7 @@ from flwr.common.constant import (
|
|
39
39
|
SubStatus,
|
40
40
|
)
|
41
41
|
from flwr.common.exit import ExitCode, flwr_exit
|
42
|
+
from flwr.common.heartbeat import HeartbeatSender, get_grpc_app_heartbeat_fn
|
42
43
|
from flwr.common.logger import (
|
43
44
|
log,
|
44
45
|
mirror_output_to_queue,
|
@@ -120,6 +121,7 @@ def run_simulation_process( # pylint: disable=R0914, disable=W0212, disable=R09
|
|
120
121
|
# Resolve directory where FABs are installed
|
121
122
|
flwr_dir = get_flwr_dir(flwr_dir_)
|
122
123
|
log_uploader = None
|
124
|
+
heartbeat_sender = None
|
123
125
|
|
124
126
|
while True:
|
125
127
|
|
@@ -210,6 +212,16 @@ def run_simulation_process( # pylint: disable=R0914, disable=W0212, disable=R09
|
|
210
212
|
},
|
211
213
|
)
|
212
214
|
|
215
|
+
# Set up heartbeat sender
|
216
|
+
heartbeat_fn = get_grpc_app_heartbeat_fn(
|
217
|
+
conn._stub,
|
218
|
+
run.run_id,
|
219
|
+
failure_message="Heartbeat failed unexpectedly. The SuperLink could "
|
220
|
+
"not find the provided run ID, or the run status is invalid.",
|
221
|
+
)
|
222
|
+
heartbeat_sender = HeartbeatSender(heartbeat_fn)
|
223
|
+
heartbeat_sender.start()
|
224
|
+
|
213
225
|
# Launch the simulation
|
214
226
|
updated_context = _run_simulation(
|
215
227
|
server_app_attr=server_app_attr,
|
@@ -240,6 +252,11 @@ def run_simulation_process( # pylint: disable=R0914, disable=W0212, disable=R09
|
|
240
252
|
run_status = RunStatus(Status.FINISHED, SubStatus.FAILED, str(ex))
|
241
253
|
|
242
254
|
finally:
|
255
|
+
# Stop heartbeat sender
|
256
|
+
if heartbeat_sender:
|
257
|
+
heartbeat_sender.stop()
|
258
|
+
heartbeat_sender = None
|
259
|
+
|
243
260
|
# Stop log uploader for this run and upload final logs
|
244
261
|
if log_uploader:
|
245
262
|
stop_log_uploader(log_queue, log_uploader)
|
{flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.19.0.
|
3
|
+
Version: 1.19.0.dev20250514
|
4
4
|
Summary: Flower: A Friendly Federated AI Framework
|
5
5
|
License: Apache-2.0
|
6
6
|
Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
|
{flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/RECORD
RENAMED
@@ -87,7 +87,7 @@ flwr/client/grpc_client/connection.py,sha256=xAyvcTVr7bkwUfR5P3D_LKlZYiyySpt5sEw
|
|
87
87
|
flwr/client/grpc_rere_client/__init__.py,sha256=i7iS0Lt8B7q0E2L72e4F_YrKm6ClRKnd71PNA6PW2O0,752
|
88
88
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=zFaVHw6AxeNO-7eCKKb-RxrPa7zbM5Z-2-1Efc4adQY,2451
|
89
89
|
flwr/client/grpc_rere_client/connection.py,sha256=Ukvvf0VGwYfcYIESpD49cw_TpvPke0dp7bGHbsnbmd0,12035
|
90
|
-
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=
|
90
|
+
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=JvMZ7vCFTaTEo6AzKYh3zDmeQAU7VSjdysbC6t3ufWg,6351
|
91
91
|
flwr/client/message_handler/__init__.py,sha256=0lyljDVqre3WljiZbPcwCCf8GiIaSVI_yo_ylEyPwSE,719
|
92
92
|
flwr/client/message_handler/message_handler.py,sha256=-vZKGg2gP81182LFXDmiZtajLlIfZjV6FyMS43qQVwU,6532
|
93
93
|
flwr/client/mod/__init__.py,sha256=AtV4Y5UGuYqJdTg7bJ--KtfOZUYLGDPMy616LvtP5W4,1151
|
@@ -128,20 +128,20 @@ flwr/common/exit/exit.py,sha256=mJgbqMlVlwAgYtq-Vedj53wO4VxcDcy_P-GzqGK-1GQ,3452
|
|
128
128
|
flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E,3470
|
129
129
|
flwr/common/exit_handlers.py,sha256=MEk5_savTLphn-6lW57UQlos-XrFA39XEBn-OF1vXXg,3174
|
130
130
|
flwr/common/grpc.py,sha256=manTaHaPiyYngUq1ErZvvV2B2GxlXUUUGRy3jc3TBIQ,9798
|
131
|
-
flwr/common/heartbeat.py,sha256=
|
132
|
-
flwr/common/inflatable.py,sha256=
|
131
|
+
flwr/common/heartbeat.py,sha256=SyEpNDnmJ0lni0cWO67rcoJVKasCLmkNHm3dKLeNrLU,5749
|
132
|
+
flwr/common/inflatable.py,sha256=tErMOhZnkj3VGRe7ihZINBdAWnlkvsycPgwmYLF4AtQ,4419
|
133
133
|
flwr/common/logger.py,sha256=JbRf6E2vQxXzpDBq1T8IDUJo_usu3gjWEBPQ6uKcmdg,13049
|
134
134
|
flwr/common/message.py,sha256=znr205Erq2hkxwFbvNNCsQTRS2UKv_Qsyu0sFNEhEAw,23721
|
135
135
|
flwr/common/object_ref.py,sha256=p3SfTeqo3Aj16SkB-vsnNn01zswOPdGNBitcbRnqmUk,9134
|
136
136
|
flwr/common/parameter.py,sha256=UVw6sOgehEFhFs4uUCMl2kfVq1PD6ncmWgPLMsZPKPE,2095
|
137
137
|
flwr/common/pyproject.py,sha256=2SU6yJW7059SbMXgzjOdK1GZRWO6AixDH7BmdxbMvHI,1386
|
138
138
|
flwr/common/record/__init__.py,sha256=cNGccdDoxttqgnUgyKRIqLWULjW-NaSmOufVxtXq-sw,1197
|
139
|
-
flwr/common/record/array.py,sha256=
|
140
|
-
flwr/common/record/arrayrecord.py,sha256
|
141
|
-
flwr/common/record/configrecord.py,sha256=
|
139
|
+
flwr/common/record/array.py,sha256=7c5peTvVsnhXQVvYOIFqm2UowGO-Uu0_44EeqybU0HY,10850
|
140
|
+
flwr/common/record/arrayrecord.py,sha256=-9iIfBKtCS-fGmh5NLTDS7GTHqfHA3o1MguPyyybAyI,16787
|
141
|
+
flwr/common/record/configrecord.py,sha256=2BqauemtQBsZDWLtkTZp51_4J7L9-8i5LrM9RV8nmNQ,9664
|
142
142
|
flwr/common/record/conversion_utils.py,sha256=wbNCzy7oAqaA3-arhls_EqRZYXRC4YrWIoE-Gy82fJ0,1191
|
143
|
-
flwr/common/record/metricrecord.py,sha256=
|
144
|
-
flwr/common/record/recorddict.py,sha256=
|
143
|
+
flwr/common/record/metricrecord.py,sha256=PGeYISykqf_NSyij-qXdf85Pfnder7Rw9CagIolBe30,8839
|
144
|
+
flwr/common/record/recorddict.py,sha256=qnRET_r6_7o7JSQQO2PnMAKezA4yZEy0frsfy8CKxb8,14986
|
145
145
|
flwr/common/record/typeddict.py,sha256=dDKgUThs2BscYUNcgP82KP8-qfAYXYftDrf2LszAC_o,3599
|
146
146
|
flwr/common/recorddict_compat.py,sha256=Znn1xRGiqLpPPgviVqyb-GPTM-pCK6tpnEmhWSXafy8,14119
|
147
147
|
flwr/common/retry_invoker.py,sha256=T6puUH3nCxdRzQHeanyr-0nTxhRiS1TH07rmef9vuLQ,14482
|
@@ -175,24 +175,24 @@ flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
|
|
175
175
|
flwr/proto/fab_pb2.pyi,sha256=AMXpiDK0fo3nZWjxsC2E4otSaVjyQbU7iiWKrsSZavs,2395
|
176
176
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
177
177
|
flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
178
|
-
flwr/proto/fleet_pb2.py,sha256=
|
178
|
+
flwr/proto/fleet_pb2.py,sha256=FB-FnqNi0f5A8t8vycG_frOx9l9EzN3jtmwiDPcKuP0,4792
|
179
179
|
flwr/proto/fleet_pb2.pyi,sha256=ugXXUx2K6mbeWqOxBzoa2B1Uc2d2d03T2z8wS56vLD0,6777
|
180
|
-
flwr/proto/fleet_pb2_grpc.py,sha256=
|
181
|
-
flwr/proto/fleet_pb2_grpc.pyi,sha256=
|
180
|
+
flwr/proto/fleet_pb2_grpc.py,sha256=pYQwwZ8KUZFmbYaJKJ8YJ06QCilhLqI_9vc0bBFXrNI,15779
|
181
|
+
flwr/proto/fleet_pb2_grpc.pyi,sha256=F--4QaDeoCHFuyOB506wHoMlQ4fPHvf8MoiVei_9jr8,4214
|
182
182
|
flwr/proto/grpcadapter_pb2.py,sha256=PJ8DtfeV29g_y4Z3aNZlSZocLqSxeLmTsYCdOZDYCiE,1843
|
183
183
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
184
184
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
185
185
|
flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
|
186
|
-
flwr/proto/heartbeat_pb2.py,sha256=
|
187
|
-
flwr/proto/heartbeat_pb2.pyi,sha256=
|
186
|
+
flwr/proto/heartbeat_pb2.py,sha256=2GMFmdf_4UFHxI-FzOzPfuk4DDx4pUztul-uBl8_7q0,1916
|
187
|
+
flwr/proto/heartbeat_pb2.pyi,sha256=yVtS-CfRJns6_nz0jTJNVw-gTyeHPkxThbaV4L-7uYA,2621
|
188
188
|
flwr/proto/heartbeat_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
189
189
|
flwr/proto/heartbeat_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
190
190
|
flwr/proto/log_pb2.py,sha256=iKaS3MVn1BS4xHu8uGPFCOi1KWtvVx-H9V4jCUIJghs,1393
|
191
191
|
flwr/proto/log_pb2.pyi,sha256=ipuhgo40sAHTcRzCsGI1HwIstr5q0THPNk_cf62YyME,1448
|
192
192
|
flwr/proto/log_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
193
193
|
flwr/proto/log_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
194
|
-
flwr/proto/message_pb2.py,sha256=
|
195
|
-
flwr/proto/message_pb2.pyi,sha256=
|
194
|
+
flwr/proto/message_pb2.py,sha256=m0RTI5J69FEOFeKJsdyb0fUfaY-5x7s8_omBI-BRAtw,3909
|
195
|
+
flwr/proto/message_pb2.pyi,sha256=zFxk7VQL7iACanaIluVGF1mzImzHvpggRt4aWOIJb4c,7502
|
196
196
|
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
197
197
|
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
198
198
|
flwr/proto/node_pb2.py,sha256=BzZfAWIX7lV62bZr9f7x16lUZcpg-EImxnwxQXgCbYg,1045
|
@@ -207,14 +207,14 @@ flwr/proto/run_pb2.py,sha256=9ArAxGT-SgOaIZG-WN6tb-rpka1jLTkaJpDAA39JXeY,5745
|
|
207
207
|
flwr/proto/run_pb2.pyi,sha256=NEz0uJmTpbSGGuYWPVoSog7tS-XjBkaJNdB2l_io2SI,11740
|
208
208
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
209
209
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
210
|
-
flwr/proto/serverappio_pb2.py,sha256=
|
210
|
+
flwr/proto/serverappio_pb2.py,sha256=iaE3twmUl6P0EiMmgECbZ9wpUwOKG_RdO6s66OoicVE,5331
|
211
211
|
flwr/proto/serverappio_pb2.pyi,sha256=8Q81UXbBCArSXnma6-rXUE_vKneCowZjY4W4JmLaH0c,6450
|
212
|
-
flwr/proto/serverappio_pb2_grpc.py,sha256=
|
213
|
-
flwr/proto/serverappio_pb2_grpc.pyi,sha256=
|
214
|
-
flwr/proto/simulationio_pb2.py,sha256=
|
212
|
+
flwr/proto/serverappio_pb2_grpc.py,sha256=e0X_tVI6Qtr47BhH7U8nKK04kI_1xPwxaM-gg4x69KM,24171
|
213
|
+
flwr/proto/serverappio_pb2_grpc.pyi,sha256=1QegiFP3aofVNPuunE6hr_MClr40UzBWo_TEX5IUjlQ,6597
|
214
|
+
flwr/proto/simulationio_pb2.py,sha256=sAJX72z-IttVGxyU3PFnG8AFuA-pV7itvBoxz-hOudE,3342
|
215
215
|
flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
|
216
|
-
flwr/proto/simulationio_pb2_grpc.py,sha256=
|
217
|
-
flwr/proto/simulationio_pb2_grpc.pyi,sha256=
|
216
|
+
flwr/proto/simulationio_pb2_grpc.py,sha256=HuGbhOwV_A5GTbvmd5XTm6lSm9fWUgKcxq9OKhgmBT0,12999
|
217
|
+
flwr/proto/simulationio_pb2_grpc.pyi,sha256=KaGjpR6nH9XLM6oAPjgX-HrGbJU0dAnk9GpNjMkiR54,3687
|
218
218
|
flwr/proto/transport_pb2.py,sha256=P-jX_tUyk_8xFe-vIUUSfZlHGtk2Ou3A8eXdBKkp5AY,9824
|
219
219
|
flwr/proto/transport_pb2.pyi,sha256=ipHQ03eFBqsxtAuAVefZ2lVr04BZ4YifJCS2eauNmy8,21627
|
220
220
|
flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
|
@@ -241,7 +241,7 @@ flwr/server/server.py,sha256=39m4FSN2T-uVA-no9nstN0eWW0co-IUUAIMmpd3V7Jc,17893
|
|
241
241
|
flwr/server/server_app.py,sha256=8uagoZX-3CY3tazPqkIV9jY-cN0YrRRrDmVe23o0AV0,9515
|
242
242
|
flwr/server/server_config.py,sha256=e_6ddh0riwOJsdNn2BFev344uMWfDk9n7dyjNpPgm1w,1349
|
243
243
|
flwr/server/serverapp/__init__.py,sha256=xcC0T_MQSMS9cicUzUUpMNCOsF2d8Oh_8jvnoBLuZvo,800
|
244
|
-
flwr/server/serverapp/app.py,sha256=
|
244
|
+
flwr/server/serverapp/app.py,sha256=500dSi6C8IrvvHaCsGk9HB6O8GWRV07BUeetik47Jr0,9305
|
245
245
|
flwr/server/serverapp_components.py,sha256=dfSqmrsVy3arKXpl3ZIBQWdV8rehfIms8aJooyzdmEM,2118
|
246
246
|
flwr/server/strategy/__init__.py,sha256=HhsSWMWaC7oCb2g7Kqn1MBKdrfvgi8VxACy9ZL706Q0,2836
|
247
247
|
flwr/server/strategy/aggregate.py,sha256=smlKKy-uFUuuFR12vlclucnwSQWRz78R79-Km4RWqbw,13978
|
@@ -274,14 +274,14 @@ flwr/server/superlink/ffs/ffs.py,sha256=6w7wy71i7tbuJwqEgdeCa49JejXMEof3jujURN_R
|
|
274
274
|
flwr/server/superlink/ffs/ffs_factory.py,sha256=pK-g3LMelvWTV6N9Cd-j-_-FdcGbRFTKNsWaqmlBDSk,1490
|
275
275
|
flwr/server/superlink/fleet/__init__.py,sha256=Uiwr33yfW_eL-pEfj80c_JUhIKRkCPsN1JSs2v4aglU,711
|
276
276
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=fUu1V63YrzjxAOZnBJx99WjuD4Mro7dJIFH-1V4NLV8,742
|
277
|
-
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=
|
277
|
+
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=Jdhesi4FUBFsdAnslzB4XaJQzERyCS2F8zeNnvBz9Wo,4715
|
278
278
|
flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=dOM49q1b9MrtUr5jldjEnQ38NhcUyYs-zC3gsJb1TtI,735
|
279
279
|
flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=UKEp-3YBaTvNt7vKZW7KLgK5xsAiO7jxU-omG7CaO_s,6021
|
280
280
|
flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=KouR9PUcrPmMtoLooF4O9SRAwIvfiroo8mPmqUc2EZc,6485
|
281
281
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=iSf0mbBAlig7G6subQwBSVjcUCgSihONKdZ1RmQPTOk,4887
|
282
282
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OsS-6GgCIzMMZDVu5Y-OKjynHVUrpdc_5OrtuB-IbU0,5174
|
283
283
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=ahDJJ1e-lDxBpeBMgPk7YZt2wB38_QltcpOC0gLbpFs,758
|
284
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
284
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=mUEEMqwkI3b5e7hYckRtMaYgARtRDPyrcCDv14-w6t4,6901
|
285
285
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=DrHubsaLgJCwCeeJPYogQTiP0xYqjxwnT9rh7OP7BoU,6984
|
286
286
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=fHsRV0KvJ8HtgSA4_YBsEzuhJLjO8p6xx4aCY2oE1p4,731
|
287
287
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=56LC_cPa_pZT1715WTCN0d7MmvdRXlyO7g_hb9zdJrA,5427
|
@@ -300,10 +300,10 @@ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=E43YO88vdnG9GW6Rwh9Fb
|
|
300
300
|
flwr/server/superlink/linkstate/utils.py,sha256=AJs9jTAEK7JnjF2AODXnOfy0pKAKpe6oUWPCanAP57s,15382
|
301
301
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
302
302
|
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=opJ6SYwIAbu4NWEo3K-VxFO-tMSFmE4H3i2HwHIVRzw,2173
|
303
|
-
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=
|
303
|
+
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=27ETy6-dW23Y6aH-7PpfmSX-0MJZC4qEWkQjdnEmrLU,14869
|
304
304
|
flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
|
305
305
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=0l0F-UjYEk6W7HZmI28PbJQLFxSi_vBHRkdchgdaSMQ,2224
|
306
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
306
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=aJezU8RSJswcmWm7Eoy0BqsU13jrcfuFwX3ljm-cORM,7719
|
307
307
|
flwr/server/superlink/utils.py,sha256=BpKJ8IQBzJ8nLfTD5plBA_Y9re5hIS2gQ_40fc-zno8,2137
|
308
308
|
flwr/server/typing.py,sha256=LvO6gq7H6TAWhA9JFx0WyqHxU7FycyvhSsLjBLPgpts,1011
|
309
309
|
flwr/server/utils/__init__.py,sha256=U4gM84-uUFddarODDQkO6SjNUuGhFcsHJZMjSEbezkU,884
|
@@ -316,7 +316,7 @@ flwr/server/workflow/secure_aggregation/__init__.py,sha256=vGkycLb65CxdaMkKsANxQ
|
|
316
316
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=b_pKk7gmbahwyj0ftOOLXvu-AMtRHEc82N9PJTEO8dc,5839
|
317
317
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=DkayCsnlAya6Y2PZsueLgoUCMRtV-GbnW08RfWx_SXM,29460
|
318
318
|
flwr/simulation/__init__.py,sha256=Gg6OsP1Z-ixc3-xxzvl7j7rz2Fijy9rzyEPpxgAQCeM,1556
|
319
|
-
flwr/simulation/app.py,sha256=
|
319
|
+
flwr/simulation/app.py,sha256=Uy3lPwAvfZECkWPLcC0oDXTwY14e4ou8itIcBltjmWE,10437
|
320
320
|
flwr/simulation/legacy_app.py,sha256=nMISQqW0otJL1-2Kfd94O6BLlGS2IEmEPKTM2WGKrIs,15861
|
321
321
|
flwr/simulation/ray_transport/__init__.py,sha256=ogd-0AMv2U-wBZ1r3sHWaDIOIrVqr88Xi6C8o4Dviy0,734
|
322
322
|
flwr/simulation/ray_transport/ray_actor.py,sha256=JN3xTqFIr5Z750k92CcA_uavzOHhSWDwE2WCaecvpks,19147
|
@@ -333,7 +333,7 @@ flwr/superexec/exec_servicer.py,sha256=Z0YYfs6eNPhqn8rY0x_R04XgR2mKFpggt07IH0EhU
|
|
333
333
|
flwr/superexec/exec_user_auth_interceptor.py,sha256=iqygALkOMBUu_s_R9G0mFThZA7HTUzuXCLgxLCefiwI,4440
|
334
334
|
flwr/superexec/executor.py,sha256=M5ucqSE53jfRtuCNf59WFLqQvA1Mln4741TySeZE7qQ,3112
|
335
335
|
flwr/superexec/simulation.py,sha256=j6YwUvBN7EQ09ID7MYOCVZ70PGbuyBy8f9bXU0EszEM,4088
|
336
|
-
flwr_nightly-1.19.0.
|
337
|
-
flwr_nightly-1.19.0.
|
338
|
-
flwr_nightly-1.19.0.
|
339
|
-
flwr_nightly-1.19.0.
|
336
|
+
flwr_nightly-1.19.0.dev20250514.dist-info/METADATA,sha256=02DeFDEsLHgKnvSEsx79uOLCXPASmJkup3b-g2hzftQ,15910
|
337
|
+
flwr_nightly-1.19.0.dev20250514.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
338
|
+
flwr_nightly-1.19.0.dev20250514.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
|
339
|
+
flwr_nightly-1.19.0.dev20250514.dist-info/RECORD,,
|
{flwr_nightly-1.19.0.dev20250512.dist-info → flwr_nightly-1.19.0.dev20250514.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|