flwr-nightly 1.8.0.dev20240328__py3-none-any.whl → 1.8.0.dev20240402__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 +26 -13
- flwr/client/client_app.py +16 -0
- flwr/client/grpc_rere_client/connection.py +71 -29
- flwr/client/heartbeat.py +72 -0
- flwr/client/rest_client/connection.py +102 -28
- flwr/common/constant.py +20 -0
- flwr/common/logger.py +4 -4
- flwr/common/message.py +15 -0
- flwr/common/retry_invoker.py +24 -13
- flwr/proto/fleet_pb2.py +26 -26
- flwr/proto/fleet_pb2.pyi +5 -0
- flwr/server/driver/driver.py +15 -5
- flwr/server/server_app.py +3 -0
- flwr/server/superlink/fleet/message_handler/message_handler.py +3 -2
- flwr/server/superlink/fleet/rest_rere/rest_api.py +28 -0
- flwr/server/superlink/fleet/vce/vce_api.py +22 -4
- flwr/server/superlink/state/in_memory_state.py +25 -8
- flwr/server/superlink/state/sqlite_state.py +53 -5
- flwr/server/superlink/state/state.py +1 -1
- flwr/server/superlink/state/utils.py +56 -0
- flwr/server/workflow/default_workflows.py +1 -4
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -5
- flwr/simulation/ray_transport/ray_actor.py +2 -22
- {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/METADATA +1 -1
- {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/RECORD +28 -26
- {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
"""Utility functions for State."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
import time
|
|
19
|
+
from logging import ERROR
|
|
20
|
+
from uuid import uuid4
|
|
21
|
+
|
|
22
|
+
from flwr.common import log
|
|
23
|
+
from flwr.common.constant import ErrorCode
|
|
24
|
+
from flwr.proto.error_pb2 import Error # pylint: disable=E0611
|
|
25
|
+
from flwr.proto.node_pb2 import Node # pylint: disable=E0611
|
|
26
|
+
from flwr.proto.task_pb2 import Task, TaskIns, TaskRes # pylint: disable=E0611
|
|
27
|
+
|
|
28
|
+
NODE_UNAVAILABLE_ERROR_REASON = (
|
|
29
|
+
"Error: Node Unavailable - The destination node is currently unavailable. "
|
|
30
|
+
"It exceeds the time limit specified in its last ping."
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def make_node_unavailable_taskres(ref_taskins: TaskIns) -> TaskRes:
|
|
35
|
+
"""Generate a TaskRes with a node unavailable error from a TaskIns."""
|
|
36
|
+
current_time = time.time()
|
|
37
|
+
ttl = ref_taskins.task.ttl - (current_time - ref_taskins.task.created_at)
|
|
38
|
+
if ttl < 0:
|
|
39
|
+
log(ERROR, "Creating TaskRes for TaskIns that exceeds its TTL.")
|
|
40
|
+
ttl = 0
|
|
41
|
+
return TaskRes(
|
|
42
|
+
task_id=str(uuid4()),
|
|
43
|
+
group_id=ref_taskins.group_id,
|
|
44
|
+
run_id=ref_taskins.run_id,
|
|
45
|
+
task=Task(
|
|
46
|
+
producer=Node(node_id=ref_taskins.task.consumer.node_id, anonymous=False),
|
|
47
|
+
consumer=Node(node_id=ref_taskins.task.producer.node_id, anonymous=False),
|
|
48
|
+
created_at=current_time,
|
|
49
|
+
ttl=ttl,
|
|
50
|
+
ancestry=[ref_taskins.task_id],
|
|
51
|
+
task_type=ref_taskins.task.task_type,
|
|
52
|
+
error=Error(
|
|
53
|
+
code=ErrorCode.NODE_UNAVAILABLE, reason=NODE_UNAVAILABLE_ERROR_REASON
|
|
54
|
+
),
|
|
55
|
+
),
|
|
56
|
+
)
|
|
@@ -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
|
|
24
|
+
from flwr.common import 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,6 @@ 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=DEFAULT_TTL,
|
|
131
130
|
)
|
|
132
131
|
]
|
|
133
132
|
)
|
|
@@ -226,7 +225,6 @@ def default_fit_workflow( # pylint: disable=R0914
|
|
|
226
225
|
message_type=MessageType.TRAIN,
|
|
227
226
|
dst_node_id=proxy.node_id,
|
|
228
227
|
group_id=str(current_round),
|
|
229
|
-
ttl=DEFAULT_TTL,
|
|
230
228
|
)
|
|
231
229
|
for proxy, fitins in client_instructions
|
|
232
230
|
]
|
|
@@ -306,7 +304,6 @@ def default_evaluate_workflow(driver: Driver, context: Context) -> None:
|
|
|
306
304
|
message_type=MessageType.EVALUATE,
|
|
307
305
|
dst_node_id=proxy.node_id,
|
|
308
306
|
group_id=str(current_round),
|
|
309
|
-
ttl=DEFAULT_TTL,
|
|
310
307
|
)
|
|
311
308
|
for proxy, evalins in client_instructions
|
|
312
309
|
]
|
|
@@ -22,7 +22,6 @@ 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,
|
|
26
25
|
ConfigsRecord,
|
|
27
26
|
Context,
|
|
28
27
|
FitRes,
|
|
@@ -374,7 +373,6 @@ class SecAggPlusWorkflow:
|
|
|
374
373
|
message_type=MessageType.TRAIN,
|
|
375
374
|
dst_node_id=nid,
|
|
376
375
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
377
|
-
ttl=DEFAULT_TTL,
|
|
378
376
|
)
|
|
379
377
|
|
|
380
378
|
log(
|
|
@@ -422,7 +420,6 @@ class SecAggPlusWorkflow:
|
|
|
422
420
|
message_type=MessageType.TRAIN,
|
|
423
421
|
dst_node_id=nid,
|
|
424
422
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
425
|
-
ttl=DEFAULT_TTL,
|
|
426
423
|
)
|
|
427
424
|
|
|
428
425
|
# Broadcast public keys to clients and receive secret key shares
|
|
@@ -493,7 +490,6 @@ class SecAggPlusWorkflow:
|
|
|
493
490
|
message_type=MessageType.TRAIN,
|
|
494
491
|
dst_node_id=nid,
|
|
495
492
|
group_id=str(cfg[WorkflowKey.CURRENT_ROUND]),
|
|
496
|
-
ttl=DEFAULT_TTL,
|
|
497
493
|
)
|
|
498
494
|
|
|
499
495
|
log(
|
|
@@ -564,7 +560,6 @@ class SecAggPlusWorkflow:
|
|
|
564
560
|
message_type=MessageType.TRAIN,
|
|
565
561
|
dst_node_id=nid,
|
|
566
562
|
group_id=str(current_round),
|
|
567
|
-
ttl=DEFAULT_TTL,
|
|
568
563
|
)
|
|
569
564
|
|
|
570
565
|
log(
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
import asyncio
|
|
18
18
|
import threading
|
|
19
|
-
import traceback
|
|
20
19
|
from abc import ABC
|
|
21
20
|
from logging import DEBUG, ERROR, WARNING
|
|
22
21
|
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
|
|
@@ -25,22 +24,13 @@ import ray
|
|
|
25
24
|
from ray import ObjectRef
|
|
26
25
|
from ray.util.actor_pool import ActorPool
|
|
27
26
|
|
|
28
|
-
from flwr.client.client_app import ClientApp, LoadClientAppError
|
|
27
|
+
from flwr.client.client_app import ClientApp, ClientAppException, LoadClientAppError
|
|
29
28
|
from flwr.common import Context, Message
|
|
30
29
|
from flwr.common.logger import log
|
|
31
30
|
|
|
32
31
|
ClientAppFn = Callable[[], ClientApp]
|
|
33
32
|
|
|
34
33
|
|
|
35
|
-
class ClientException(Exception):
|
|
36
|
-
"""Raised when client side logic crashes with an exception."""
|
|
37
|
-
|
|
38
|
-
def __init__(self, message: str):
|
|
39
|
-
div = ">" * 7
|
|
40
|
-
self.message = "\n" + div + "A ClientException occurred." + message
|
|
41
|
-
super().__init__(self.message)
|
|
42
|
-
|
|
43
|
-
|
|
44
34
|
class VirtualClientEngineActor(ABC):
|
|
45
35
|
"""Abstract base class for VirtualClientEngine Actors."""
|
|
46
36
|
|
|
@@ -71,17 +61,7 @@ class VirtualClientEngineActor(ABC):
|
|
|
71
61
|
raise load_ex
|
|
72
62
|
|
|
73
63
|
except Exception as ex:
|
|
74
|
-
|
|
75
|
-
mssg = (
|
|
76
|
-
"\n\tSomething went wrong when running your client run."
|
|
77
|
-
"\n\tClient "
|
|
78
|
-
+ cid
|
|
79
|
-
+ " crashed when the "
|
|
80
|
-
+ self.__class__.__name__
|
|
81
|
-
+ " was running its run."
|
|
82
|
-
"\n\tException triggered on the client side: " + client_trace,
|
|
83
|
-
)
|
|
84
|
-
raise ClientException(str(mssg)) from ex
|
|
64
|
+
raise ClientAppException(str(ex)) from ex
|
|
85
65
|
|
|
86
66
|
return cid, out_message, context
|
|
87
67
|
|
{flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/RECORD
RENAMED
|
@@ -28,14 +28,15 @@ 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=L8TJxRbo8j58Nr99CY3Gk_zDzWLwS0CQp60QbVMPKd4,26114
|
|
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=-Cs0084tLQUoBCeYZdG2KgU7cjp95_ZJ4MfjoaN4Fzk,8636
|
|
34
34
|
flwr/client/dpfedavg_numpy_client.py,sha256=9Tnig4iml2J88HBKNahegjXjbfvIQyBtaIQaqjbeqsA,7435
|
|
35
35
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
36
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
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
38
|
+
flwr/client/grpc_rere_client/connection.py,sha256=JaQIQYUJnmZHfqrGBxYZmEtyC-rUdCCaK1HrMcOXEig,8560
|
|
39
|
+
flwr/client/heartbeat.py,sha256=6Ix2Du9SDlXU_nre48WIDUXDy3AVoZsGKacSq2NqT5c,2377
|
|
39
40
|
flwr/client/message_handler/__init__.py,sha256=abHvBRJJiiaAMNgeILQbMOa6h8WqMK2BcnvxwQZFpic,719
|
|
40
41
|
flwr/client/message_handler/message_handler.py,sha256=ml_FlduAJ5pxO31n1tKRrWfQRSxkMgKLbwXXcRsNSos,6553
|
|
41
42
|
flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
|
|
@@ -51,11 +52,11 @@ flwr/client/node_state.py,sha256=KTTs_l4I0jBM7IsSsbAGjhfL_yZC3QANbzyvyfZBRDM,177
|
|
|
51
52
|
flwr/client/node_state_tests.py,sha256=gPwz0zf2iuDSa11jedkur_u3Xm7lokIDG5ALD2MCvSw,2195
|
|
52
53
|
flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
|
|
53
54
|
flwr/client/rest_client/__init__.py,sha256=ThwOnkMdzxo_UuyTI47Q7y9oSpuTgNT2OuFvJCfuDiw,735
|
|
54
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
55
|
+
flwr/client/rest_client/connection.py,sha256=rDLQlymPOZYT4cqOaw8sejlMhmlzyqJL-UrZqyWHv8s,14482
|
|
55
56
|
flwr/client/typing.py,sha256=c9EvjlEjasxn1Wqx6bGl6Xg6vM1gMFfmXht-E2i5J-k,1006
|
|
56
57
|
flwr/common/__init__.py,sha256=dHOptgKxna78CEQLD5Yu0QIsoSgpIIw5AhIUZCHDWAU,3721
|
|
57
58
|
flwr/common/address.py,sha256=iTAN9jtmIGMrWFnx9XZQl45ZEtQJVZZLYPRBSNVARGI,1882
|
|
58
|
-
flwr/common/constant.py,sha256=
|
|
59
|
+
flwr/common/constant.py,sha256=GsixlCwohCBlQ6_mTk29HChuyRftgTELTCN06AxrOyc,2424
|
|
59
60
|
flwr/common/context.py,sha256=ounF-mWPPtXGwtae3sg5EhF58ScviOa3MVqxRpGVu-8,1313
|
|
60
61
|
flwr/common/date.py,sha256=UWhBZj49yX9LD4BmatS_ZFZu_-kweGh0KQJ1djyWWH4,891
|
|
61
62
|
flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
|
|
@@ -63,8 +64,8 @@ flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf
|
|
|
63
64
|
flwr/common/dp.py,sha256=Hc3lLHihjexbJaD_ft31gdv9XRcwOTgDBwJzICuok3A,2004
|
|
64
65
|
flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,2812
|
|
65
66
|
flwr/common/grpc.py,sha256=HimjpTtIY3Vfqtlq3u-CYWjqAl9rSn0uo3A8JjhUmwQ,2273
|
|
66
|
-
flwr/common/logger.py,sha256=
|
|
67
|
-
flwr/common/message.py,sha256=
|
|
67
|
+
flwr/common/logger.py,sha256=3hfKun9YISWj4i_QhxgZdnaHJc4x-QvFJQJTKHZ2KHs,6096
|
|
68
|
+
flwr/common/message.py,sha256=NvxiWT9YI8GmIt2r3EPVPFFAFQo3xhP09mvnAxjHivQ,12385
|
|
68
69
|
flwr/common/object_ref.py,sha256=ELoUCAFO-vbjJC41CGpa-WBG2SLYe3ErW-d9YCG3zqA,4961
|
|
69
70
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
70
71
|
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
@@ -76,7 +77,7 @@ flwr/common/record/parametersrecord.py,sha256=WSqtRrYvI-mRzkEwv5s-EG-yE5uizJ8zy9
|
|
|
76
77
|
flwr/common/record/recordset.py,sha256=o5UwLubotz1KE9HCoEIP5kK0f0dlIzpFpS1xeQvxo08,3016
|
|
77
78
|
flwr/common/record/typeddict.py,sha256=2NW8JF27p1uNWaqDbJ7bMkItA5x4ygYT8aHrf8NaqnE,3879
|
|
78
79
|
flwr/common/recordset_compat.py,sha256=BjxeuvlCaP94yIiKOyFFTRBUH_lprFWSLo8U8q3BDbs,13798
|
|
79
|
-
flwr/common/retry_invoker.py,sha256=
|
|
80
|
+
flwr/common/retry_invoker.py,sha256=6zpjE5TXw-AuPz6Q4geVW8IU6S8sGaGaehLP3HTmlMw,11669
|
|
80
81
|
flwr/common/secure_aggregation/__init__.py,sha256=29nHIUO2L8-KhNHQ2KmIgRo_4CPkq4LgLCUN0on5FgI,731
|
|
81
82
|
flwr/common/secure_aggregation/crypto/__init__.py,sha256=dz7pVx2aPrHxr_AwgO5mIiTzu4PcvUxRq9NLBbFcsf8,738
|
|
82
83
|
flwr/common/secure_aggregation/crypto/shamir.py,sha256=yY35ZgHlB4YyGW_buG-1X-0M-ejXuQzISgYLgC_Z9TY,2792
|
|
@@ -98,8 +99,8 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
98
99
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
99
100
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
100
101
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
101
|
-
flwr/proto/fleet_pb2.py,sha256=
|
|
102
|
-
flwr/proto/fleet_pb2.pyi,sha256=
|
|
102
|
+
flwr/proto/fleet_pb2.py,sha256=0PSDvjWer5VDh10L7BckF8-WeNYZzXC2BQQF_E0EacQ,4356
|
|
103
|
+
flwr/proto/fleet_pb2.pyi,sha256=45kQ9YINv3VG0nxWSjCN4SppdepjKW8rRBlxKxz7ud4,7571
|
|
103
104
|
flwr/proto/fleet_pb2_grpc.py,sha256=U2UeEqWQ7VE58C1ngm_yVniiwBuXfnHmzITYPt6BEtA,9042
|
|
104
105
|
flwr/proto/fleet_pb2_grpc.pyi,sha256=Cd8oZqhK9ORMB7iKyW0NBvCeP8Bg1OZbnn_8GzDxEHU,2491
|
|
105
106
|
flwr/proto/node_pb2.py,sha256=1zfXEvgGObglIcaVb4SLFmOcHZvA8eHzEtMFM5A6FYY,1081
|
|
@@ -130,12 +131,12 @@ flwr/server/compat/driver_client_proxy.py,sha256=QWLl5YJwI6NVADwjQGQJqkLtCfPNT-a
|
|
|
130
131
|
flwr/server/compat/legacy_context.py,sha256=D2s7PvQoDnTexuRmf1uG9Von7GUj4Qqyr7qLklSlKAM,1766
|
|
131
132
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
132
133
|
flwr/server/driver/__init__.py,sha256=yYyVX1FcDiDFM6rw0-DSZpuRy0EoWRfG9puwlQUswFA,820
|
|
133
|
-
flwr/server/driver/driver.py,sha256=
|
|
134
|
+
flwr/server/driver/driver.py,sha256=AwAxgYRx-FI6NvI5ukmdGlEmQRyp5GZSElFnDZhelj8,10106
|
|
134
135
|
flwr/server/driver/grpc_driver.py,sha256=D2n3_Es_DHFgQsq_TjYVEz8RYJJJYoe24E1vozaTFiE,4586
|
|
135
136
|
flwr/server/history.py,sha256=hDsoBaA4kUa6d1yvDVXuLluBqOBKSm0_fVDtUtYJkmg,5121
|
|
136
137
|
flwr/server/run_serverapp.py,sha256=3hoXa57T4L1vOWVWPSSdZ_UyRO-uTwUIrhha6TJAXMg,5592
|
|
137
138
|
flwr/server/server.py,sha256=UnBRlI6AGTj0nKeRtEQ3IalM3TJmggMKXhDyn8yKZNk,17664
|
|
138
|
-
flwr/server/server_app.py,sha256=
|
|
139
|
+
flwr/server/server_app.py,sha256=KgAT_HqsfseTLNnfX2ph42PBbVqQ0lFzvYrT90V34y0,4402
|
|
139
140
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
140
141
|
flwr/server/strategy/__init__.py,sha256=7eVZ3hQEg2BgA_usAeL6tsLp9T6XI1VYYoFy08Xn-ew,2836
|
|
141
142
|
flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
|
|
@@ -174,38 +175,39 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=1QyBX5qcFPjMVlv7Trvn
|
|
|
174
175
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=bEJOMWbSlqkw-y5ZHtEXczhoSlAxErcRYffmTMQAV8M,758
|
|
175
176
|
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=LC_ntiLZMIZkspwjtQ9_MZ4agzArebO4HIVJ3YOrFx8,3036
|
|
176
177
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=hEY0l61ojH8Iz30_K1btm1HJ6J49iZJSFUsVYqUTw3A,731
|
|
177
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
|
178
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=rVisujx0B0WZROlp4uwk1KjzgPR7Pit4rBnurF5xXUw,3273
|
|
178
179
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=VKDvDq5H8koOUztpmQacVzGJXPLEEkL1Vmolxt3mvnY,735
|
|
179
|
-
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=
|
|
180
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=_tGtARm4x957Fu1EWoDieqOzV9CQZTM4GgKe2GxIOvw,6734
|
|
180
181
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
181
182
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=oBIzmnrSSRvH_H0vRGEGWhWzQQwqe3zn6e13RsNwlIY,1466
|
|
182
183
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LJsKl7oixVvptcG98Rd9ejJycNWcEVB0ODvSreLGp-A,2260
|
|
183
184
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=TaT2EpbVEsIY0EDzF8obadyZaSXjD38TFGdDPI-ytD0,6375
|
|
184
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
185
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=c2J2m6v1jDyuAhiBArdZNIk4cbiZNFJkpKlBJFEQq-c,12454
|
|
185
186
|
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=
|
|
187
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=lZPoAwyZE0LcKgef8rFa5dzekIhs2q_TPGv7iddJNKI,9586
|
|
188
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=z2jF0UV0VMsVyVIpT_7v13ji6wuFJSmyNbYZhxwelbE,23985
|
|
189
|
+
flwr/server/superlink/state/state.py,sha256=1cboTXmRGu3r4ebdNby-Ht3qVwAfLgc563YF6awvPSw,6058
|
|
189
190
|
flwr/server/superlink/state/state_factory.py,sha256=91cSB-KOAFM37z7T098WxTkVeKNaAZ_mTI75snn2_tk,1654
|
|
191
|
+
flwr/server/superlink/state/utils.py,sha256=qhIjBu5_rqm9GLMB6QS5TIRrMDVs85lmY17BqZ1ccLk,2207
|
|
190
192
|
flwr/server/typing.py,sha256=2zSG-KuDAgwFPuzgVjTLDaEqJ8gXXGqFR2RD-qIk730,913
|
|
191
193
|
flwr/server/utils/__init__.py,sha256=RQVbo-bcsVtp_lJBf7dL5w01FbLrr7v3YedeGp5_YMs,908
|
|
192
194
|
flwr/server/utils/tensorboard.py,sha256=k0G6bqsLx7wfYbH2KtXsDYcOCfyIeE12-hefXA7lZdg,5485
|
|
193
195
|
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
194
196
|
flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
|
|
195
197
|
flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
|
|
196
|
-
flwr/server/workflow/default_workflows.py,sha256=
|
|
198
|
+
flwr/server/workflow/default_workflows.py,sha256=ROJNsY538jSGMaNyF7GHwXMtV7us1Vx8OKyUHWYeDcA,12547
|
|
197
199
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
198
200
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
199
|
-
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=
|
|
201
|
+
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=BRqhlnVe8CYNoUvb_KCfRXay02NTT6a-pCrMaOqAxGc,29038
|
|
200
202
|
flwr/simulation/__init__.py,sha256=hpoKzdovrH0_Cf8HIcXxQxyUUb3BiSk-WUNLf5STHcc,1400
|
|
201
203
|
flwr/simulation/app.py,sha256=WqJxdXTEuehwMW605p5NMmvBbKYx5tuqnV3Mp7jSWXM,13904
|
|
202
204
|
flwr/simulation/ray_transport/__init__.py,sha256=FsaAnzC4cw4DqoouBCix6496k29jACkfeIam55BvW9g,734
|
|
203
|
-
flwr/simulation/ray_transport/ray_actor.py,sha256=
|
|
205
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=_wv2eP7qxkCZ-6rMyYWnjLrGPBZRxjvTPjaVk8zIaQ4,19367
|
|
204
206
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=oDu4sEPIOu39vrNi-fqDAe10xtNUXMO49bM2RWfRcyw,6738
|
|
205
207
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
206
208
|
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.
|
|
209
|
+
flwr_nightly-1.8.0.dev20240402.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
210
|
+
flwr_nightly-1.8.0.dev20240402.dist-info/METADATA,sha256=mxNjZCkLIw-U9qA01jmJhYTrVcZ85G8gIpxGcS9Q3Go,15257
|
|
211
|
+
flwr_nightly-1.8.0.dev20240402.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
212
|
+
flwr_nightly-1.8.0.dev20240402.dist-info/entry_points.txt,sha256=utu2wybGyYJSTtsB2ktY_gmy-XtMFo9EFZdishX0zR4,320
|
|
213
|
+
flwr_nightly-1.8.0.dev20240402.dist-info/RECORD,,
|
{flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|