flwr-nightly 1.20.0.dev20250716__py3-none-any.whl → 1.20.0.dev20250717__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/record/array.py +2 -2
- flwr/common/serde.py +0 -28
- flwr/compat/client/app.py +14 -31
- flwr/proto/appio_pb2.py +18 -22
- flwr/proto/appio_pb2.pyi +21 -22
- flwr/proto/clientappio_pb2.py +12 -31
- flwr/proto/clientappio_pb2.pyi +0 -142
- flwr/proto/clientappio_pb2_grpc.py +128 -24
- flwr/proto/clientappio_pb2_grpc.pyi +57 -16
- flwr/server/fleet_event_log_interceptor.py +4 -0
- flwr/server/grid/grpc_grid.py +5 -2
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
- flwr/server/superlink/serverappio/serverappio_servicer.py +5 -9
- flwr/superexec/exec_event_log_interceptor.py +4 -0
- flwr/superexec/exec_license_interceptor.py +4 -0
- flwr/superexec/exec_user_auth_interceptor.py +4 -0
- flwr/supernode/runtime/run_clientapp.py +21 -15
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +94 -25
- {flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/METADATA +1 -1
- {flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/RECORD +22 -22
- {flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/entry_points.txt +0 -0
@@ -15,12 +15,13 @@
|
|
15
15
|
"""ClientAppIo API servicer."""
|
16
16
|
|
17
17
|
|
18
|
-
from logging import DEBUG
|
18
|
+
from logging import DEBUG, ERROR
|
19
19
|
from typing import cast
|
20
20
|
|
21
21
|
import grpc
|
22
22
|
|
23
23
|
from flwr.common import Context
|
24
|
+
from flwr.common.inflatable import UnexpectedObjectContentError
|
24
25
|
from flwr.common.logger import log
|
25
26
|
from flwr.common.serde import (
|
26
27
|
context_from_proto,
|
@@ -34,22 +35,34 @@ from flwr.common.typing import Fab, Run
|
|
34
35
|
|
35
36
|
# pylint: disable=E0611
|
36
37
|
from flwr.proto import clientappio_pb2_grpc
|
38
|
+
from flwr.proto.appio_pb2 import ( # pylint: disable=E0401
|
39
|
+
PullAppInputsRequest,
|
40
|
+
PullAppInputsResponse,
|
41
|
+
PullAppMessagesRequest,
|
42
|
+
PullAppMessagesResponse,
|
43
|
+
PushAppMessagesRequest,
|
44
|
+
PushAppMessagesResponse,
|
45
|
+
PushAppOutputsRequest,
|
46
|
+
PushAppOutputsResponse,
|
47
|
+
)
|
37
48
|
from flwr.proto.clientappio_pb2 import ( # pylint: disable=E0401
|
38
49
|
GetRunIdsWithPendingMessagesRequest,
|
39
50
|
GetRunIdsWithPendingMessagesResponse,
|
40
|
-
PullClientAppInputsRequest,
|
41
|
-
PullClientAppInputsResponse,
|
42
|
-
PullMessageRequest,
|
43
|
-
PullMessageResponse,
|
44
|
-
PushClientAppOutputsRequest,
|
45
|
-
PushClientAppOutputsResponse,
|
46
|
-
PushMessageRequest,
|
47
|
-
PushMessageResponse,
|
48
51
|
RequestTokenRequest,
|
49
52
|
RequestTokenResponse,
|
50
53
|
)
|
54
|
+
from flwr.proto.message_pb2 import (
|
55
|
+
ConfirmMessageReceivedRequest,
|
56
|
+
ConfirmMessageReceivedResponse,
|
57
|
+
PullObjectRequest,
|
58
|
+
PullObjectResponse,
|
59
|
+
PushObjectRequest,
|
60
|
+
PushObjectResponse,
|
61
|
+
)
|
62
|
+
|
63
|
+
# pylint: disable=E0601
|
51
64
|
from flwr.supercore.ffs import FfsFactory
|
52
|
-
from flwr.supercore.object_store import ObjectStoreFactory
|
65
|
+
from flwr.supercore.object_store import NoObjectInStoreError, ObjectStoreFactory
|
53
66
|
from flwr.supernode.nodestate import NodeStateFactory
|
54
67
|
|
55
68
|
|
@@ -105,8 +118,8 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
105
118
|
return RequestTokenResponse(token=token)
|
106
119
|
|
107
120
|
def PullClientAppInputs(
|
108
|
-
self, request:
|
109
|
-
) ->
|
121
|
+
self, request: PullAppInputsRequest, context: grpc.ServicerContext
|
122
|
+
) -> PullAppInputsResponse:
|
110
123
|
"""Pull Message, Context, and Run."""
|
111
124
|
log(DEBUG, "ClientAppIo.PullClientAppInputs")
|
112
125
|
|
@@ -128,15 +141,15 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
128
141
|
run = cast(Run, state.get_run(run_id))
|
129
142
|
fab = Fab(run.fab_hash, ffs.get(run.fab_hash)[0]) # type: ignore
|
130
143
|
|
131
|
-
return
|
144
|
+
return PullAppInputsResponse(
|
132
145
|
context=context_to_proto(context),
|
133
146
|
run=run_to_proto(run),
|
134
147
|
fab=fab_to_proto(fab),
|
135
148
|
)
|
136
149
|
|
137
150
|
def PushClientAppOutputs(
|
138
|
-
self, request:
|
139
|
-
) ->
|
151
|
+
self, request: PushAppOutputsRequest, context: grpc.ServicerContext
|
152
|
+
) -> PushAppOutputsResponse:
|
140
153
|
"""Push Message and Context."""
|
141
154
|
log(DEBUG, "ClientAppIo.PushClientAppOutputs")
|
142
155
|
|
@@ -159,11 +172,11 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
159
172
|
# A run associated with a token cannot be handled until its token is cleared
|
160
173
|
state.delete_token(run_id)
|
161
174
|
|
162
|
-
return
|
175
|
+
return PushAppOutputsResponse()
|
163
176
|
|
164
177
|
def PullMessage(
|
165
|
-
self, request:
|
166
|
-
) ->
|
178
|
+
self, request: PullAppMessagesRequest, context: grpc.ServicerContext
|
179
|
+
) -> PullAppMessagesResponse:
|
167
180
|
"""Pull one Message."""
|
168
181
|
# Initialize state and ffs connection
|
169
182
|
state = self.state_factory.state()
|
@@ -177,14 +190,14 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
177
190
|
)
|
178
191
|
raise RuntimeError("This line should never be reached.")
|
179
192
|
|
180
|
-
# Retrieve message
|
193
|
+
# Retrieve message for this run
|
181
194
|
message = state.get_messages(run_ids=[run_id], is_reply=False)[0]
|
182
195
|
|
183
|
-
return
|
196
|
+
return PullAppMessagesResponse(messages_list=[message_to_proto(message)])
|
184
197
|
|
185
198
|
def PushMessage(
|
186
|
-
self, request:
|
187
|
-
) ->
|
199
|
+
self, request: PushAppMessagesRequest, context: grpc.ServicerContext
|
200
|
+
) -> PushAppMessagesResponse:
|
188
201
|
"""Push one Message."""
|
189
202
|
# Initialize state connection
|
190
203
|
state = self.state_factory.state()
|
@@ -198,7 +211,63 @@ class ClientAppIoServicer(clientappio_pb2_grpc.ClientAppIoServicer):
|
|
198
211
|
)
|
199
212
|
raise RuntimeError("This line should never be reached.")
|
200
213
|
|
201
|
-
# Save the message
|
202
|
-
state.store_message(message_from_proto(request.
|
214
|
+
# Save the message to the state
|
215
|
+
state.store_message(message_from_proto(request.messages_list[0]))
|
216
|
+
|
217
|
+
return PushAppMessagesResponse()
|
218
|
+
|
219
|
+
def PushObject(
|
220
|
+
self, request: PushObjectRequest, context: grpc.ServicerContext
|
221
|
+
) -> PushObjectResponse:
|
222
|
+
"""Push an object to the ObjectStore."""
|
223
|
+
log(DEBUG, "ServerAppIoServicer.PushObject")
|
224
|
+
|
225
|
+
# Init state and store
|
226
|
+
store = self.objectstore_factory.store()
|
227
|
+
|
228
|
+
# Insert in store
|
229
|
+
stored = False
|
230
|
+
try:
|
231
|
+
store.put(request.object_id, request.object_content)
|
232
|
+
stored = True
|
233
|
+
except (NoObjectInStoreError, ValueError) as e:
|
234
|
+
log(ERROR, str(e))
|
235
|
+
except UnexpectedObjectContentError as e:
|
236
|
+
# Object content is not valid
|
237
|
+
context.abort(grpc.StatusCode.FAILED_PRECONDITION, str(e))
|
238
|
+
|
239
|
+
return PushObjectResponse(stored=stored)
|
240
|
+
|
241
|
+
def PullObject(
|
242
|
+
self, request: PullObjectRequest, context: grpc.ServicerContext
|
243
|
+
) -> PullObjectResponse:
|
244
|
+
"""Pull an object from the ObjectStore."""
|
245
|
+
log(DEBUG, "ServerAppIoServicer.PullObject")
|
246
|
+
|
247
|
+
# Init state and store
|
248
|
+
store = self.objectstore_factory.store()
|
249
|
+
|
250
|
+
# Fetch from store
|
251
|
+
content = store.get(request.object_id)
|
252
|
+
if content is not None:
|
253
|
+
object_available = content != b""
|
254
|
+
return PullObjectResponse(
|
255
|
+
object_found=True,
|
256
|
+
object_available=object_available,
|
257
|
+
object_content=content,
|
258
|
+
)
|
259
|
+
return PullObjectResponse(object_found=False, object_available=False)
|
260
|
+
|
261
|
+
def ConfirmMessageReceived(
|
262
|
+
self, request: ConfirmMessageReceivedRequest, context: grpc.ServicerContext
|
263
|
+
) -> ConfirmMessageReceivedResponse:
|
264
|
+
"""Confirm message received."""
|
265
|
+
log(DEBUG, "ServerAppIoServicer.ConfirmMessageReceived")
|
266
|
+
|
267
|
+
# Init state and store
|
268
|
+
store = self.objectstore_factory.store()
|
269
|
+
|
270
|
+
# Delete the message object
|
271
|
+
store.delete(request.message_object_id)
|
203
272
|
|
204
|
-
return
|
273
|
+
return ConfirmMessageReceivedResponse()
|
{flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.20.0.
|
3
|
+
Version: 1.20.0.dev20250717
|
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.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/RECORD
RENAMED
@@ -131,7 +131,7 @@ flwr/common/object_ref.py,sha256=p3SfTeqo3Aj16SkB-vsnNn01zswOPdGNBitcbRnqmUk,913
|
|
131
131
|
flwr/common/parameter.py,sha256=UVw6sOgehEFhFs4uUCMl2kfVq1PD6ncmWgPLMsZPKPE,2095
|
132
132
|
flwr/common/pyproject.py,sha256=2SU6yJW7059SbMXgzjOdK1GZRWO6AixDH7BmdxbMvHI,1386
|
133
133
|
flwr/common/record/__init__.py,sha256=cNGccdDoxttqgnUgyKRIqLWULjW-NaSmOufVxtXq-sw,1197
|
134
|
-
flwr/common/record/array.py,sha256=
|
134
|
+
flwr/common/record/array.py,sha256=50WACrlTRbGOnRpw5Qqt-5_u4TroVl-7jRHCx_CQ35o,14503
|
135
135
|
flwr/common/record/arraychunk.py,sha256=2ubMzsRNZFL4cc-wXNrJkcTSJUD3nL8CeX5PZpEhNSo,2019
|
136
136
|
flwr/common/record/arrayrecord.py,sha256=CpoqYXM6Iv4XEc9SryCMYmw-bIvP8ut6xWJzRwYJzdU,18008
|
137
137
|
flwr/common/record/configrecord.py,sha256=G7U0q39kB0Kyi0zMxFmPxcVemL9NgwVS1qjvI4BRQuU,9763
|
@@ -149,14 +149,14 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=TrggOlizlny3V2KS7-3
|
|
149
149
|
flwr/common/secure_aggregation/quantization.py,sha256=ssFZpiRyj9ltIh0Ai3vGkDqWFO4SoqgoD1mDU9XqMEM,2400
|
150
150
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=dGYhWOBMMDJcQH4_tQNC8-Efqm-ecEUNN9ANz59UnCk,2182
|
151
151
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=E_xU-Zd45daO1em7M6C2wOjFXVtJf-6tl7fp-7xq1wo,3214
|
152
|
-
flwr/common/serde.py,sha256=
|
152
|
+
flwr/common/serde.py,sha256=dx66gumR1BpwK45qDwvDLd_05VoKfzkUzWZ7zuZi1-0,21960
|
153
153
|
flwr/common/serde_utils.py,sha256=krx2C_W31KpfmDqnDCtULoTkT8WKweWTJ7FHYWtF1r4,5815
|
154
154
|
flwr/common/telemetry.py,sha256=jF47v0SbnBd43XamHtl3wKxs3knFUY2p77cm_2lzZ8M,8762
|
155
155
|
flwr/common/typing.py,sha256=B8z50fv8K0H4F5m8XRPBoWy-qqbNMyQXBAaaSuzfbnY,6936
|
156
156
|
flwr/common/version.py,sha256=7GAGzPn73Mkh09qhrjbmjZQtcqVhBuzhFBaK4Mk4VRk,1325
|
157
157
|
flwr/compat/__init__.py,sha256=gbfDQKKKMZzi3GswyVRgyLdDlHiWj3wU6dg7y6m5O_s,752
|
158
158
|
flwr/compat/client/__init__.py,sha256=qpbo0lcxdNL4qy5KHqiGm8OLxSxkYgI_-dLh5rwhtcI,746
|
159
|
-
flwr/compat/client/app.py,sha256=
|
159
|
+
flwr/compat/client/app.py,sha256=EFJxHrnFC_MrTQM2BKIdVJzW8WMYxBBMUY-XhNwvwqM,27126
|
160
160
|
flwr/compat/client/grpc_client/__init__.py,sha256=MDOckOODn-FJnkkFEfb2JO-2G97wrBr_TTqht-LhOcY,735
|
161
161
|
flwr/compat/client/grpc_client/connection.py,sha256=xAyvcTVr7bkwUfR5P3D_LKlZYiyySpt5sEwORA1h8Gc,9189
|
162
162
|
flwr/compat/common/__init__.py,sha256=OMnKw4ad0qYMSIA9LZRa2gOkhSOXwAZCpAHnBQE_hFc,746
|
@@ -164,14 +164,14 @@ flwr/compat/server/__init__.py,sha256=TGVSoOTuf5T5JHUVrK5wuorQF7L6Wvdem8B4uufvMJ
|
|
164
164
|
flwr/compat/server/app.py,sha256=_lIe7Q4KUk-olq9PYBxIsO3UaOn6N92CWgWQ4hRcAZw,6490
|
165
165
|
flwr/compat/simulation/__init__.py,sha256=MApGa-tysDDw34iSdxZ7TWOKtGJM-z3i8fIRJa0qbZ8,750
|
166
166
|
flwr/proto/__init__.py,sha256=S3VbQzVwNC1P-3_9EdrXuwgptO-BVuuAe20Z_OUc1cQ,683
|
167
|
-
flwr/proto/appio_pb2.py,sha256=
|
168
|
-
flwr/proto/appio_pb2.pyi,sha256=
|
167
|
+
flwr/proto/appio_pb2.py,sha256=wCmsFJphNn5VHV2ew6-Wz58OclbsNfiwkwbssX8Ojf0,3853
|
168
|
+
flwr/proto/appio_pb2.pyi,sha256=_75EI4-BtZFW_tQcjLYhULmZPlFh1WJGVpL4vOROljU,7736
|
169
169
|
flwr/proto/appio_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
170
170
|
flwr/proto/appio_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
171
|
-
flwr/proto/clientappio_pb2.py,sha256=
|
172
|
-
flwr/proto/clientappio_pb2.pyi,sha256=
|
173
|
-
flwr/proto/clientappio_pb2_grpc.py,sha256=
|
174
|
-
flwr/proto/clientappio_pb2_grpc.pyi,sha256=
|
171
|
+
flwr/proto/clientappio_pb2.py,sha256=VHXByon0L0U0768mSbp5ek2iWC6uujowc4sw7IHZHg8,3256
|
172
|
+
flwr/proto/clientappio_pb2.pyi,sha256=gA-WU5lCYxhMciAUiCg__DrAzHPtytqRLyflpToWHqc,2033
|
173
|
+
flwr/proto/clientappio_pb2_grpc.py,sha256=4jYgxz3mNl20u3rJuGTe2TkeiLoVSwnRnXCGXhbCxgw,16263
|
174
|
+
flwr/proto/clientappio_pb2_grpc.pyi,sha256=oa6AwB04qozIdwRLg2K43Zmf9BY10wlcnoJwPAxGHpc,4536
|
175
175
|
flwr/proto/error_pb2.py,sha256=PQVWrfjVPo88ql_KgV9nCxyQNCcV9PVfmcw7sOzTMro,1084
|
176
176
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
177
177
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
@@ -239,10 +239,10 @@ flwr/server/compat/app_utils.py,sha256=Uz6m-NV90cQ6k-gW6wlWQuhoFoK78qlMr0CEmALKX
|
|
239
239
|
flwr/server/compat/grid_client_proxy.py,sha256=FxMgGtrzBoBAPby2ZjTWzpCJsCht8FwMm4PzqW80dmQ,4956
|
240
240
|
flwr/server/compat/legacy_context.py,sha256=94JsRQxyOdLI6lZZkFjS3-TMd0YJGAgSBBO0M_s_9ts,1804
|
241
241
|
flwr/server/criterion.py,sha256=G4e-6B48Pc7d5rmGVUpIzNKb6UF88O3VmTRuUltgjzM,1061
|
242
|
-
flwr/server/fleet_event_log_interceptor.py,sha256=
|
242
|
+
flwr/server/fleet_event_log_interceptor.py,sha256=gtVPr2yQp3U2GnabIdFnuok18VerEcidKj1lKmDYGoY,3950
|
243
243
|
flwr/server/grid/__init__.py,sha256=aWZHezoR2UGMJISB_gPMCm2N_2GSbm97A3lAp7ruhRQ,888
|
244
244
|
flwr/server/grid/grid.py,sha256=naGCYt5J6dnmUvrcGkdNyKPe3MBd-0awGm1ALmgahqY,6625
|
245
|
-
flwr/server/grid/grpc_grid.py,sha256=
|
245
|
+
flwr/server/grid/grpc_grid.py,sha256=2AL1Niz77cOWGX0e7Y9eJFpOK962tDqyn8QQyjSN0qM,13735
|
246
246
|
flwr/server/grid/inmemory_grid.py,sha256=RjejYT-d-hHuTs1KSs_5wvOdAWKLus8w5_UAcnGt4iw,6168
|
247
247
|
flwr/server/history.py,sha256=cCkFhBN4GoHsYYNk5GG1Y089eKJh2DH_ZJbYPwLaGyk,5026
|
248
248
|
flwr/server/run_serverapp.py,sha256=v0p6jXj2dFxlRUdoEeF1mnaFd9XRQi6dZCflPY6d3qI,2063
|
@@ -287,7 +287,7 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=iSf0mbBAlig7G6
|
|
287
287
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OsS-6GgCIzMMZDVu5Y-OKjynHVUrpdc_5OrtuB-IbU0,5174
|
288
288
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=ahDJJ1e-lDxBpeBMgPk7YZt2wB38_QltcpOC0gLbpFs,758
|
289
289
|
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=X7-z4oReIH5ghMfmMXML3SSpa2bhRsuIvt2OZs82BUk,8675
|
290
|
-
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=
|
290
|
+
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=9_RaYWMqFdpFi8QcE7Nv8-pRjWJ2dLHxezrwhd1tAYk,6845
|
291
291
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=fHsRV0KvJ8HtgSA4_YBsEzuhJLjO8p6xx4aCY2oE1p4,731
|
292
292
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=k_okVvuvbQgnBAWtXpOf0UrXcMQmRZtKKTS-as1xjig,8667
|
293
293
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=Lzc93nA7tDqoy-zRUaPG316oqFiZX1HUCL5ELaXY_xw,735
|
@@ -305,7 +305,7 @@ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=E699Ak0jMF3N7i1SIeFRu
|
|
305
305
|
flwr/server/superlink/linkstate/utils.py,sha256=IeLh7iGRCHU5MEWOl7iriaSE4L__8GWOa2OleXadK5M,15444
|
306
306
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
307
307
|
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=zcvzDhCAnlFxAwCiJUHNm6IE7-rk5jeZqSmPgjEY3AU,2307
|
308
|
-
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=
|
308
|
+
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=7oOFTjS5uSvdH0LSw-mDYulDMSItEM_QmXFQv_6ZjOU,18228
|
309
309
|
flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
|
310
310
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=VqWKxjpd4bCgPFKsgtIZPk9YcG0kc1EEmr5k20EKty4,2205
|
311
311
|
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=m1T1zvEn81jlfx9hVTqmeWxAu6APCS2YW8l5O0OQvhU,7724
|
@@ -347,11 +347,11 @@ flwr/supercore/utils.py,sha256=ebuHMbeA8eXisX0oMPqBK3hk7uVnIE_yiqWVz8YbkpQ,1324
|
|
347
347
|
flwr/superexec/__init__.py,sha256=YFqER0IJc1XEWfsX6AxZ9LSRq0sawPYrNYki-brvTIc,715
|
348
348
|
flwr/superexec/app.py,sha256=U2jjOHb2LGWoU7vrl9_czTzre9O2mPxu3CPGUZ86sK4,1465
|
349
349
|
flwr/superexec/deployment.py,sha256=cFxhFom-0zv93HLNjNcUdBy3Sf6JwshRoXPQtcZunF0,6797
|
350
|
-
flwr/superexec/exec_event_log_interceptor.py,sha256=
|
350
|
+
flwr/superexec/exec_event_log_interceptor.py,sha256=bHBpjRDh-GgLxELNP9ofES7hCEAR_M78wuJZ06vXRLg,5942
|
351
351
|
flwr/superexec/exec_grpc.py,sha256=D7xPHEXjW4SXMb9_dWNZhbFFxUeKr8zE67LITZQbHU8,4148
|
352
|
-
flwr/superexec/exec_license_interceptor.py,sha256=
|
352
|
+
flwr/superexec/exec_license_interceptor.py,sha256=rpnQmHE9FR11EJ3Lwd4_ducvlSHj5hS_SHAMbbZwXlk,3328
|
353
353
|
flwr/superexec/exec_servicer.py,sha256=c0nwdFBiS6CbKrRA7ffOpsgASOLeaRV_ICwxDfxNGAg,12498
|
354
|
-
flwr/superexec/exec_user_auth_interceptor.py,sha256=
|
354
|
+
flwr/superexec/exec_user_auth_interceptor.py,sha256=InqJo9QQu2QQYYusxtmb3EtKdvJECQ1xtvwy5DVF-c0,6196
|
355
355
|
flwr/superexec/executor.py,sha256=LaErHRJvNggjWV6FI6eajgKfnwOvSv2UqzFH253yDro,3265
|
356
356
|
flwr/superexec/simulation.py,sha256=62rSLcS-1wnMsMsafSQuIDLs5ZS6Ail1spkZ-alNNTg,4156
|
357
357
|
flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
@@ -364,12 +364,12 @@ flwr/supernode/nodestate/in_memory_nodestate.py,sha256=LF3AbaW0bcZHY5yKWwUJSU2RZ
|
|
364
364
|
flwr/supernode/nodestate/nodestate.py,sha256=kkGFxYnLIwT4-UmlPnf6HvAUpPey2urUNrweGybAIY4,6398
|
365
365
|
flwr/supernode/nodestate/nodestate_factory.py,sha256=UYTDCcwK_baHUmkzkJDxL0UEqvtTfOMlQRrROMCd0Xo,1430
|
366
366
|
flwr/supernode/runtime/__init__.py,sha256=JQdqd2EMTn-ORMeTvewYYh52ls0YKP68jrps1qioxu4,718
|
367
|
-
flwr/supernode/runtime/run_clientapp.py,sha256=
|
367
|
+
flwr/supernode/runtime/run_clientapp.py,sha256=VcgRgPhrefAFpcAMfwCFSVa3HJsrlca8PNmeJD0on-k,8668
|
368
368
|
flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca8gxdEo,717
|
369
369
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
|
370
|
-
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=
|
370
|
+
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=OclO38I6NhKwM2ZnHz9NjrxW4RA4_v8M4GkLzsReG2c,9477
|
371
371
|
flwr/supernode/start_client_internal.py,sha256=_ZqSfL_j4qn6Cg-P6sv3k_n1ZG62J_teokBxnWrXrPE,18772
|
372
|
-
flwr_nightly-1.20.0.
|
373
|
-
flwr_nightly-1.20.0.
|
374
|
-
flwr_nightly-1.20.0.
|
375
|
-
flwr_nightly-1.20.0.
|
372
|
+
flwr_nightly-1.20.0.dev20250717.dist-info/METADATA,sha256=VlPfht2YzCaqiIBeDUy6f8p4AHm88CNaVCeEh8tGhMA,15966
|
373
|
+
flwr_nightly-1.20.0.dev20250717.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
374
|
+
flwr_nightly-1.20.0.dev20250717.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
|
375
|
+
flwr_nightly-1.20.0.dev20250717.dist-info/RECORD,,
|
{flwr_nightly-1.20.0.dev20250716.dist-info → flwr_nightly-1.20.0.dev20250717.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|