flwr-nightly 1.8.0.dev20240323__py3-none-any.whl → 1.8.0.dev20240328__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/client/app.py +35 -24
- flwr/client/client_app.py +4 -4
- flwr/client/grpc_client/connection.py +2 -1
- flwr/client/message_handler/message_handler.py +3 -2
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +1 -1
- flwr/common/__init__.py +2 -0
- flwr/common/message.py +65 -20
- flwr/common/serde.py +8 -2
- flwr/proto/fleet_pb2.py +19 -15
- flwr/proto/fleet_pb2.pyi +28 -0
- flwr/proto/fleet_pb2_grpc.py +33 -0
- flwr/proto/fleet_pb2_grpc.pyi +10 -0
- flwr/proto/task_pb2.py +6 -6
- flwr/proto/task_pb2.pyi +8 -5
- flwr/server/compat/driver_client_proxy.py +25 -1
- flwr/server/driver/driver.py +6 -5
- flwr/server/superlink/driver/driver_servicer.py +6 -0
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +11 -1
- flwr/server/superlink/fleet/message_handler/message_handler.py +14 -0
- flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -4
- flwr/server/superlink/fleet/vce/vce_api.py +41 -25
- flwr/server/superlink/state/in_memory_state.py +38 -26
- flwr/server/superlink/state/sqlite_state.py +42 -21
- flwr/server/superlink/state/state.py +19 -0
- flwr/server/utils/validator.py +23 -9
- flwr/server/workflow/default_workflows.py +4 -4
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +5 -4
- flwr/simulation/ray_transport/ray_actor.py +6 -2
- flwr/simulation/ray_transport/ray_client_proxy.py +2 -2
- {flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/METADATA +1 -1
- {flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/RECORD +34 -34
- {flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/entry_points.txt +0 -0
flwr/server/utils/validator.py
CHANGED
|
@@ -31,13 +31,21 @@ def validate_task_ins_or_res(tasks_ins_res: Union[TaskIns, TaskRes]) -> List[str
|
|
|
31
31
|
if not tasks_ins_res.HasField("task"):
|
|
32
32
|
validation_errors.append("`task` does not set field `task`")
|
|
33
33
|
|
|
34
|
-
# Created/delivered/TTL
|
|
35
|
-
if
|
|
36
|
-
|
|
34
|
+
# Created/delivered/TTL/Pushed
|
|
35
|
+
if (
|
|
36
|
+
tasks_ins_res.task.created_at < 1711497600.0
|
|
37
|
+
): # unix timestamp of 27 March 2024 00h:00m:00s UTC
|
|
38
|
+
validation_errors.append(
|
|
39
|
+
"`created_at` must be a float that records the unix timestamp "
|
|
40
|
+
"in seconds when the message was created."
|
|
41
|
+
)
|
|
37
42
|
if tasks_ins_res.task.delivered_at != "":
|
|
38
43
|
validation_errors.append("`delivered_at` must be an empty str")
|
|
39
|
-
if tasks_ins_res.task.ttl
|
|
40
|
-
validation_errors.append("`ttl` must be
|
|
44
|
+
if tasks_ins_res.task.ttl <= 0:
|
|
45
|
+
validation_errors.append("`ttl` must be higher than zero")
|
|
46
|
+
if tasks_ins_res.task.pushed_at < 1711497600.0:
|
|
47
|
+
# unix timestamp of 27 March 2024 00h:00m:00s UTC
|
|
48
|
+
validation_errors.append("`pushed_at` is not a recent timestamp")
|
|
41
49
|
|
|
42
50
|
# TaskIns specific
|
|
43
51
|
if isinstance(tasks_ins_res, TaskIns):
|
|
@@ -66,8 +74,11 @@ def validate_task_ins_or_res(tasks_ins_res: Union[TaskIns, TaskRes]) -> List[str
|
|
|
66
74
|
# Content check
|
|
67
75
|
if tasks_ins_res.task.task_type == "":
|
|
68
76
|
validation_errors.append("`task_type` MUST be set")
|
|
69
|
-
if not
|
|
70
|
-
|
|
77
|
+
if not (
|
|
78
|
+
tasks_ins_res.task.HasField("recordset")
|
|
79
|
+
^ tasks_ins_res.task.HasField("error")
|
|
80
|
+
):
|
|
81
|
+
validation_errors.append("Either `recordset` or `error` MUST be set")
|
|
71
82
|
|
|
72
83
|
# Ancestors
|
|
73
84
|
if len(tasks_ins_res.task.ancestry) != 0:
|
|
@@ -106,8 +117,11 @@ def validate_task_ins_or_res(tasks_ins_res: Union[TaskIns, TaskRes]) -> List[str
|
|
|
106
117
|
# Content check
|
|
107
118
|
if tasks_ins_res.task.task_type == "":
|
|
108
119
|
validation_errors.append("`task_type` MUST be set")
|
|
109
|
-
if not
|
|
110
|
-
|
|
120
|
+
if not (
|
|
121
|
+
tasks_ins_res.task.HasField("recordset")
|
|
122
|
+
^ tasks_ins_res.task.HasField("error")
|
|
123
|
+
):
|
|
124
|
+
validation_errors.append("Either `recordset` or `error` MUST be set")
|
|
111
125
|
|
|
112
126
|
# Ancestors
|
|
113
127
|
if len(tasks_ins_res.task.ancestry) == 0:
|
|
@@ -21,7 +21,7 @@ from logging import INFO
|
|
|
21
21
|
from typing import Optional, cast
|
|
22
22
|
|
|
23
23
|
import flwr.common.recordset_compat as compat
|
|
24
|
-
from flwr.common import ConfigsRecord, Context, GetParametersIns, log
|
|
24
|
+
from flwr.common import DEFAULT_TTL, ConfigsRecord, Context, GetParametersIns, log
|
|
25
25
|
from flwr.common.constant import MessageType, MessageTypeLegacy
|
|
26
26
|
|
|
27
27
|
from ..compat.app_utils import start_update_client_manager_thread
|
|
@@ -127,7 +127,7 @@ def default_init_params_workflow(driver: Driver, context: Context) -> None:
|
|
|
127
127
|
message_type=MessageTypeLegacy.GET_PARAMETERS,
|
|
128
128
|
dst_node_id=random_client.node_id,
|
|
129
129
|
group_id="0",
|
|
130
|
-
ttl=
|
|
130
|
+
ttl=DEFAULT_TTL,
|
|
131
131
|
)
|
|
132
132
|
]
|
|
133
133
|
)
|
|
@@ -226,7 +226,7 @@ def default_fit_workflow( # pylint: disable=R0914
|
|
|
226
226
|
message_type=MessageType.TRAIN,
|
|
227
227
|
dst_node_id=proxy.node_id,
|
|
228
228
|
group_id=str(current_round),
|
|
229
|
-
ttl=
|
|
229
|
+
ttl=DEFAULT_TTL,
|
|
230
230
|
)
|
|
231
231
|
for proxy, fitins in client_instructions
|
|
232
232
|
]
|
|
@@ -306,7 +306,7 @@ def default_evaluate_workflow(driver: Driver, context: Context) -> None:
|
|
|
306
306
|
message_type=MessageType.EVALUATE,
|
|
307
307
|
dst_node_id=proxy.node_id,
|
|
308
308
|
group_id=str(current_round),
|
|
309
|
-
ttl=
|
|
309
|
+
ttl=DEFAULT_TTL,
|
|
310
310
|
)
|
|
311
311
|
for proxy, evalins in client_instructions
|
|
312
312
|
]
|
|
@@ -22,6 +22,7 @@ from typing import Dict, List, Optional, Set, Tuple, Union, cast
|
|
|
22
22
|
|
|
23
23
|
import flwr.common.recordset_compat as compat
|
|
24
24
|
from flwr.common import (
|
|
25
|
+
DEFAULT_TTL,
|
|
25
26
|
ConfigsRecord,
|
|
26
27
|
Context,
|
|
27
28
|
FitRes,
|
|
@@ -373,7 +374,7 @@ class SecAggPlusWorkflow:
|
|
|
373
374
|
message_type=MessageType.TRAIN,
|
|
374
375
|
dst_node_id=nid,
|
|
375
376
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
376
|
-
ttl=
|
|
377
|
+
ttl=DEFAULT_TTL,
|
|
377
378
|
)
|
|
378
379
|
|
|
379
380
|
log(
|
|
@@ -421,7 +422,7 @@ class SecAggPlusWorkflow:
|
|
|
421
422
|
message_type=MessageType.TRAIN,
|
|
422
423
|
dst_node_id=nid,
|
|
423
424
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
424
|
-
ttl=
|
|
425
|
+
ttl=DEFAULT_TTL,
|
|
425
426
|
)
|
|
426
427
|
|
|
427
428
|
# Broadcast public keys to clients and receive secret key shares
|
|
@@ -492,7 +493,7 @@ class SecAggPlusWorkflow:
|
|
|
492
493
|
message_type=MessageType.TRAIN,
|
|
493
494
|
dst_node_id=nid,
|
|
494
495
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
495
|
-
ttl=
|
|
496
|
+
ttl=DEFAULT_TTL,
|
|
496
497
|
)
|
|
497
498
|
|
|
498
499
|
log(
|
|
@@ -563,7 +564,7 @@ class SecAggPlusWorkflow:
|
|
|
563
564
|
message_type=MessageType.TRAIN,
|
|
564
565
|
dst_node_id=nid,
|
|
565
566
|
group_id=str(current_round),
|
|
566
|
-
ttl=
|
|
567
|
+
ttl=DEFAULT_TTL,
|
|
567
568
|
)
|
|
568
569
|
|
|
569
570
|
log(
|
|
@@ -493,13 +493,17 @@ class BasicActorPool:
|
|
|
493
493
|
self._future_to_actor[future] = actor
|
|
494
494
|
return future
|
|
495
495
|
|
|
496
|
+
async def add_actor_back_to_pool(self, future: Any) -> None:
|
|
497
|
+
"""Ad actor assigned to run future back into the pool."""
|
|
498
|
+
actor = self._future_to_actor.pop(future)
|
|
499
|
+
await self.pool.put(actor)
|
|
500
|
+
|
|
496
501
|
async def fetch_result_and_return_actor_to_pool(
|
|
497
502
|
self, future: Any
|
|
498
503
|
) -> Tuple[Message, Context]:
|
|
499
504
|
"""Pull result given a future and add actor back to pool."""
|
|
500
505
|
# Get actor that ran job
|
|
501
|
-
|
|
502
|
-
await self.pool.put(actor)
|
|
506
|
+
await self.add_actor_back_to_pool(future)
|
|
503
507
|
# Retrieve result for object store
|
|
504
508
|
# Instead of doing ray.get(future) we await it
|
|
505
509
|
_, out_mssg, updated_context = await future
|
|
@@ -23,7 +23,7 @@ from flwr import common
|
|
|
23
23
|
from flwr.client import ClientFn
|
|
24
24
|
from flwr.client.client_app import ClientApp
|
|
25
25
|
from flwr.client.node_state import NodeState
|
|
26
|
-
from flwr.common import Message, Metadata, RecordSet
|
|
26
|
+
from flwr.common import DEFAULT_TTL, Message, Metadata, RecordSet
|
|
27
27
|
from flwr.common.constant import MessageType, MessageTypeLegacy
|
|
28
28
|
from flwr.common.logger import log
|
|
29
29
|
from flwr.common.recordset_compat import (
|
|
@@ -105,7 +105,7 @@ class RayActorClientProxy(ClientProxy):
|
|
|
105
105
|
src_node_id=0,
|
|
106
106
|
dst_node_id=int(self.cid),
|
|
107
107
|
reply_to_message="",
|
|
108
|
-
ttl=
|
|
108
|
+
ttl=timeout if timeout else DEFAULT_TTL,
|
|
109
109
|
message_type=message_type,
|
|
110
110
|
partition_id=int(self.cid),
|
|
111
111
|
),
|
{flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/RECORD
RENAMED
|
@@ -28,16 +28,16 @@ flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
|
28
28
|
flwr/cli/run/run.py,sha256=C7Yh-Y0f64PEabb9733jBKIhhOUFpcRmCZJIDtv-NG8,2329
|
|
29
29
|
flwr/cli/utils.py,sha256=_V2BlFVNNG2naZrq227fZ8o4TxBN_hB-4fQsen9uQoo,2300
|
|
30
30
|
flwr/client/__init__.py,sha256=futk_IdY_N1h8BTve4Iru51bxm7H1gv58ZPIXWi5XUA,1187
|
|
31
|
-
flwr/client/app.py,sha256=
|
|
31
|
+
flwr/client/app.py,sha256=bRrLIfn3MIZKfsVq8AlgYmhpI08UTioaOlyx6YLaLR4,25536
|
|
32
32
|
flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
|
|
33
|
-
flwr/client/client_app.py,sha256=
|
|
33
|
+
flwr/client/client_app.py,sha256=30Tl_AOEi4CE8wEQbKJ3tWg4GfbsSoV1Ztc8iWE0ge4,8047
|
|
34
34
|
flwr/client/dpfedavg_numpy_client.py,sha256=9Tnig4iml2J88HBKNahegjXjbfvIQyBtaIQaqjbeqsA,7435
|
|
35
35
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
36
|
-
flwr/client/grpc_client/connection.py,sha256=
|
|
36
|
+
flwr/client/grpc_client/connection.py,sha256=w3Lble9-eCzNOR7fBUsVedVCK4ui9QPhK7i7Ew_a5Vk,8717
|
|
37
37
|
flwr/client/grpc_rere_client/__init__.py,sha256=avn6W_vHEM_yZEB1S7hCZgnTbXb6ZujqRP_vAzyXu-0,752
|
|
38
38
|
flwr/client/grpc_rere_client/connection.py,sha256=3kpnUbS06rNQ969EybGx7zZfQPc2JmCuViyrIt610V0,7421
|
|
39
39
|
flwr/client/message_handler/__init__.py,sha256=abHvBRJJiiaAMNgeILQbMOa6h8WqMK2BcnvxwQZFpic,719
|
|
40
|
-
flwr/client/message_handler/message_handler.py,sha256=
|
|
40
|
+
flwr/client/message_handler/message_handler.py,sha256=ml_FlduAJ5pxO31n1tKRrWfQRSxkMgKLbwXXcRsNSos,6553
|
|
41
41
|
flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
|
|
42
42
|
flwr/client/mod/__init__.py,sha256=apqhs7bslrGgQK91JR56mEcwj5JihL0NF_XKQwqaQuo,1143
|
|
43
43
|
flwr/client/mod/centraldp_mods.py,sha256=sm4XXFl1oeo8kazyHTR8uHzd4x6Roxk_jk482evgf-Y,5397
|
|
@@ -45,7 +45,7 @@ flwr/client/mod/comms_mods.py,sha256=hCj2mSey12D8rehhyGl4JwmVq8iFd-wlzZj8lzexGOs
|
|
|
45
45
|
flwr/client/mod/localdp_mod.py,sha256=L2IPZqgNhH7kpSckvtAzm-qWJMZ7BrNL1D8l-Zq2Wb4,4918
|
|
46
46
|
flwr/client/mod/secure_aggregation/__init__.py,sha256=Qo2R-NqsyoP0oX73TyDfQRu9P6DCNXhgqGbhmGIBaJA,849
|
|
47
47
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
48
|
-
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=
|
|
48
|
+
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
|
|
49
49
|
flwr/client/mod/utils.py,sha256=lvETHcCYsSWz7h8I772hCV_kZspxqlMqzriMZ-SxmKc,1226
|
|
50
50
|
flwr/client/node_state.py,sha256=KTTs_l4I0jBM7IsSsbAGjhfL_yZC3QANbzyvyfZBRDM,1778
|
|
51
51
|
flwr/client/node_state_tests.py,sha256=gPwz0zf2iuDSa11jedkur_u3Xm7lokIDG5ALD2MCvSw,2195
|
|
@@ -53,7 +53,7 @@ flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,1
|
|
|
53
53
|
flwr/client/rest_client/__init__.py,sha256=ThwOnkMdzxo_UuyTI47Q7y9oSpuTgNT2OuFvJCfuDiw,735
|
|
54
54
|
flwr/client/rest_client/connection.py,sha256=WGkml4gmrbbJ6OAmW3jARmL5nGaOoXo7JjWQbhPhizM,12422
|
|
55
55
|
flwr/client/typing.py,sha256=c9EvjlEjasxn1Wqx6bGl6Xg6vM1gMFfmXht-E2i5J-k,1006
|
|
56
|
-
flwr/common/__init__.py,sha256=
|
|
56
|
+
flwr/common/__init__.py,sha256=dHOptgKxna78CEQLD5Yu0QIsoSgpIIw5AhIUZCHDWAU,3721
|
|
57
57
|
flwr/common/address.py,sha256=iTAN9jtmIGMrWFnx9XZQl45ZEtQJVZZLYPRBSNVARGI,1882
|
|
58
58
|
flwr/common/constant.py,sha256=vd4d9VRaft3j6hc3MCWuB4zu2_BVjbVOUfu7kLBy0_g,1954
|
|
59
59
|
flwr/common/context.py,sha256=ounF-mWPPtXGwtae3sg5EhF58ScviOa3MVqxRpGVu-8,1313
|
|
@@ -64,7 +64,7 @@ flwr/common/dp.py,sha256=Hc3lLHihjexbJaD_ft31gdv9XRcwOTgDBwJzICuok3A,2004
|
|
|
64
64
|
flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,2812
|
|
65
65
|
flwr/common/grpc.py,sha256=HimjpTtIY3Vfqtlq3u-CYWjqAl9rSn0uo3A8JjhUmwQ,2273
|
|
66
66
|
flwr/common/logger.py,sha256=Plhm9fsi4ewb90eGALQZ9xBkR0cGEsckX5RLSMEaS3M,6118
|
|
67
|
-
flwr/common/message.py,sha256=
|
|
67
|
+
flwr/common/message.py,sha256=vgFSCOkPbl60iS4-XQJ8-rHL54MvNc2AwNSSxVl6qYY,11773
|
|
68
68
|
flwr/common/object_ref.py,sha256=ELoUCAFO-vbjJC41CGpa-WBG2SLYe3ErW-d9YCG3zqA,4961
|
|
69
69
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
70
70
|
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
@@ -85,7 +85,7 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=66mNQCz64r7qzvXwFrX
|
|
|
85
85
|
flwr/common/secure_aggregation/quantization.py,sha256=appui7GGrkRPsupF59TkapeV4Na_CyPi73JtJ1pimdI,2310
|
|
86
86
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=Fh7-n6pgL4TUnHpNYXo8iW-n5cOGQgQa-c7RcU80tqQ,2183
|
|
87
87
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=87bNZX6CmQekj935R4u3m5hsaEkkfKtGSA-VG2c-O9w,3221
|
|
88
|
-
flwr/common/serde.py,sha256=
|
|
88
|
+
flwr/common/serde.py,sha256=Yn83kbSf9vJndTa5ldL4DR_bL_wy_bD4lTlD3ZbB658,22250
|
|
89
89
|
flwr/common/telemetry.py,sha256=JkFB6WBOskqAJfzSM-l6tQfRiSi2oiysClfg0-5T7NY,7782
|
|
90
90
|
flwr/common/typing.py,sha256=3Wu6Ol1Ja6Gb0WdlcXVEn1EHYJbc4oRRJA81vEegxBo,4382
|
|
91
91
|
flwr/common/version.py,sha256=_RDSMGZPEuGKYViZuXPotDtXMvh4iyDH9XOCO4qtPO8,666
|
|
@@ -98,10 +98,10 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
98
98
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
99
99
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
100
100
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
101
|
-
flwr/proto/fleet_pb2.py,sha256=
|
|
102
|
-
flwr/proto/fleet_pb2.pyi,sha256=
|
|
103
|
-
flwr/proto/fleet_pb2_grpc.py,sha256=
|
|
104
|
-
flwr/proto/fleet_pb2_grpc.pyi,sha256=
|
|
101
|
+
flwr/proto/fleet_pb2.py,sha256=_FkDeb0JUCYlC6YyaKC4tZ74j5TS_s-aYZemAukAzdQ,4316
|
|
102
|
+
flwr/proto/fleet_pb2.pyi,sha256=T5zOGs6gnEvtgqu4msnLOd35jcRQ6t13QyyPK6OOuf0,7325
|
|
103
|
+
flwr/proto/fleet_pb2_grpc.py,sha256=U2UeEqWQ7VE58C1ngm_yVniiwBuXfnHmzITYPt6BEtA,9042
|
|
104
|
+
flwr/proto/fleet_pb2_grpc.pyi,sha256=Cd8oZqhK9ORMB7iKyW0NBvCeP8Bg1OZbnn_8GzDxEHU,2491
|
|
105
105
|
flwr/proto/node_pb2.py,sha256=1zfXEvgGObglIcaVb4SLFmOcHZvA8eHzEtMFM5A6FYY,1081
|
|
106
106
|
flwr/proto/node_pb2.pyi,sha256=aX3BHhgXvJE1rvcRnEE_gB-5GcaFQ0SJ88yTE223bjI,751
|
|
107
107
|
flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -110,8 +110,8 @@ flwr/proto/recordset_pb2.py,sha256=un8L0kvBcgFXQIiQweOseeIJBjlOozUvQY9uTQ42Dqo,6
|
|
|
110
110
|
flwr/proto/recordset_pb2.pyi,sha256=NPzCJWAj1xLWzeZ_xZ6uaObQjQfWGnnqlLtn4J-SoFY,14161
|
|
111
111
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
112
112
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
113
|
-
flwr/proto/task_pb2.py,sha256
|
|
114
|
-
flwr/proto/task_pb2.pyi,sha256=
|
|
113
|
+
flwr/proto/task_pb2.py,sha256=6-HLTXleiG65fhlLZdvwEW30Bcgm46KO7E1NfLrl4NI,2472
|
|
114
|
+
flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
|
|
115
115
|
flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
116
116
|
flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
117
117
|
flwr/proto/transport_pb2.py,sha256=cURzfpCgZvH7GEvBPLvTYijE3HvhK1MePjINk4xYArk,9781
|
|
@@ -126,11 +126,11 @@ flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2
|
|
|
126
126
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
127
127
|
flwr/server/compat/app.py,sha256=3Skh76Rg80B4oME1dJOhZvn9eTfVmTNIQ0jCiZ6CzeQ,5271
|
|
128
128
|
flwr/server/compat/app_utils.py,sha256=-Ey5fyRpovmp4nHglVbliITcbxzxX_0qdtZwwfMS4ZI,3450
|
|
129
|
-
flwr/server/compat/driver_client_proxy.py,sha256=
|
|
129
|
+
flwr/server/compat/driver_client_proxy.py,sha256=QWLl5YJwI6NVADwjQGQJqkLtCfPNT-aRH0NF9yeGEnA,7344
|
|
130
130
|
flwr/server/compat/legacy_context.py,sha256=D2s7PvQoDnTexuRmf1uG9Von7GUj4Qqyr7qLklSlKAM,1766
|
|
131
131
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
132
132
|
flwr/server/driver/__init__.py,sha256=yYyVX1FcDiDFM6rw0-DSZpuRy0EoWRfG9puwlQUswFA,820
|
|
133
|
-
flwr/server/driver/driver.py,sha256=
|
|
133
|
+
flwr/server/driver/driver.py,sha256=_crOuSbU9P5jKIjIJ4puTOr7-5sKHtSvNhHY995JN7M,9660
|
|
134
134
|
flwr/server/driver/grpc_driver.py,sha256=D2n3_Es_DHFgQsq_TjYVEz8RYJJJYoe24E1vozaTFiE,4586
|
|
135
135
|
flwr/server/history.py,sha256=hDsoBaA4kUa6d1yvDVXuLluBqOBKSm0_fVDtUtYJkmg,5121
|
|
136
136
|
flwr/server/run_serverapp.py,sha256=3hoXa57T4L1vOWVWPSSdZ_UyRO-uTwUIrhha6TJAXMg,5592
|
|
@@ -164,7 +164,7 @@ flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5u
|
|
|
164
164
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
165
165
|
flwr/server/superlink/driver/__init__.py,sha256=STB1_DASVEg7Cu6L7VYxTzV7UMkgtBkFim09Z82Dh8I,712
|
|
166
166
|
flwr/server/superlink/driver/driver_grpc.py,sha256=1qSGDs1k_OVPWxp2ofxvQgtYXExrMeC3N_rNPVWH65M,1932
|
|
167
|
-
flwr/server/superlink/driver/driver_servicer.py,sha256=
|
|
167
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=Cu6c7pohrqFy7KNMtNbaJGc-JW0UYSABRGJJJIyfPaA,4761
|
|
168
168
|
flwr/server/superlink/fleet/__init__.py,sha256=C6GCSD5eP5Of6_dIeSe1jx9HnV0icsvWyQ5EKAUHJRU,711
|
|
169
169
|
flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=mgGJGjwT6VU7ovC1gdnnqttjyBPlNIcZnYRqx4K3IBQ,735
|
|
170
170
|
flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=57b3UL5-baGdLwgCtB0dCUTTSbmmfMAXcXV5bjPZNWQ,5993
|
|
@@ -172,40 +172,40 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=LSOmabFXAQxKycQOlipl
|
|
|
172
172
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=kuD7R1yB1Ite0sNfvjsrnZu83LWGk8fP-yihE1mjQm0,4887
|
|
173
173
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=1QyBX5qcFPjMVlv7TrvnQkcET4muvg94Fy9hAQUBYnY,11818
|
|
174
174
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=bEJOMWbSlqkw-y5ZHtEXczhoSlAxErcRYffmTMQAV8M,758
|
|
175
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
|
175
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=LC_ntiLZMIZkspwjtQ9_MZ4agzArebO4HIVJ3YOrFx8,3036
|
|
176
176
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=hEY0l61ojH8Iz30_K1btm1HJ6J49iZJSFUsVYqUTw3A,731
|
|
177
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
|
177
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=N5VqopkVuXWg0h1_qzINUQ59bFKq-CXbKSi5DmSSrxs,3161
|
|
178
178
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=VKDvDq5H8koOUztpmQacVzGJXPLEEkL1Vmolxt3mvnY,735
|
|
179
179
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=7JCs7NW4Qq8W5QhXxqsQNFiCLlRY-b_iD420vH1Mu-U,5906
|
|
180
180
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
181
181
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=oBIzmnrSSRvH_H0vRGEGWhWzQQwqe3zn6e13RsNwlIY,1466
|
|
182
182
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LJsKl7oixVvptcG98Rd9ejJycNWcEVB0ODvSreLGp-A,2260
|
|
183
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
184
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
183
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=TaT2EpbVEsIY0EDzF8obadyZaSXjD38TFGdDPI-ytD0,6375
|
|
184
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=EV4ISvHZPucVLD3lYVFF5fQ4yyxmoaoZMdp_1B2k6J8,11789
|
|
185
185
|
flwr/server/superlink/state/__init__.py,sha256=ij-7Ms-hyordQdRmGQxY1-nVa4OhixJ0jr7_YDkys0s,1003
|
|
186
|
-
flwr/server/superlink/state/in_memory_state.py,sha256
|
|
187
|
-
flwr/server/superlink/state/sqlite_state.py,sha256=
|
|
188
|
-
flwr/server/superlink/state/state.py,sha256=
|
|
186
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=XfdCGRzFut9xlf7AsDAhhAmBw-nKDBjmPWAI--espj0,8707
|
|
187
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=1SR6Zz6ud0tSSx940gTfa0vct_GH2n0cX_vnhoAEMlQ,22005
|
|
188
|
+
flwr/server/superlink/state/state.py,sha256=mvyih06oUxe5QRUfaSmUuyIYLdP_tkoemNEq19Xt5G0,6036
|
|
189
189
|
flwr/server/superlink/state/state_factory.py,sha256=91cSB-KOAFM37z7T098WxTkVeKNaAZ_mTI75snn2_tk,1654
|
|
190
190
|
flwr/server/typing.py,sha256=2zSG-KuDAgwFPuzgVjTLDaEqJ8gXXGqFR2RD-qIk730,913
|
|
191
191
|
flwr/server/utils/__init__.py,sha256=RQVbo-bcsVtp_lJBf7dL5w01FbLrr7v3YedeGp5_YMs,908
|
|
192
192
|
flwr/server/utils/tensorboard.py,sha256=k0G6bqsLx7wfYbH2KtXsDYcOCfyIeE12-hefXA7lZdg,5485
|
|
193
|
-
flwr/server/utils/validator.py,sha256=
|
|
193
|
+
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
194
194
|
flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
|
|
195
195
|
flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
|
|
196
|
-
flwr/server/workflow/default_workflows.py,sha256=
|
|
196
|
+
flwr/server/workflow/default_workflows.py,sha256=_zAS8yeT4UW2IY9TyWPx9w_C6fUHL79mO980S3UZITs,12655
|
|
197
197
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
198
198
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
199
|
-
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=
|
|
199
|
+
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=3TjJdhYA4xyR7e-cyVBdcGe9os7ErHHayoKBJaH8KcE,29187
|
|
200
200
|
flwr/simulation/__init__.py,sha256=hpoKzdovrH0_Cf8HIcXxQxyUUb3BiSk-WUNLf5STHcc,1400
|
|
201
201
|
flwr/simulation/app.py,sha256=WqJxdXTEuehwMW605p5NMmvBbKYx5tuqnV3Mp7jSWXM,13904
|
|
202
202
|
flwr/simulation/ray_transport/__init__.py,sha256=FsaAnzC4cw4DqoouBCix6496k29jACkfeIam55BvW9g,734
|
|
203
|
-
flwr/simulation/ray_transport/ray_actor.py,sha256=
|
|
204
|
-
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=
|
|
203
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=OWjgYW--fswkEDqTP9L_cZblBeUVL59vNz5gvzPAHFk,20054
|
|
204
|
+
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=oDu4sEPIOu39vrNi-fqDAe10xtNUXMO49bM2RWfRcyw,6738
|
|
205
205
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
206
206
|
flwr/simulation/run_simulation.py,sha256=HiIH6aa_v56NfKQN5ZBd94NyVfaZNyFs43_kItYsQXU,15685
|
|
207
|
-
flwr_nightly-1.8.0.
|
|
208
|
-
flwr_nightly-1.8.0.
|
|
209
|
-
flwr_nightly-1.8.0.
|
|
210
|
-
flwr_nightly-1.8.0.
|
|
211
|
-
flwr_nightly-1.8.0.
|
|
207
|
+
flwr_nightly-1.8.0.dev20240328.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
208
|
+
flwr_nightly-1.8.0.dev20240328.dist-info/METADATA,sha256=8FreyB01iNsm1LCt2zh74ZE46oAFcKAieUIrZQEtTgI,15257
|
|
209
|
+
flwr_nightly-1.8.0.dev20240328.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
210
|
+
flwr_nightly-1.8.0.dev20240328.dist-info/entry_points.txt,sha256=utu2wybGyYJSTtsB2ktY_gmy-XtMFo9EFZdishX0zR4,320
|
|
211
|
+
flwr_nightly-1.8.0.dev20240328.dist-info/RECORD,,
|
{flwr_nightly-1.8.0.dev20240323.dist-info → flwr_nightly-1.8.0.dev20240328.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|