flwr-nightly 1.23.0.dev20251007__py3-none-any.whl → 1.23.0.dev20251008__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/cli/auth_plugin/__init__.py +7 -3
- flwr/cli/log.py +2 -2
- flwr/cli/login/login.py +4 -13
- flwr/cli/ls.py +2 -2
- flwr/cli/pull.py +2 -2
- flwr/cli/run/run.py +2 -2
- flwr/cli/stop.py +2 -2
- flwr/cli/supernode/ls.py +2 -2
- flwr/cli/utils.py +28 -44
- flwr/client/grpc_rere_client/connection.py +6 -4
- flwr/client/grpc_rere_client/{client_interceptor.py → node_auth_client_interceptor.py} +2 -2
- flwr/client/rest_client/connection.py +7 -1
- flwr/common/constant.py +10 -0
- flwr/proto/fleet_pb2.py +22 -22
- flwr/proto/fleet_pb2.pyi +4 -1
- flwr/proto/node_pb2.py +1 -1
- flwr/server/app.py +32 -31
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +8 -4
- flwr/server/superlink/fleet/grpc_rere/{server_interceptor.py → node_auth_server_interceptor.py} +18 -37
- flwr/server/superlink/fleet/message_handler/message_handler.py +1 -1
- flwr/server/superlink/fleet/vce/vce_api.py +7 -1
- flwr/server/superlink/linkstate/in_memory_linkstate.py +39 -27
- flwr/server/superlink/linkstate/linkstate.py +1 -1
- flwr/server/superlink/linkstate/sqlite_linkstate.py +37 -21
- flwr/server/utils/validator.py +2 -3
- flwr/superlink/auth_plugin/__init__.py +29 -0
- flwr/superlink/servicer/control/control_grpc.py +9 -7
- flwr/superlink/servicer/control/control_servicer.py +34 -46
- {flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/METADATA +1 -1
- {flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/RECORD +32 -32
- {flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/entry_points.txt +0 -0
@@ -85,7 +85,7 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
85
85
|
ffs_factory: FfsFactory,
|
86
86
|
objectstore_factory: ObjectStoreFactory,
|
87
87
|
is_simulation: bool,
|
88
|
-
authn_plugin:
|
88
|
+
authn_plugin: ControlAuthnPlugin,
|
89
89
|
artifact_provider: Optional[ArtifactProvider] = None,
|
90
90
|
) -> None:
|
91
91
|
self.linkstate_factory = linkstate_factory
|
@@ -111,7 +111,8 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
111
111
|
)
|
112
112
|
return StartRunResponse()
|
113
113
|
|
114
|
-
flwr_aid = shared_account_info.get().flwr_aid
|
114
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
115
|
+
_check_flwr_aid_exists(flwr_aid, context)
|
115
116
|
override_config = user_config_from_proto(request.override_config)
|
116
117
|
federation_options = config_record_from_proto(request.federation_options)
|
117
118
|
fab_file = request.fab.content
|
@@ -185,12 +186,9 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
185
186
|
if not run:
|
186
187
|
context.abort(grpc.StatusCode.NOT_FOUND, RUN_ID_NOT_FOUND_MESSAGE)
|
187
188
|
|
188
|
-
#
|
189
|
-
|
190
|
-
|
191
|
-
_check_flwr_aid_in_run(
|
192
|
-
flwr_aid=flwr_aid, run=cast(Run, run), context=context
|
193
|
-
)
|
189
|
+
# Check if `flwr_aid` matches the run's `flwr_aid`
|
190
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
191
|
+
_check_flwr_aid_in_run(flwr_aid=flwr_aid, run=cast(Run, run), context=context)
|
194
192
|
|
195
193
|
after_timestamp = request.after_timestamp + 1e-6
|
196
194
|
while context.is_active():
|
@@ -226,20 +224,11 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
226
224
|
|
227
225
|
# Build a set of run IDs for `flwr ls --runs`
|
228
226
|
if not request.HasField("run_id"):
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
context.abort(
|
235
|
-
grpc.StatusCode.PERMISSION_DENIED,
|
236
|
-
"️⛔️ Account authentication is enabled, but `flwr_aid` is None",
|
237
|
-
)
|
238
|
-
run_ids = state.get_run_ids(flwr_aid=flwr_aid)
|
239
|
-
else:
|
240
|
-
# If no `run_id` is specified and no account auth is enabled,
|
241
|
-
# return all run IDs
|
242
|
-
run_ids = state.get_run_ids(None)
|
227
|
+
# If no `run_id` is specified and account auth is enabled,
|
228
|
+
# return run IDs for the authenticated account
|
229
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
230
|
+
_check_flwr_aid_exists(flwr_aid, context)
|
231
|
+
run_ids = state.get_run_ids(flwr_aid=flwr_aid)
|
243
232
|
# Build a set of run IDs for `flwr ls --run-id <run_id>`
|
244
233
|
else:
|
245
234
|
# Retrieve run ID and run
|
@@ -249,14 +238,11 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
249
238
|
# Exit if `run_id` not found
|
250
239
|
if not run:
|
251
240
|
context.abort(grpc.StatusCode.NOT_FOUND, RUN_ID_NOT_FOUND_MESSAGE)
|
241
|
+
raise grpc.RpcError() # This line is unreachable
|
252
242
|
|
253
|
-
#
|
254
|
-
|
255
|
-
|
256
|
-
flwr_aid = shared_account_info.get().flwr_aid
|
257
|
-
_check_flwr_aid_in_run(
|
258
|
-
flwr_aid=flwr_aid, run=cast(Run, run), context=context
|
259
|
-
)
|
243
|
+
# Check if `flwr_aid` matches the run's `flwr_aid`
|
244
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
245
|
+
_check_flwr_aid_in_run(flwr_aid=flwr_aid, run=run, context=context)
|
260
246
|
|
261
247
|
run_ids = {run_id}
|
262
248
|
|
@@ -278,13 +264,11 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
278
264
|
# Exit if `run_id` not found
|
279
265
|
if not run:
|
280
266
|
context.abort(grpc.StatusCode.NOT_FOUND, RUN_ID_NOT_FOUND_MESSAGE)
|
267
|
+
raise grpc.RpcError() # This line is unreachable
|
281
268
|
|
282
|
-
#
|
283
|
-
|
284
|
-
|
285
|
-
_check_flwr_aid_in_run(
|
286
|
-
flwr_aid=flwr_aid, run=cast(Run, run), context=context
|
287
|
-
)
|
269
|
+
# Check if `flwr_aid` matches the run's `flwr_aid`
|
270
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
271
|
+
_check_flwr_aid_in_run(flwr_aid=flwr_aid, run=run, context=context)
|
288
272
|
|
289
273
|
run_status = state.get_run_status({run_id})[run_id]
|
290
274
|
if run_status.status == Status.FINISHED:
|
@@ -392,10 +376,9 @@ class ControlServicer(control_pb2_grpc.ControlServicer):
|
|
392
376
|
grpc.StatusCode.FAILED_PRECONDITION, PULL_UNFINISHED_RUN_MESSAGE
|
393
377
|
)
|
394
378
|
|
395
|
-
# Check if `flwr_aid` matches the run's `flwr_aid`
|
396
|
-
|
397
|
-
|
398
|
-
_check_flwr_aid_in_run(flwr_aid=flwr_aid, run=run, context=context)
|
379
|
+
# Check if `flwr_aid` matches the run's `flwr_aid`
|
380
|
+
flwr_aid = shared_account_info.get().flwr_aid
|
381
|
+
_check_flwr_aid_in_run(flwr_aid=flwr_aid, run=run, context=context)
|
399
382
|
|
400
383
|
# Call artifact provider
|
401
384
|
download_url = self.artifact_provider.get_url(run_id)
|
@@ -494,24 +477,29 @@ def _create_list_runs_response(
|
|
494
477
|
)
|
495
478
|
|
496
479
|
|
497
|
-
def
|
498
|
-
flwr_aid: Optional[str],
|
480
|
+
def _check_flwr_aid_exists(
|
481
|
+
flwr_aid: Optional[str], context: grpc.ServicerContext
|
499
482
|
) -> None:
|
500
|
-
"""Guard clause to check if `flwr_aid`
|
501
|
-
# `flwr_aid` must not be None. Abort if it is None.
|
483
|
+
"""Guard clause to check if `flwr_aid` exists."""
|
502
484
|
if flwr_aid is None:
|
503
485
|
context.abort(
|
504
486
|
grpc.StatusCode.PERMISSION_DENIED,
|
505
|
-
"️⛔️
|
487
|
+
"️⛔️ Failed to fetch the account information.",
|
506
488
|
)
|
489
|
+
raise RuntimeError # This line is unreachable
|
490
|
+
|
507
491
|
|
492
|
+
def _check_flwr_aid_in_run(
|
493
|
+
flwr_aid: Optional[str], run: Run, context: grpc.ServicerContext
|
494
|
+
) -> None:
|
495
|
+
"""Guard clause to check if `flwr_aid` matches the run's `flwr_aid`."""
|
496
|
+
_check_flwr_aid_exists(flwr_aid, context)
|
508
497
|
# `run.flwr_aid` must not be an empty string. Abort if it is empty.
|
509
498
|
run_flwr_aid = run.flwr_aid
|
510
499
|
if not run_flwr_aid:
|
511
500
|
context.abort(
|
512
501
|
grpc.StatusCode.PERMISSION_DENIED,
|
513
|
-
"⛔️
|
514
|
-
"with a `flwr_aid`.",
|
502
|
+
"⛔️ Run is not associated with a `flwr_aid`.",
|
515
503
|
)
|
516
504
|
|
517
505
|
# Exit if `flwr_aid` does not match the run's `flwr_aid`
|
{flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.23.0.
|
3
|
+
Version: 1.23.0.dev20251008
|
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.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/RECORD
RENAMED
@@ -5,7 +5,7 @@ flwr/app/exception.py,sha256=WX45Yviu_CmYrYd8JHNjRkSsb-g4Br7XvVLKuVxwSdI,1298
|
|
5
5
|
flwr/app/metadata.py,sha256=rdMBn0zhIOYmCvmGENQWSQqDwcxwsMJzCle4PQdlc_Y,7331
|
6
6
|
flwr/cli/__init__.py,sha256=EfMGmHoobET6P2blBt_eOByXL8299MgFfB7XNdaPQ6I,720
|
7
7
|
flwr/cli/app.py,sha256=xHbxFpdgQMMQojntdXVVijS2vWq4X7iPFbSiIuzFCyo,2457
|
8
|
-
flwr/cli/auth_plugin/__init__.py,sha256=
|
8
|
+
flwr/cli/auth_plugin/__init__.py,sha256=qpebWV9uLpx72_J8yTVgT1DlH2Y9MK_RraDoTYEqv-w,1359
|
9
9
|
flwr/cli/auth_plugin/auth_plugin.py,sha256=LK-DYGk8J85Mjsbc5BX9ueDVOOPcFSo9cKWJX25X-QI,3050
|
10
10
|
flwr/cli/auth_plugin/noop_auth_plugin.py,sha256=KRyxoYtrzOWAIlSuXznli9gqL-rmHSG3zESmYSCQ_rg,2093
|
11
11
|
flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=9Oyd23g-2vgsXhRQdqG9JNocPylGXZM4UVPBB6l0GXA,5147
|
@@ -15,10 +15,10 @@ flwr/cli/config_utils.py,sha256=o75PJzgCTl9FdFo_I9OjCB02-ykK0VWZdhIAeR0A8QA,9130
|
|
15
15
|
flwr/cli/constant.py,sha256=LtxufmhkEqNWQ9doWbbbkUKa12vN_RK_Of5u0So-GHA,1729
|
16
16
|
flwr/cli/example.py,sha256=SNTorkKPrx1rOryGREUyZu8TcOc1-vFv1zEddaysdY0,2216
|
17
17
|
flwr/cli/install.py,sha256=Jr883qR7qssVpUr3hEOEcLK-dfW67Rsve3lZchjA9RU,8180
|
18
|
-
flwr/cli/log.py,sha256=
|
18
|
+
flwr/cli/log.py,sha256=3qVYY30QqchfnKRTeeRw2ojBUj_nwvfnZkdBr4lmjpc,6541
|
19
19
|
flwr/cli/login/__init__.py,sha256=B1SXKU3HCQhWfFDMJhlC7FOl8UsvH4mxysxeBnrfyUE,800
|
20
|
-
flwr/cli/login/login.py,sha256=
|
21
|
-
flwr/cli/ls.py,sha256=
|
20
|
+
flwr/cli/login/login.py,sha256=XeA6K9rZn3CBvtiFP3XWTAk7s8766BCqHvCsO_tJEuY,4558
|
21
|
+
flwr/cli/ls.py,sha256=VHF9xb4q0dOQwFZE_XmUhX_cw27eKyUvlIyxNx-crkw,11095
|
22
22
|
flwr/cli/new/__init__.py,sha256=QA1E2QtzPvFCjLTUHnFnJbufuFiGyT_0Y53Wpbvg1F0,790
|
23
23
|
flwr/cli/new/new.py,sha256=nIuUrQSGDjI4kqnymlq-rOT0RU3AHwZrat3abqHhCwM,10598
|
24
24
|
flwr/cli/new/templates/__init__.py,sha256=FpjWCfIySU2DB4kh0HOXLAjlZNNFDTVU4w3HoE2TzcI,725
|
@@ -82,24 +82,24 @@ flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl,sha256=ZWW31QEd
|
|
82
82
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=Elh5bUTVBNRG1aDTrgQcZgjfrXcIaVXH00UduNJDZ2U,1484
|
83
83
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=g7SYiAJr6Uhwg4ZsQI2qsLVeizU8vd0CzR0_jka99_A,1508
|
84
84
|
flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl,sha256=yAJ9jL2q6U_XXYwwUT9fpIqIKFuQR_Kgg82GpWfQ5J8,1661
|
85
|
-
flwr/cli/pull.py,sha256=
|
85
|
+
flwr/cli/pull.py,sha256=sT3-f2zf7JcXfB-pHWLXmENrOzJeUDBoqK3oruJxzao,3352
|
86
86
|
flwr/cli/run/__init__.py,sha256=RPyB7KbYTFl6YRiilCch6oezxrLQrl1kijV7BMGkLbA,790
|
87
|
-
flwr/cli/run/run.py,sha256=
|
88
|
-
flwr/cli/stop.py,sha256=
|
87
|
+
flwr/cli/run/run.py,sha256=ED1mDmO1PnSAgtVOrCeWwzwPm6t3aFYSs3Rh36BJzqk,8161
|
88
|
+
flwr/cli/stop.py,sha256=W7ynTYLm0-_1nC5Il4IaZTji6A3GCCm_0R-HQUudAsI,4988
|
89
89
|
flwr/cli/supernode/__init__.py,sha256=DVrTcyCg9NFll6glPLAAA6WPi7boxu6pFY_PRqIyHMk,893
|
90
90
|
flwr/cli/supernode/create.py,sha256=MloB7Rr-CE_37jH5lFoM8OsaSPUzWt0TSSB_GMwND5E,1959
|
91
91
|
flwr/cli/supernode/delete.py,sha256=_oCfBnoeUFPLEq_1EAqQp_CHEdzIEP2N_vHZsFTgWn0,1958
|
92
|
-
flwr/cli/supernode/ls.py,sha256=
|
93
|
-
flwr/cli/utils.py,sha256=
|
92
|
+
flwr/cli/supernode/ls.py,sha256=exeu-9fpkh27k2oyYNNT7uDhHgf8dlX0TR6WwMV8KIQ,8538
|
93
|
+
flwr/cli/utils.py,sha256=cdqtT8KrgaH20z2GWZjt2E26UTO6jfkp9qmmH-08hrs,13640
|
94
94
|
flwr/client/__init__.py,sha256=Q0MIF442vLIGSkcwHKq_sIfECQynLARJrumAscq2Q6E,1241
|
95
95
|
flwr/client/client.py,sha256=3HAchxvknKG9jYbB7swNyDj-e5vUWDuMKoLvbT7jCVM,7895
|
96
96
|
flwr/client/dpfedavg_numpy_client.py,sha256=3hul067cT2E9jBhzp7bFnFAZ_D2nWcIUEdHYE05FpzU,7404
|
97
97
|
flwr/client/grpc_adapter_client/__init__.py,sha256=RQWP5mFPROLHKgombiRvPXVWSoVrQ81wvZm0-lOuuBA,742
|
98
98
|
flwr/client/grpc_adapter_client/connection.py,sha256=JGv02EjSOAG1E5BRUD4lwXc1LLiYJ0OhInvp31qx1cU,4404
|
99
99
|
flwr/client/grpc_rere_client/__init__.py,sha256=i7iS0Lt8B7q0E2L72e4F_YrKm6ClRKnd71PNA6PW2O0,752
|
100
|
-
flwr/client/grpc_rere_client/
|
101
|
-
flwr/client/grpc_rere_client/connection.py,sha256=OSRsZxeDoGE2avTStQMTV4z2o5ezO-nBrwy6qvCs430,12977
|
100
|
+
flwr/client/grpc_rere_client/connection.py,sha256=SaBuUcqF6r6ieT1sv0Tg5Isqmpeb8D184R0ayLvCScQ,13091
|
102
101
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=dLGB5GriszAmtgvuFGuz_F7rIwpzLfDxhJ7T3Un-Ce0,6694
|
102
|
+
flwr/client/grpc_rere_client/node_auth_client_interceptor.py,sha256=EdTyb5ThFrpkeyXy9_nTKH7E9GnfAdXjcNZ_-uxt1AA,2410
|
103
103
|
flwr/client/message_handler/__init__.py,sha256=0lyljDVqre3WljiZbPcwCCf8GiIaSVI_yo_ylEyPwSE,719
|
104
104
|
flwr/client/message_handler/message_handler.py,sha256=X9SXX6et97Lw9_DGD93HKsEBGNjXClcFgc_5aLK0oiU,6541
|
105
105
|
flwr/client/mod/__init__.py,sha256=AtV4Y5UGuYqJdTg7bJ--KtfOZUYLGDPMy616LvtP5W4,1151
|
@@ -112,7 +112,7 @@ flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=Ib-HlhZOXB6-hAWGZ0Ip
|
|
112
112
|
flwr/client/mod/utils.py,sha256=FUgD2TfcWqSeF6jUKZ4i6Ke56U4Nrv85AeVb93s6R9g,1201
|
113
113
|
flwr/client/numpy_client.py,sha256=Qq6ghsIAop2slKqAfgiI5NiHJ4LIxGmrik3Ror4_XVc,9581
|
114
114
|
flwr/client/rest_client/__init__.py,sha256=MBiuK62hj439m9rtwSwI184Hth6Tt5GbmpNMyl3zkZY,735
|
115
|
-
flwr/client/rest_client/connection.py,sha256=
|
115
|
+
flwr/client/rest_client/connection.py,sha256=y7fhRoMsgHNKfMGHX1IE_uKgseEuD1eR4MgEmw3aXwE,15971
|
116
116
|
flwr/client/run_info_store.py,sha256=MaJ3UQ-07hWtK67wnWu0zR29jrk0fsfgJX506dvEOfE,4042
|
117
117
|
flwr/client/typing.py,sha256=Jw3rawDzI_-ZDcRmEQcs5gZModY7oeQlEeltYsdOhlU,1048
|
118
118
|
flwr/clientapp/__init__.py,sha256=dsXH29kvCk1meJj9UYMCIak8zehuuhVp0uDJ2COU_1c,829
|
@@ -126,7 +126,7 @@ flwr/common/__init__.py,sha256=5GCLVk399Az_rTJHNticRlL0Sl_oPw_j5_LuFKfX7-M,4171
|
|
126
126
|
flwr/common/address.py,sha256=9JucdTwlc-jpeJkRKeUboZoacUtErwSVtnDR9kAtLqE,4119
|
127
127
|
flwr/common/args.py,sha256=Nq2u4yePbkSY0CWFamn0hZY6Rms8G1xYDeDGIcLIITE,5849
|
128
128
|
flwr/common/config.py,sha256=glcZDjco-amw1YfQcYTFJ4S1pt9APoexT-mf1QscuHs,13960
|
129
|
-
flwr/common/constant.py,sha256=
|
129
|
+
flwr/common/constant.py,sha256=WD-qFz_JiotwVS0VWfepNjpmGEf2QV2bsNCAkeAIJfI,9400
|
130
130
|
flwr/common/context.py,sha256=Be8obQR_OvEDy1OmshuUKxGRQ7Qx89mf5F4xlhkR10s,2407
|
131
131
|
flwr/common/date.py,sha256=1ZT2cRSpC2DJqprOVTLXYCR_O2_OZR0zXO_brJ3LqWc,1554
|
132
132
|
flwr/common/differential_privacy.py,sha256=FdlpdpPl_H_2HJa8CQM1iCUGBBQ5Dc8CzxmHERM-EoE,6148
|
@@ -203,8 +203,8 @@ flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
|
|
203
203
|
flwr/proto/fab_pb2.pyi,sha256=AMXpiDK0fo3nZWjxsC2E4otSaVjyQbU7iiWKrsSZavs,2395
|
204
204
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
205
205
|
flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
206
|
-
flwr/proto/fleet_pb2.py,sha256=
|
207
|
-
flwr/proto/fleet_pb2.pyi,sha256=
|
206
|
+
flwr/proto/fleet_pb2.py,sha256=xGnNGmBbPds6LeB34HN8_vy4U1oW25-w-r-C6xNpoRo,5190
|
207
|
+
flwr/proto/fleet_pb2.pyi,sha256=btn0ertRlY5LenpN-YoiqA4X8NQgbkZsAJZQWN8Tia0,7939
|
208
208
|
flwr/proto/fleet_pb2_grpc.py,sha256=NmzrDYxyM3MQNh3vwYczQNuFimZz3prU6ke3E-fKk_g,17539
|
209
209
|
flwr/proto/fleet_pb2_grpc.pyi,sha256=PDERhzOrBCMAytTLS65Qck8A45bTIYni7Lotq6_I0sM,4721
|
210
210
|
flwr/proto/grpcadapter_pb2.py,sha256=PJ8DtfeV29g_y4Z3aNZlSZocLqSxeLmTsYCdOZDYCiE,1843
|
@@ -223,7 +223,7 @@ flwr/proto/message_pb2.py,sha256=giymevXYEUdpIO-3A0XKsmRabXW1xSz0sIo5oOlbQ8Y,519
|
|
223
223
|
flwr/proto/message_pb2.pyi,sha256=EzXZHy2mtabofrd_ZgKSI6M4QH-soIaRZIZBPwBGPv0,11260
|
224
224
|
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
225
225
|
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
226
|
-
flwr/proto/node_pb2.py,sha256=
|
226
|
+
flwr/proto/node_pb2.py,sha256=QVVaA_zxdQE_g_9iu45p9bUN6rABViJF9Tg-E0EOahg,1534
|
227
227
|
flwr/proto/node_pb2.pyi,sha256=kmLGmDIqudRtveUop_uVU6w696ahPB_b-O94k3HQIpU,2226
|
228
228
|
flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
229
229
|
flwr/proto/node_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
@@ -249,7 +249,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
249
249
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
250
250
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
251
251
|
flwr/server/__init__.py,sha256=LQQHiuL2jy7TpNaKastRdGsexlxSt5ZWAQNVqitDnrY,1598
|
252
|
-
flwr/server/app.py,sha256=
|
252
|
+
flwr/server/app.py,sha256=2BAooGt3mKL9scCA0adFVKTps1J0WDmvHpUzUSI9qP0,30328
|
253
253
|
flwr/server/client_manager.py,sha256=5jCGavVli7XdupvWWo7ru3PdFTlRU8IGvHFSSoUVLRs,6227
|
254
254
|
flwr/server/client_proxy.py,sha256=sv0E9AldBYOvc3pusqFh-GnyreeMfsXQ1cuTtxTq_wY,2399
|
255
255
|
flwr/server/compat/__init__.py,sha256=0IsttWvY15qO98_1GyzVC-vR1e_ZPXOdu2qUlOkYMPE,886
|
@@ -305,22 +305,22 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=KouR9PUcrPmMtoLooF4O
|
|
305
305
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=iSf0mbBAlig7G6subQwBSVjcUCgSihONKdZ1RmQPTOk,4887
|
306
306
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OsS-6GgCIzMMZDVu5Y-OKjynHVUrpdc_5OrtuB-IbU0,5174
|
307
307
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=ahDJJ1e-lDxBpeBMgPk7YZt2wB38_QltcpOC0gLbpFs,758
|
308
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
309
|
-
flwr/server/superlink/fleet/grpc_rere/
|
308
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=xkmbYjzt7IZCSvtjgyZVTC7Mm18t7pUB6OUxN_Th8nU,8847
|
309
|
+
flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py,sha256=TNK_0-Cpt_s9qTVjm9imke2sF_o_Vb5c-4WDnVg5UGA,5998
|
310
310
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=fHsRV0KvJ8HtgSA4_YBsEzuhJLjO8p6xx4aCY2oE1p4,731
|
311
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256
|
311
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=-ztViMFASoqlokZp80iQ37svtHUzcp_PagYRD0A7kdc,8692
|
312
312
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=Lzc93nA7tDqoy-zRUaPG316oqFiZX1HUCL5ELaXY_xw,735
|
313
313
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=mxWKwGpgHPqd7cGFqd2ASnR-KZduIzLfT-d2yiNCqQ0,9257
|
314
314
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=XOKbAWOzlCqEOQ3M2cBYkH7HKA7PxlbCJMunt-ty-DY,784
|
315
315
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=PPH89Yqd1XKm-sRJN6R0WQlKT_b4v54Kzl2yzHAFzM8,1437
|
316
316
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=cSrHZ5SjCCvy4vI0pgsyjtx3cDMuMQve8KcKkK-dWWo,2196
|
317
317
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=cBZYTmfiAsb1HmVUmOQXYLU-UJmJTFWkj1wW4RYRDuc,7218
|
318
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
318
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=DRnRXM8Zr49Qt5F1p39ictquXUxO8wcvV5_Sv5-YzJ4,13108
|
319
319
|
flwr/server/superlink/linkstate/__init__.py,sha256=OtsgvDTnZLU3k0sUbkHbqoVwW6ql2FDmb6uT6DbNkZo,1064
|
320
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
321
|
-
flwr/server/superlink/linkstate/linkstate.py,sha256=
|
320
|
+
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=2VZLVeJqvxx03ICjmHT_csUqpaMTrQXdBCfjswFGwo8,28677
|
321
|
+
flwr/server/superlink/linkstate/linkstate.py,sha256=Oo3RLrtQMuS_QMn8IQ-dQg7Mye-HHMMwKFV2AAfxFAw,13306
|
322
322
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=8RlosqSpKOoD_vhUUQPY0jtE3A84GeF96Z7sWNkRRcA,2069
|
323
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
323
|
+
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=3gfHo3x2yW9ZVIjK8Jqo0fJGFdjIotly3NYmOcb97kE,46544
|
324
324
|
flwr/server/superlink/linkstate/utils.py,sha256=IeLh7iGRCHU5MEWOl7iriaSE4L__8GWOa2OleXadK5M,15444
|
325
325
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
326
326
|
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=-I7kBbr4w4ZVYwBZoAIle-xHKthFnZrsVfxa6WR8uxA,2310
|
@@ -332,7 +332,7 @@ flwr/server/superlink/utils.py,sha256=zXmyU2o535b9dgz-TvFklzfuQk4irNnMtiK8vT4Dm1
|
|
332
332
|
flwr/server/typing.py,sha256=LvO6gq7H6TAWhA9JFx0WyqHxU7FycyvhSsLjBLPgpts,1011
|
333
333
|
flwr/server/utils/__init__.py,sha256=U4gM84-uUFddarODDQkO6SjNUuGhFcsHJZMjSEbezkU,884
|
334
334
|
flwr/server/utils/tensorboard.py,sha256=3z3MeF0cu_U6ghNgRd0UQ5bunyDQKxCLpIpEdGMoCJ0,5466
|
335
|
-
flwr/server/utils/validator.py,sha256=
|
335
|
+
flwr/server/utils/validator.py,sha256=ZDHWtDa2yFzicfUStIIzno8AZEeTCwERjBbuv_StAMs,3638
|
336
336
|
flwr/server/workflow/__init__.py,sha256=N8G_xCBVrlV39Eov56bwImKMUTsqsaEoTCFYIQ0q8Bg,902
|
337
337
|
flwr/server/workflow/constant.py,sha256=4t2MTvOJUlByJfuD9yZjl8Xn5SwBJQDBi15DphztXe8,1082
|
338
338
|
flwr/server/workflow/default_workflows.py,sha256=RlD26dXbSksY-23f3ZspnN1YU1DOhDYOchMTEQvqFrM,13900
|
@@ -406,16 +406,16 @@ flwr/supercore/utils.py,sha256=ebuHMbeA8eXisX0oMPqBK3hk7uVnIE_yiqWVz8YbkpQ,1324
|
|
406
406
|
flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
407
407
|
flwr/superlink/artifact_provider/__init__.py,sha256=pgZEcVPKRE874LSu3cgy0HbwSJBIpVy_HxQOmne4PAs,810
|
408
408
|
flwr/superlink/artifact_provider/artifact_provider.py,sha256=Gnlg2M2SOqCruji2B0U3ov68NJWKin9scmnWJTiSnNA,1267
|
409
|
-
flwr/superlink/auth_plugin/__init__.py,sha256=
|
409
|
+
flwr/superlink/auth_plugin/__init__.py,sha256=2INKscgltOxVMGqwuc7YyS2suR0mmBent0F5UA7ToBQ,2111
|
410
410
|
flwr/superlink/auth_plugin/auth_plugin.py,sha256=mKaR2HanhKHmVrcvGqTUv47ut458QgqVU6enU4myB7Y,3038
|
411
411
|
flwr/superlink/auth_plugin/noop_auth_plugin.py,sha256=BQ1v1jFZen7AHh6Gwr9arElW3e9aAAKgOO4zKikbd_4,3044
|
412
412
|
flwr/superlink/servicer/__init__.py,sha256=ZC-kILcUGeh6IxJsfu24cTzUqIGXmQfEKsGfhsnhBpM,717
|
413
413
|
flwr/superlink/servicer/control/__init__.py,sha256=qhUTMt_Mg4lxslCJYn5hDSrA-lXf5ya3617BT8kR-2Y,803
|
414
414
|
flwr/superlink/servicer/control/control_account_auth_interceptor.py,sha256=Tbi4WVfWlNsOO-NNbe9iLdYp0thkO5xisi5O8ebzuCs,6252
|
415
415
|
flwr/superlink/servicer/control/control_event_log_interceptor.py,sha256=5uBl6VcJlUOgCF0d4kmsmJc1Rs1qxyouaZv0-uH2axs,5969
|
416
|
-
flwr/superlink/servicer/control/control_grpc.py,sha256=
|
416
|
+
flwr/superlink/servicer/control/control_grpc.py,sha256=MRCaX4I2a5ogjKmhtFs6Mj-VdWemxL2h3gU9QbQmvCA,4183
|
417
417
|
flwr/superlink/servicer/control/control_license_interceptor.py,sha256=T3AzmRt-PPwyTq3hrdpmZHQd5_CpPOk7TtnFZrB-JRY,3349
|
418
|
-
flwr/superlink/servicer/control/control_servicer.py,sha256=
|
418
|
+
flwr/superlink/servicer/control/control_servicer.py,sha256=mus87XmRsJu_n2Qgm4lltxxvkeX5VkW2xG5HD9THcDY,18515
|
419
419
|
flwr/supernode/__init__.py,sha256=KgeCaVvXWrU3rptNR1y0oBp4YtXbAcrnCcJAiOoWkI4,707
|
420
420
|
flwr/supernode/cli/__init__.py,sha256=JuEMr0-s9zv-PEWKuLB9tj1ocNfroSyNJ-oyv7ati9A,887
|
421
421
|
flwr/supernode/cli/flower_supernode.py,sha256=7aBm0z03OU-npVd1onLCvUotyhSvlZLxAnFkGVMhZcw,8670
|
@@ -430,7 +430,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
|
|
430
430
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
|
431
431
|
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=nIHRu38EWK-rpNOkcgBRAAKwYQQWFeCwu0lkO7OPZGQ,10239
|
432
432
|
flwr/supernode/start_client_internal.py,sha256=Y9S1-QlO2WP6eo4JvWzIpfaCoh2aoE7bjEYyxNNnlyg,20777
|
433
|
-
flwr_nightly-1.23.0.
|
434
|
-
flwr_nightly-1.23.0.
|
435
|
-
flwr_nightly-1.23.0.
|
436
|
-
flwr_nightly-1.23.0.
|
433
|
+
flwr_nightly-1.23.0.dev20251008.dist-info/METADATA,sha256=v2GJDfsgn1KfcGY4ecjmYoEGrmOn9OHbjbo-lEMPfdQ,14559
|
434
|
+
flwr_nightly-1.23.0.dev20251008.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
435
|
+
flwr_nightly-1.23.0.dev20251008.dist-info/entry_points.txt,sha256=hxHD2ixb_vJFDOlZV-zB4Ao32_BQlL34ftsDh1GXv14,420
|
436
|
+
flwr_nightly-1.23.0.dev20251008.dist-info/RECORD,,
|
{flwr_nightly-1.23.0.dev20251007.dist-info → flwr_nightly-1.23.0.dev20251008.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|