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.

Files changed (28) hide show
  1. flwr/client/app.py +26 -13
  2. flwr/client/client_app.py +16 -0
  3. flwr/client/grpc_rere_client/connection.py +71 -29
  4. flwr/client/heartbeat.py +72 -0
  5. flwr/client/rest_client/connection.py +102 -28
  6. flwr/common/constant.py +20 -0
  7. flwr/common/logger.py +4 -4
  8. flwr/common/message.py +15 -0
  9. flwr/common/retry_invoker.py +24 -13
  10. flwr/proto/fleet_pb2.py +26 -26
  11. flwr/proto/fleet_pb2.pyi +5 -0
  12. flwr/server/driver/driver.py +15 -5
  13. flwr/server/server_app.py +3 -0
  14. flwr/server/superlink/fleet/message_handler/message_handler.py +3 -2
  15. flwr/server/superlink/fleet/rest_rere/rest_api.py +28 -0
  16. flwr/server/superlink/fleet/vce/vce_api.py +22 -4
  17. flwr/server/superlink/state/in_memory_state.py +25 -8
  18. flwr/server/superlink/state/sqlite_state.py +53 -5
  19. flwr/server/superlink/state/state.py +1 -1
  20. flwr/server/superlink/state/utils.py +56 -0
  21. flwr/server/workflow/default_workflows.py +1 -4
  22. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -5
  23. flwr/simulation/ray_transport/ray_actor.py +2 -22
  24. {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/METADATA +1 -1
  25. {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/RECORD +28 -26
  26. {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/LICENSE +0 -0
  27. {flwr_nightly-1.8.0.dev20240328.dist-info → flwr_nightly-1.8.0.dev20240402.dist-info}/WHEEL +0 -0
  28. {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 DEFAULT_TTL, ConfigsRecord, Context, GetParametersIns, log
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
- client_trace = traceback.format_exc()
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.8.0.dev20240328
3
+ Version: 1.8.0.dev20240402
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -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=bRrLIfn3MIZKfsVq8AlgYmhpI08UTioaOlyx6YLaLR4,25536
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=30Tl_AOEi4CE8wEQbKJ3tWg4GfbsSoV1Ztc8iWE0ge4,8047
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=3kpnUbS06rNQ969EybGx7zZfQPc2JmCuViyrIt610V0,7421
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=WGkml4gmrbbJ6OAmW3jARmL5nGaOoXo7JjWQbhPhizM,12422
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=vd4d9VRaft3j6hc3MCWuB4zu2_BVjbVOUfu7kLBy0_g,1954
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=Plhm9fsi4ewb90eGALQZ9xBkR0cGEsckX5RLSMEaS3M,6118
67
- flwr/common/message.py,sha256=vgFSCOkPbl60iS4-XQJ8-rHL54MvNc2AwNSSxVl6qYY,11773
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=H_hKqKaEI8vZPywWmoAtJYkcUnKhlYc4kV63zRY0kWA,10856
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=_FkDeb0JUCYlC6YyaKC4tZ74j5TS_s-aYZemAukAzdQ,4316
102
- flwr/proto/fleet_pb2.pyi,sha256=T5zOGs6gnEvtgqu4msnLOd35jcRQ6t13QyyPK6OOuf0,7325
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=_crOuSbU9P5jKIjIJ4puTOr7-5sKHtSvNhHY995JN7M,9660
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=lYUzvzgoPSkOB_6ZxrLcpnPixKQY8Uq5XVD8Mb1Cino,4280
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=N5VqopkVuXWg0h1_qzINUQ59bFKq-CXbKSi5DmSSrxs,3161
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=7JCs7NW4Qq8W5QhXxqsQNFiCLlRY-b_iD420vH1Mu-U,5906
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=EV4ISvHZPucVLD3lYVFF5fQ4yyxmoaoZMdp_1B2k6J8,11789
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=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
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=_zAS8yeT4UW2IY9TyWPx9w_C6fUHL79mO980S3UZITs,12655
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=3TjJdhYA4xyR7e-cyVBdcGe9os7ErHHayoKBJaH8KcE,29187
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=OWjgYW--fswkEDqTP9L_cZblBeUVL59vNz5gvzPAHFk,20054
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.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,,
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,,