flwr-nightly 1.14.0.dev20241212__py3-none-any.whl → 1.14.0.dev20241213__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/cli/app.py +1 -0
- flwr/cli/build.py +1 -0
- flwr/cli/config_utils.py +1 -0
- flwr/cli/example.py +1 -0
- flwr/cli/install.py +1 -0
- flwr/cli/log.py +1 -0
- flwr/cli/login/__init__.py +1 -0
- flwr/cli/login/login.py +1 -0
- flwr/cli/new/__init__.py +1 -0
- flwr/cli/new/new.py +1 -0
- flwr/cli/run/__init__.py +1 -0
- flwr/cli/run/run.py +1 -0
- flwr/cli/utils.py +1 -0
- flwr/client/app.py +3 -2
- flwr/client/client.py +1 -0
- flwr/client/clientapp/app.py +1 -0
- flwr/client/clientapp/utils.py +1 -0
- flwr/client/grpc_adapter_client/connection.py +1 -1
- flwr/client/grpc_client/connection.py +1 -1
- flwr/client/grpc_rere_client/connection.py +3 -3
- flwr/client/message_handler/message_handler.py +1 -0
- flwr/client/mod/comms_mods.py +1 -0
- flwr/client/nodestate/__init__.py +1 -0
- flwr/client/nodestate/nodestate.py +1 -0
- flwr/client/nodestate/nodestate_factory.py +1 -0
- flwr/client/rest_client/connection.py +3 -3
- flwr/client/supernode/app.py +1 -0
- flwr/common/address.py +1 -0
- flwr/common/args.py +1 -0
- flwr/common/config.py +1 -0
- flwr/common/logger.py +1 -0
- flwr/common/message.py +1 -0
- flwr/common/pyproject.py +1 -0
- flwr/common/record/__init__.py +1 -0
- flwr/common/record/parametersrecord.py +1 -0
- flwr/common/version.py +1 -0
- flwr/server/app.py +1 -0
- flwr/server/driver/grpc_driver.py +1 -0
- flwr/server/driver/inmemory_driver.py +5 -1
- flwr/server/serverapp/app.py +1 -0
- flwr/server/strategy/dpfedavg_fixed.py +1 -0
- flwr/server/superlink/driver/serverappio_grpc.py +1 -0
- flwr/server/superlink/driver/serverappio_servicer.py +6 -18
- flwr/server/superlink/ffs/disk_ffs.py +1 -0
- flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -0
- flwr/server/superlink/fleet/vce/__init__.py +1 -0
- flwr/server/superlink/fleet/vce/backend/__init__.py +1 -0
- flwr/server/superlink/fleet/vce/backend/raybackend.py +1 -0
- flwr/server/superlink/linkstate/in_memory_linkstate.py +14 -30
- flwr/server/superlink/linkstate/linkstate.py +13 -2
- flwr/server/superlink/linkstate/sqlite_linkstate.py +24 -44
- flwr/server/superlink/simulation/simulationio_servicer.py +1 -0
- flwr/simulation/app.py +1 -0
- flwr/simulation/ray_transport/ray_actor.py +1 -0
- flwr/simulation/ray_transport/utils.py +1 -0
- flwr/simulation/run_simulation.py +1 -0
- flwr/superexec/app.py +1 -0
- flwr/superexec/deployment.py +1 -0
- flwr/superexec/exec_grpc.py +1 -0
- flwr/superexec/exec_servicer.py +8 -0
- flwr/superexec/executor.py +1 -0
- {flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/METADATA +1 -1
- {flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/RECORD +66 -66
- {flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/entry_points.txt +0 -0
flwr/cli/app.py
CHANGED
flwr/cli/build.py
CHANGED
flwr/cli/config_utils.py
CHANGED
flwr/cli/example.py
CHANGED
flwr/cli/install.py
CHANGED
flwr/cli/log.py
CHANGED
flwr/cli/login/__init__.py
CHANGED
flwr/cli/login/login.py
CHANGED
flwr/cli/new/__init__.py
CHANGED
flwr/cli/new/new.py
CHANGED
flwr/cli/run/__init__.py
CHANGED
flwr/cli/run/run.py
CHANGED
flwr/cli/utils.py
CHANGED
flwr/client/app.py
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
"""Flower client app."""
|
|
16
16
|
|
|
17
|
+
|
|
17
18
|
import signal
|
|
18
19
|
import subprocess
|
|
19
20
|
import sys
|
|
@@ -474,7 +475,7 @@ def start_client_internal(
|
|
|
474
475
|
|
|
475
476
|
run: Run = runs[run_id]
|
|
476
477
|
if get_fab is not None and run.fab_hash:
|
|
477
|
-
fab = get_fab(run.fab_hash)
|
|
478
|
+
fab = get_fab(run.fab_hash, run_id)
|
|
478
479
|
if not isolation:
|
|
479
480
|
# If `ClientApp` runs in the same process, install the FAB
|
|
480
481
|
install_from_fab(fab.content, flwr_path, True)
|
|
@@ -752,7 +753,7 @@ def _init_connection(transport: Optional[str], server_address: str) -> tuple[
|
|
|
752
753
|
Optional[Callable[[], Optional[int]]],
|
|
753
754
|
Optional[Callable[[], None]],
|
|
754
755
|
Optional[Callable[[int], Run]],
|
|
755
|
-
Optional[Callable[[str], Fab]],
|
|
756
|
+
Optional[Callable[[str, int], Fab]],
|
|
756
757
|
]
|
|
757
758
|
],
|
|
758
759
|
],
|
flwr/client/client.py
CHANGED
flwr/client/clientapp/app.py
CHANGED
flwr/client/clientapp/utils.py
CHANGED
|
@@ -48,7 +48,7 @@ def grpc_adapter( # pylint: disable=R0913,too-many-positional-arguments
|
|
|
48
48
|
Optional[Callable[[], Optional[int]]],
|
|
49
49
|
Optional[Callable[[], None]],
|
|
50
50
|
Optional[Callable[[int], Run]],
|
|
51
|
-
Optional[Callable[[str], Fab]],
|
|
51
|
+
Optional[Callable[[str, int], Fab]],
|
|
52
52
|
]
|
|
53
53
|
]:
|
|
54
54
|
"""Primitives for request/response-based interaction with a server via GrpcAdapter.
|
|
@@ -76,7 +76,7 @@ def grpc_connection( # pylint: disable=R0913,R0915,too-many-positional-argument
|
|
|
76
76
|
Optional[Callable[[], Optional[int]]],
|
|
77
77
|
Optional[Callable[[], None]],
|
|
78
78
|
Optional[Callable[[int], Run]],
|
|
79
|
-
Optional[Callable[[str], Fab]],
|
|
79
|
+
Optional[Callable[[str, int], Fab]],
|
|
80
80
|
]
|
|
81
81
|
]:
|
|
82
82
|
"""Establish a gRPC connection to a gRPC server.
|
|
@@ -84,7 +84,7 @@ def grpc_request_response( # pylint: disable=R0913,R0914,R0915,R0917
|
|
|
84
84
|
Optional[Callable[[], Optional[int]]],
|
|
85
85
|
Optional[Callable[[], None]],
|
|
86
86
|
Optional[Callable[[int], Run]],
|
|
87
|
-
Optional[Callable[[str], Fab]],
|
|
87
|
+
Optional[Callable[[str, int], Fab]],
|
|
88
88
|
]
|
|
89
89
|
]:
|
|
90
90
|
"""Primitives for request/response-based interaction with a server.
|
|
@@ -290,9 +290,9 @@ def grpc_request_response( # pylint: disable=R0913,R0914,R0915,R0917
|
|
|
290
290
|
# Return fab_id and fab_version
|
|
291
291
|
return run_from_proto(get_run_response.run)
|
|
292
292
|
|
|
293
|
-
def get_fab(fab_hash: str) -> Fab:
|
|
293
|
+
def get_fab(fab_hash: str, run_id: int) -> Fab:
|
|
294
294
|
# Call FleetAPI
|
|
295
|
-
get_fab_request = GetFabRequest(node=node, hash_str=fab_hash)
|
|
295
|
+
get_fab_request = GetFabRequest(node=node, hash_str=fab_hash, run_id=run_id)
|
|
296
296
|
get_fab_response: GetFabResponse = retry_invoker.invoke(
|
|
297
297
|
stub.GetFab,
|
|
298
298
|
request=get_fab_request,
|
flwr/client/mod/comms_mods.py
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
"""Flower NodeState."""
|
|
16
16
|
|
|
17
|
+
|
|
17
18
|
from .in_memory_nodestate import InMemoryNodeState as InMemoryNodeState
|
|
18
19
|
from .nodestate import NodeState as NodeState
|
|
19
20
|
from .nodestate_factory import NodeStateFactory as NodeStateFactory
|
|
@@ -96,7 +96,7 @@ def http_request_response( # pylint: disable=R0913,R0914,R0915,R0917
|
|
|
96
96
|
Optional[Callable[[], Optional[int]]],
|
|
97
97
|
Optional[Callable[[], None]],
|
|
98
98
|
Optional[Callable[[int], Run]],
|
|
99
|
-
Optional[Callable[[str], Fab]],
|
|
99
|
+
Optional[Callable[[str, int], Fab]],
|
|
100
100
|
]
|
|
101
101
|
]:
|
|
102
102
|
"""Primitives for request/response-based interaction with a server.
|
|
@@ -361,9 +361,9 @@ def http_request_response( # pylint: disable=R0913,R0914,R0915,R0917
|
|
|
361
361
|
|
|
362
362
|
return run_from_proto(res.run)
|
|
363
363
|
|
|
364
|
-
def get_fab(fab_hash: str) -> Fab:
|
|
364
|
+
def get_fab(fab_hash: str, run_id: int) -> Fab:
|
|
365
365
|
# Construct the request
|
|
366
|
-
req = GetFabRequest(node=node, hash_str=fab_hash)
|
|
366
|
+
req = GetFabRequest(node=node, hash_str=fab_hash, run_id=run_id)
|
|
367
367
|
|
|
368
368
|
# Send the request
|
|
369
369
|
res = _request(req, GetFabResponse, PATH_GET_FAB)
|
flwr/client/supernode/app.py
CHANGED
flwr/common/address.py
CHANGED
flwr/common/args.py
CHANGED
flwr/common/config.py
CHANGED
flwr/common/logger.py
CHANGED
flwr/common/message.py
CHANGED
flwr/common/pyproject.py
CHANGED
flwr/common/record/__init__.py
CHANGED
flwr/common/version.py
CHANGED
flwr/server/app.py
CHANGED
|
@@ -142,7 +142,11 @@ class InMemoryDriver(Driver):
|
|
|
142
142
|
# Pull TaskRes
|
|
143
143
|
task_res_list = self.state.get_task_res(task_ids=msg_ids)
|
|
144
144
|
# Delete tasks in state
|
|
145
|
-
|
|
145
|
+
# Delete the TaskIns/TaskRes pairs if TaskRes is found
|
|
146
|
+
task_ins_ids_to_delete = {
|
|
147
|
+
UUID(task_res.task.ancestry[0]) for task_res in task_res_list
|
|
148
|
+
}
|
|
149
|
+
self.state.delete_tasks(task_ins_ids=task_ins_ids_to_delete)
|
|
146
150
|
# Convert TaskRes to Message
|
|
147
151
|
msgs = [message_from_taskres(taskres) for taskres in task_res_list]
|
|
148
152
|
return msgs
|
flwr/server/serverapp/app.py
CHANGED
|
@@ -190,27 +190,15 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
|
190
190
|
# Convert each task_id str to UUID
|
|
191
191
|
task_ids: set[UUID] = {UUID(task_id) for task_id in request.task_ids}
|
|
192
192
|
|
|
193
|
-
# Register callback
|
|
194
|
-
def on_rpc_done() -> None:
|
|
195
|
-
log(
|
|
196
|
-
DEBUG,
|
|
197
|
-
"ServerAppIoServicer.PullTaskRes callback: delete TaskIns/TaskRes",
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
if context.is_active():
|
|
201
|
-
return
|
|
202
|
-
if context.code() != grpc.StatusCode.OK:
|
|
203
|
-
return
|
|
204
|
-
|
|
205
|
-
# Delete delivered TaskIns and TaskRes
|
|
206
|
-
state.delete_tasks(task_ids=task_ids)
|
|
207
|
-
|
|
208
|
-
context.add_callback(on_rpc_done)
|
|
209
|
-
|
|
210
193
|
# Read from state
|
|
211
194
|
task_res_list: list[TaskRes] = state.get_task_res(task_ids=task_ids)
|
|
212
195
|
|
|
213
|
-
|
|
196
|
+
# Delete the TaskIns/TaskRes pairs if TaskRes is found
|
|
197
|
+
task_ins_ids_to_delete = {
|
|
198
|
+
UUID(task_res.task.ancestry[0]) for task_res in task_res_list
|
|
199
|
+
}
|
|
200
|
+
state.delete_tasks(task_ins_ids=task_ins_ids_to_delete)
|
|
201
|
+
|
|
214
202
|
return PullTaskResResponse(task_res_list=task_res_list)
|
|
215
203
|
|
|
216
204
|
def GetRun(
|
|
@@ -265,41 +265,15 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
|
|
|
265
265
|
for task_res in task_res_found:
|
|
266
266
|
task_res.task.delivered_at = delivered_at
|
|
267
267
|
|
|
268
|
-
# Cleanup
|
|
269
|
-
self._force_delete_tasks_by_ids(set(ret.keys()))
|
|
270
|
-
|
|
271
268
|
return list(ret.values())
|
|
272
269
|
|
|
273
|
-
def delete_tasks(self,
|
|
274
|
-
"""Delete
|
|
275
|
-
|
|
276
|
-
task_res_to_be_deleted: set[UUID] = set()
|
|
277
|
-
|
|
278
|
-
with self.lock:
|
|
279
|
-
for task_ins_id in task_ids:
|
|
280
|
-
# Find the task_id of the matching task_res
|
|
281
|
-
for task_res_id, task_res in self.task_res_store.items():
|
|
282
|
-
if UUID(task_res.task.ancestry[0]) != task_ins_id:
|
|
283
|
-
continue
|
|
284
|
-
if task_res.task.delivered_at == "":
|
|
285
|
-
continue
|
|
286
|
-
|
|
287
|
-
task_ins_to_be_deleted.add(task_ins_id)
|
|
288
|
-
task_res_to_be_deleted.add(task_res_id)
|
|
289
|
-
|
|
290
|
-
for task_id in task_ins_to_be_deleted:
|
|
291
|
-
del self.task_ins_store[task_id]
|
|
292
|
-
del self.task_ins_id_to_task_res_id[task_id]
|
|
293
|
-
for task_id in task_res_to_be_deleted:
|
|
294
|
-
del self.task_res_store[task_id]
|
|
295
|
-
|
|
296
|
-
def _force_delete_tasks_by_ids(self, task_ids: set[UUID]) -> None:
|
|
297
|
-
"""Delete tasks based on a set of TaskIns IDs."""
|
|
298
|
-
if not task_ids:
|
|
270
|
+
def delete_tasks(self, task_ins_ids: set[UUID]) -> None:
|
|
271
|
+
"""Delete TaskIns/TaskRes pairs based on provided TaskIns IDs."""
|
|
272
|
+
if not task_ins_ids:
|
|
299
273
|
return
|
|
300
274
|
|
|
301
275
|
with self.lock:
|
|
302
|
-
for task_id in
|
|
276
|
+
for task_id in task_ins_ids:
|
|
303
277
|
# Delete TaskIns
|
|
304
278
|
if task_id in self.task_ins_store:
|
|
305
279
|
del self.task_ins_store[task_id]
|
|
@@ -308,6 +282,16 @@ class InMemoryLinkState(LinkState): # pylint: disable=R0902,R0904
|
|
|
308
282
|
task_res_id = self.task_ins_id_to_task_res_id.pop(task_id)
|
|
309
283
|
del self.task_res_store[task_res_id]
|
|
310
284
|
|
|
285
|
+
def get_task_ids_from_run_id(self, run_id: int) -> set[UUID]:
|
|
286
|
+
"""Get all TaskIns IDs for the given run_id."""
|
|
287
|
+
task_id_list: set[UUID] = set()
|
|
288
|
+
with self.lock:
|
|
289
|
+
for task_id, task_ins in self.task_ins_store.items():
|
|
290
|
+
if task_ins.run_id == run_id:
|
|
291
|
+
task_id_list.add(task_id)
|
|
292
|
+
|
|
293
|
+
return task_id_list
|
|
294
|
+
|
|
311
295
|
def num_task_ins(self) -> int:
|
|
312
296
|
"""Calculate the number of task_ins in store.
|
|
313
297
|
|
|
@@ -139,8 +139,19 @@ class LinkState(abc.ABC): # pylint: disable=R0904
|
|
|
139
139
|
"""
|
|
140
140
|
|
|
141
141
|
@abc.abstractmethod
|
|
142
|
-
def delete_tasks(self,
|
|
143
|
-
"""Delete
|
|
142
|
+
def delete_tasks(self, task_ins_ids: set[UUID]) -> None:
|
|
143
|
+
"""Delete TaskIns/TaskRes pairs based on provided TaskIns IDs.
|
|
144
|
+
|
|
145
|
+
Parameters
|
|
146
|
+
----------
|
|
147
|
+
task_ins_ids : set[UUID]
|
|
148
|
+
A set of TaskIns IDs. For each ID in the set, the corresponding
|
|
149
|
+
TaskIns and its associated TaskRes will be deleted.
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
@abc.abstractmethod
|
|
153
|
+
def get_task_ids_from_run_id(self, run_id: int) -> set[UUID]:
|
|
154
|
+
"""Get all TaskIns IDs for the given run_id."""
|
|
144
155
|
|
|
145
156
|
@abc.abstractmethod
|
|
146
157
|
def create_node(
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
"""SQLite based implemenation of the link state."""
|
|
16
16
|
|
|
17
|
+
|
|
17
18
|
# pylint: disable=too-many-lines
|
|
18
19
|
|
|
19
20
|
import json
|
|
@@ -566,9 +567,6 @@ class SqliteLinkState(LinkState): # pylint: disable=R0904
|
|
|
566
567
|
data: list[Any] = [delivered_at] + task_res_ids
|
|
567
568
|
self.query(query, data)
|
|
568
569
|
|
|
569
|
-
# Cleanup
|
|
570
|
-
self._force_delete_tasks_by_ids(set(ret.keys()))
|
|
571
|
-
|
|
572
570
|
return list(ret.values())
|
|
573
571
|
|
|
574
572
|
def num_task_ins(self) -> int:
|
|
@@ -592,68 +590,50 @@ class SqliteLinkState(LinkState): # pylint: disable=R0904
|
|
|
592
590
|
result: dict[str, int] = rows[0]
|
|
593
591
|
return result["num"]
|
|
594
592
|
|
|
595
|
-
def delete_tasks(self,
|
|
596
|
-
"""Delete
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
593
|
+
def delete_tasks(self, task_ins_ids: set[UUID]) -> None:
|
|
594
|
+
"""Delete TaskIns/TaskRes pairs based on provided TaskIns IDs."""
|
|
595
|
+
if not task_ins_ids:
|
|
596
|
+
return
|
|
597
|
+
if self.conn is None:
|
|
598
|
+
raise AttributeError("LinkState not initialized")
|
|
600
599
|
|
|
601
|
-
placeholders = ",".join([
|
|
602
|
-
data =
|
|
600
|
+
placeholders = ",".join(["?"] * len(task_ins_ids))
|
|
601
|
+
data = tuple(str(task_id) for task_id in task_ins_ids)
|
|
603
602
|
|
|
604
|
-
#
|
|
603
|
+
# Delete task_ins
|
|
605
604
|
query_1 = f"""
|
|
606
605
|
DELETE FROM task_ins
|
|
607
|
-
WHERE
|
|
608
|
-
AND task_id IN (
|
|
609
|
-
SELECT ancestry
|
|
610
|
-
FROM task_res
|
|
611
|
-
WHERE ancestry IN ({placeholders})
|
|
612
|
-
AND delivered_at != ''
|
|
613
|
-
);
|
|
606
|
+
WHERE task_id IN ({placeholders});
|
|
614
607
|
"""
|
|
615
608
|
|
|
616
|
-
#
|
|
609
|
+
# Delete task_res
|
|
617
610
|
query_2 = f"""
|
|
618
611
|
DELETE FROM task_res
|
|
619
|
-
WHERE ancestry IN ({placeholders})
|
|
620
|
-
AND delivered_at != '';
|
|
612
|
+
WHERE ancestry IN ({placeholders});
|
|
621
613
|
"""
|
|
622
614
|
|
|
623
|
-
if self.conn is None:
|
|
624
|
-
raise AttributeError("LinkState not intitialized")
|
|
625
|
-
|
|
626
615
|
with self.conn:
|
|
627
616
|
self.conn.execute(query_1, data)
|
|
628
617
|
self.conn.execute(query_2, data)
|
|
629
618
|
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
def _force_delete_tasks_by_ids(self, task_ids: set[UUID]) -> None:
|
|
633
|
-
"""Delete tasks based on a set of TaskIns IDs."""
|
|
634
|
-
if not task_ids:
|
|
635
|
-
return
|
|
619
|
+
def get_task_ids_from_run_id(self, run_id: int) -> set[UUID]:
|
|
620
|
+
"""Get all TaskIns IDs for the given run_id."""
|
|
636
621
|
if self.conn is None:
|
|
637
622
|
raise AttributeError("LinkState not initialized")
|
|
638
623
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
query_1 = f"""
|
|
644
|
-
DELETE FROM task_ins
|
|
645
|
-
WHERE task_id IN ({placeholders});
|
|
624
|
+
query = """
|
|
625
|
+
SELECT task_id
|
|
626
|
+
FROM task_ins
|
|
627
|
+
WHERE run_id = :run_id;
|
|
646
628
|
"""
|
|
647
629
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
DELETE FROM task_res
|
|
651
|
-
WHERE ancestry IN ({placeholders});
|
|
652
|
-
"""
|
|
630
|
+
sint64_run_id = convert_uint64_to_sint64(run_id)
|
|
631
|
+
data = {"run_id": sint64_run_id}
|
|
653
632
|
|
|
654
633
|
with self.conn:
|
|
655
|
-
self.conn.execute(
|
|
656
|
-
|
|
634
|
+
rows = self.conn.execute(query, data).fetchall()
|
|
635
|
+
|
|
636
|
+
return {UUID(row["task_id"]) for row in rows}
|
|
657
637
|
|
|
658
638
|
def create_node(
|
|
659
639
|
self, ping_interval: float, public_key: Optional[bytes] = None
|
flwr/simulation/app.py
CHANGED
flwr/superexec/app.py
CHANGED
flwr/superexec/deployment.py
CHANGED
flwr/superexec/exec_grpc.py
CHANGED
flwr/superexec/exec_servicer.py
CHANGED
|
@@ -19,6 +19,7 @@ import time
|
|
|
19
19
|
from collections.abc import Generator
|
|
20
20
|
from logging import ERROR, INFO
|
|
21
21
|
from typing import Any, Optional
|
|
22
|
+
from uuid import UUID
|
|
22
23
|
|
|
23
24
|
import grpc
|
|
24
25
|
|
|
@@ -160,6 +161,13 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
160
161
|
run_id=request.run_id,
|
|
161
162
|
new_status=RunStatus(Status.FINISHED, SubStatus.STOPPED, ""),
|
|
162
163
|
)
|
|
164
|
+
|
|
165
|
+
if update_success:
|
|
166
|
+
task_ids: set[UUID] = state.get_task_ids_from_run_id(request.run_id)
|
|
167
|
+
|
|
168
|
+
# Delete TaskIns and TaskRes for the `run_id`
|
|
169
|
+
state.delete_tasks(task_ids)
|
|
170
|
+
|
|
163
171
|
return StopRunResponse(success=update_success)
|
|
164
172
|
|
|
165
173
|
def GetLoginDetails(
|
flwr/superexec/executor.py
CHANGED
{flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/RECORD
RENAMED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
|
-
flwr/cli/app.py,sha256=
|
|
4
|
-
flwr/cli/build.py,sha256=
|
|
3
|
+
flwr/cli/app.py,sha256=UeXrW5gxrUnFViDjAMIxGNZZKwu3a1oAj83v53IWIWM,1382
|
|
4
|
+
flwr/cli/build.py,sha256=4P70i_FnUs0P21aTwjTXtFQSAfY-C04hUDF-2npfJdo,6345
|
|
5
5
|
flwr/cli/cli_user_auth_interceptor.py,sha256=rEjgAZmzHO0GjwdyZib6bkTI2X59ErJAZlutqpqZGF0,2952
|
|
6
|
-
flwr/cli/config_utils.py,sha256=
|
|
7
|
-
flwr/cli/example.py,sha256=
|
|
8
|
-
flwr/cli/install.py,sha256=
|
|
9
|
-
flwr/cli/log.py,sha256=
|
|
10
|
-
flwr/cli/login/__init__.py,sha256=
|
|
11
|
-
flwr/cli/login/login.py,sha256=
|
|
6
|
+
flwr/cli/config_utils.py,sha256=I4_EMv2f68mfrL_QuOYoAG--yDfKisE7tGiIg09G2YQ,12079
|
|
7
|
+
flwr/cli/example.py,sha256=uk5CoD0ZITgpY_ffsTbEKf8XOOCSUzByjHPcMSPqV18,2216
|
|
8
|
+
flwr/cli/install.py,sha256=0AD0qJD79SKgBnWOQlphcubfr4zHk8jTpFgwZbJBI_g,8180
|
|
9
|
+
flwr/cli/log.py,sha256=1HUCUnSMk1yXwjR5G4w12xGoIZmCDGA7HWBbOePsDlQ,5995
|
|
10
|
+
flwr/cli/login/__init__.py,sha256=6_9zOzbPOAH72K2wX3-9dXTAbS7Mjpa5sEn2lA6eHHI,800
|
|
11
|
+
flwr/cli/login/login.py,sha256=_G16s07CJOT1l_jlqRgIDCch0PWIjg0WPpmxI1GC7y8,2797
|
|
12
12
|
flwr/cli/ls.py,sha256=5uO0YG0XXn7paS4oUs1T7rwicApxMV3ac9ejBZfLN3k,10545
|
|
13
|
-
flwr/cli/new/__init__.py,sha256=
|
|
14
|
-
flwr/cli/new/new.py,sha256=
|
|
13
|
+
flwr/cli/new/__init__.py,sha256=pOQtPT9W4kCIttcKne5m-FtJbvTqdjTVJxzQ9AUYK8I,790
|
|
14
|
+
flwr/cli/new/new.py,sha256=scyyKt8mzkc3El1bypgkHjKwVQEc2-q4I50PxriPFdI,9922
|
|
15
15
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
16
16
|
flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
|
|
17
17
|
flwr/cli/new/templates/app/LICENSE.tpl,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
|
@@ -64,56 +64,56 @@ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=SbCIUjwCIsgTRoBb-GMwi
|
|
|
64
64
|
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=UtH3Vslg2S8fIKIHC-dJGcxz5YUK2WI3F2TUAgTsQn0,710
|
|
65
65
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=01HArBqRrbZT3O7pXOM9MqduXMNm525wv7Sj6dvYMJE,686
|
|
66
66
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=KVCIOEYNWnq6j7XOboXqZshc9aQ2PyRDUu7bZtmfJ24,710
|
|
67
|
-
flwr/cli/run/__init__.py,sha256=
|
|
68
|
-
flwr/cli/run/run.py,sha256=
|
|
67
|
+
flwr/cli/run/__init__.py,sha256=cCsKVB0SFzh2b3QmGba6BHckB85xlhjh3mh4pBpACtY,790
|
|
68
|
+
flwr/cli/run/run.py,sha256=O-avAXq9uk27BBGyRlTlaX4a1xvLwwNKJDg0XozxZQc,8140
|
|
69
69
|
flwr/cli/stop.py,sha256=pa3etMLCLxfGl9w2c2o6e5u46j6LimEmNp2zuQGxAIk,3143
|
|
70
|
-
flwr/cli/utils.py,sha256=
|
|
70
|
+
flwr/cli/utils.py,sha256=aVTtQ2RD5RM8dnmqHNEp1kIBVyjF4tJ7KupczmegWc8,8331
|
|
71
71
|
flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
|
|
72
|
-
flwr/client/app.py,sha256=
|
|
73
|
-
flwr/client/client.py,sha256=
|
|
72
|
+
flwr/client/app.py,sha256=eznpoeYPRI-pjgtb3BCZVQGz9L91SSRrXbZOMzbIt54,34398
|
|
73
|
+
flwr/client/client.py,sha256=lIIUgxHk4tofk2RljVBL5wFzPR_Ob9iURg0NpyKufPY,9081
|
|
74
74
|
flwr/client/client_app.py,sha256=cTig-N00YzTucbo9zNi6I21J8PlbflU_8J_f5CI-Wpw,10390
|
|
75
75
|
flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
|
|
76
|
-
flwr/client/clientapp/app.py,sha256=
|
|
76
|
+
flwr/client/clientapp/app.py,sha256=w94GzkFJw89xMZ69znEz6vNs0tELhMSlLlqttFuJDe8,8807
|
|
77
77
|
flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
|
|
78
|
-
flwr/client/clientapp/utils.py,sha256=
|
|
78
|
+
flwr/client/clientapp/utils.py,sha256=TTihPRO_AUhA3ZCszPsLyLZ30D_tnhTfe1ndMNVOBPg,4344
|
|
79
79
|
flwr/client/dpfedavg_numpy_client.py,sha256=4KsEvzavDKyVDU1V0kMqffTwu1lNdUCYQN-i0DTYVN8,7404
|
|
80
80
|
flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
|
|
81
|
-
flwr/client/grpc_adapter_client/connection.py,sha256=
|
|
81
|
+
flwr/client/grpc_adapter_client/connection.py,sha256=nV-hPd5q5Eblg6PgUrGGYj74mbE1a0qjfN8G3wzJVAc,4006
|
|
82
82
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
83
|
-
flwr/client/grpc_client/connection.py,sha256=
|
|
83
|
+
flwr/client/grpc_client/connection.py,sha256=gMwB87mlmRBbvPOvUA1m3C-Ci6bjMEmTRI4bJpgbyic,9416
|
|
84
84
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
85
85
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=q08lIEeJLvvonNOiejNXvmySbPObteGnbDHhEKDmWzE,5380
|
|
86
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
86
|
+
flwr/client/grpc_rere_client/connection.py,sha256=fqqorPCieqfFHbFXPniAM-qga5Lf-6-kp6DHdbk8Rrg,11148
|
|
87
87
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=sQo0I9T65t97LFGoW_PrmgaTbd18GFgi2DoAI5wQJ4k,5589
|
|
88
88
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
89
89
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
90
|
-
flwr/client/message_handler/message_handler.py,sha256=
|
|
90
|
+
flwr/client/message_handler/message_handler.py,sha256=wEbSn60qjozUfNaJIPTsSG2X9OsAKBd8D4c7TU4oJc4,6525
|
|
91
91
|
flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
|
|
92
92
|
flwr/client/mod/__init__.py,sha256=37XeXZLFq_tzFVKVtC9JaigM2bSAU7BrGQvMPCE3Q28,1159
|
|
93
93
|
flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
|
|
94
|
-
flwr/client/mod/comms_mods.py,sha256=
|
|
94
|
+
flwr/client/mod/comms_mods.py,sha256=s_H57ZXUPaWFifodCbRCOZW06IZRsilcOr9F-yWBtxg,2625
|
|
95
95
|
flwr/client/mod/localdp_mod.py,sha256=Zhcu2M1QYCaS0dfmTjkhmFABIJcFXfT6zDgV0o9sn-4,5003
|
|
96
96
|
flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4RtO_PsVA53yHc4oWco,849
|
|
97
97
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
98
98
|
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=7cNXsY07ZA0M5_9VSc52F8JUoAoGaraNDA2rgaLvvFo,19680
|
|
99
99
|
flwr/client/mod/utils.py,sha256=dFcTHOjUuuiw34fcQlvyzytYD0sCv1w9x8fQX1Yo8Oc,1201
|
|
100
|
-
flwr/client/nodestate/__init__.py,sha256=
|
|
100
|
+
flwr/client/nodestate/__init__.py,sha256=6FTlzydo1j0n55Tb-Qo0XmuqTUyRxg3x7jHgo3gU1No,976
|
|
101
101
|
flwr/client/nodestate/in_memory_nodestate.py,sha256=MKI3jVPARPWJmNGw61k1-9LIXROkTx2PrhWjDM8cpHk,1291
|
|
102
|
-
flwr/client/nodestate/nodestate.py,sha256=
|
|
103
|
-
flwr/client/nodestate/nodestate_factory.py,sha256=
|
|
102
|
+
flwr/client/nodestate/nodestate.py,sha256=CmHZdR6kVO8tkffg42W0Yb9JdRmrUonZ9deXfUNK6Hg,1024
|
|
103
|
+
flwr/client/nodestate/nodestate_factory.py,sha256=apUbcJG0a_FUVsc0TkNN3q9yovc9u_J34u9iuLFKTLQ,1430
|
|
104
104
|
flwr/client/numpy_client.py,sha256=tqGyhIkeeZQGr65BR03B7TWgx4rW3FA7G2874D8z_VU,11167
|
|
105
105
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
106
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
106
|
+
flwr/client/rest_client/connection.py,sha256=NWBu7Cc8LUTlf7GjJl3rgdCAykrE5suul_xZUV21OgI,12659
|
|
107
107
|
flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
|
|
108
108
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
109
|
-
flwr/client/supernode/app.py,sha256=
|
|
109
|
+
flwr/client/supernode/app.py,sha256=qh_hhV_PihPfzL8UMXkwvQJVHRautdsCNd5WKv_Wd40,11483
|
|
110
110
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
111
111
|
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
|
112
|
-
flwr/common/address.py,sha256=
|
|
113
|
-
flwr/common/args.py,sha256
|
|
112
|
+
flwr/common/address.py,sha256=9KNYE69WW_QVcyumsux3Qn1wmn4J7f13Y9nHASpvzbA,3018
|
|
113
|
+
flwr/common/args.py,sha256=bCvtG0hhh_hVjl9NoWsY_g7kLMIN3jCN7B883HvZ7hg,6223
|
|
114
114
|
flwr/common/auth_plugin/__init__.py,sha256=1Y8Oj3iB49IHDu9tvDih1J74Ygu7k85V9s2A4WORPyA,887
|
|
115
115
|
flwr/common/auth_plugin/auth_plugin.py,sha256=6WEAVVPrS7LgSBpd4WyHYU4EsajT2nBGI_IN3mhYzoU,3567
|
|
116
|
-
flwr/common/config.py,sha256=
|
|
116
|
+
flwr/common/config.py,sha256=vmPwtRu7JIoGCke03pJlsyrA6zTlN43flzQx-4AX1mE,8099
|
|
117
117
|
flwr/common/constant.py,sha256=9HwFVxFWbLTzMetIffUT3gAC9nPtqzBNxrKWr5A0oSI,5996
|
|
118
118
|
flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
|
|
119
119
|
flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
|
|
@@ -122,16 +122,16 @@ flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf
|
|
|
122
122
|
flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
|
|
123
123
|
flwr/common/exit_handlers.py,sha256=MracJaBeoCOC7TaXK9zCJQxhrMSx9ZtczK237qvhBpU,2806
|
|
124
124
|
flwr/common/grpc.py,sha256=AIPMAHsvcTlduaYKCgnoBnst1A7RZEgGqh0Ulm7qfJ0,2621
|
|
125
|
-
flwr/common/logger.py,sha256=
|
|
126
|
-
flwr/common/message.py,sha256=
|
|
125
|
+
flwr/common/logger.py,sha256=mdo-jhSL5--dSzaLX0oPf_XluSBEYcF93Nnloz6orC4,11941
|
|
126
|
+
flwr/common/message.py,sha256=Zv4ID2BLQsbff0F03DI_MeFoHbSqVZAdDD9NcKYv6Zo,13832
|
|
127
127
|
flwr/common/object_ref.py,sha256=fIXf8aP5mG6Nuni7dvcKK5Di3zRfRWGs4ljvqIXplds,10115
|
|
128
128
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
129
|
-
flwr/common/pyproject.py,sha256=
|
|
130
|
-
flwr/common/record/__init__.py,sha256=
|
|
129
|
+
flwr/common/pyproject.py,sha256=vEAxl800XiJ1JNJDui8vuVV-08msnB6hLt7o95viZl0,1386
|
|
130
|
+
flwr/common/record/__init__.py,sha256=LUixpq0Z-lMJwCIu1-4u5HfvRPjRMRgoAc6YJQ6UEOs,1055
|
|
131
131
|
flwr/common/record/configsrecord.py,sha256=i40jOzBx04ysZKECwaw4FdUXMdY9HgdY8GAqKdTO1Lw,6486
|
|
132
132
|
flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
|
|
133
133
|
flwr/common/record/metricsrecord.py,sha256=UywkEPbifiu_IyPUFoDJCi8WEVLujlqZERUWAWpc3vs,5752
|
|
134
|
-
flwr/common/record/parametersrecord.py,sha256=
|
|
134
|
+
flwr/common/record/parametersrecord.py,sha256=SasHn35JRHsj8G1UT76FgRjaP4ZJasejvgjBV6HnaTg,7748
|
|
135
135
|
flwr/common/record/recordset.py,sha256=sSofrBycZSqiHR4TzfI4_QoIIN-5B1LnMG0C9CiByAo,8312
|
|
136
136
|
flwr/common/record/typeddict.py,sha256=q5hL2xkXymuiCprHWb69mUmLpWQk_XXQq0hGQ69YPaw,3599
|
|
137
137
|
flwr/common/recordset_compat.py,sha256=ViSwA26h6Q55ZmV1LLjSJpcKiipV-p_JpCj4wxdE-Ow,14230
|
|
@@ -147,7 +147,7 @@ flwr/common/secure_aggregation/secaggplus_utils.py,sha256=OgYd68YBRaHQYLc-YdExj9
|
|
|
147
147
|
flwr/common/serde.py,sha256=K9ExsqcTPETESkt2HMaNtIQAIAfwmuwtJFlG-59I7Sw,31046
|
|
148
148
|
flwr/common/telemetry.py,sha256=CHIwFFQ13sWFavmEvkvA43XR1sbh1S3nWvD5TuCO2eI,8774
|
|
149
149
|
flwr/common/typing.py,sha256=Ux8rJllzqORzCiv9HYkqVVyEzmd3nOKbcmttj5d2P_I,5801
|
|
150
|
-
flwr/common/version.py,sha256=
|
|
150
|
+
flwr/common/version.py,sha256=aNSxLL49RKeLz8sPcZrsTEWtrAeQ0uxu6tjmfba4O60,1325
|
|
151
151
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
152
152
|
flwr/proto/clientappio_pb2.py,sha256=Y3PMv-JMaBGehpslgbvGY6l2u5vNpfCTFWu-fmAmBJ4,3703
|
|
153
153
|
flwr/proto/clientappio_pb2.pyi,sha256=iL6pOPmnot5wP3aXGiDfiUpp-eJIkysyju0ebPehS8Y,5670
|
|
@@ -211,7 +211,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
211
211
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
212
212
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
213
213
|
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
|
214
|
-
flwr/server/app.py,sha256=
|
|
214
|
+
flwr/server/app.py,sha256=JDF_dEnLvnZwcQgGz2E7ur8eBDC-xVU04hf2adirDvU,30869
|
|
215
215
|
flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
|
|
216
216
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
217
217
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -222,15 +222,15 @@ flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_Od
|
|
|
222
222
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
223
223
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
224
224
|
flwr/server/driver/driver.py,sha256=u_fMfqLYTroTafGCNwKPHI4lttRL-Z5CqeT3_FHSq-Q,5701
|
|
225
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
226
|
-
flwr/server/driver/inmemory_driver.py,sha256=
|
|
225
|
+
flwr/server/driver/grpc_driver.py,sha256=9Vns8XRSc3WmQn8KejJtJftgsg3UzsEwqPC8ekTGSHY,9636
|
|
226
|
+
flwr/server/driver/inmemory_driver.py,sha256=fCDhbP3OGmqWrUPQlagsMFGbEwFT0pn9OqhxeHr65zg,6614
|
|
227
227
|
flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
|
|
228
228
|
flwr/server/run_serverapp.py,sha256=oDfHaHyVT5BRcckFFQKg8AVPCWR1ek7OhNceTC8qq9g,2493
|
|
229
229
|
flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
|
|
230
230
|
flwr/server/server_app.py,sha256=RsgS6PRS5Z74cMUAHzsm8r3LWddwn00MjRs6rlacHt8,6297
|
|
231
231
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
232
232
|
flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
|
|
233
|
-
flwr/server/serverapp/app.py,sha256=
|
|
233
|
+
flwr/server/serverapp/app.py,sha256=wAIN72ESE7yY6W7qShCfnVF-DVgeGmfpIxW1JZUFWDc,7911
|
|
234
234
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
235
235
|
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
236
236
|
flwr/server/strategy/aggregate.py,sha256=PDvekufza13s9AsVmz9WASunaBs3yCtl8JVliFx9j6Q,13978
|
|
@@ -238,7 +238,7 @@ flwr/server/strategy/bulyan.py,sha256=DDNLLlTJCHgBtij7EpDsa852GHEYjjDB1iORACZO2K
|
|
|
238
238
|
flwr/server/strategy/dp_adaptive_clipping.py,sha256=zrqA9OfQu4gwUkLCXbh59sPsDd_x2IhNs-BER_ITzNE,17447
|
|
239
239
|
flwr/server/strategy/dp_fixed_clipping.py,sha256=ILmO_AsoMpstOAYK9L6hJpqf7zE6erdMj_SD_-hHAFk,12834
|
|
240
240
|
flwr/server/strategy/dpfedavg_adaptive.py,sha256=8_C0H99xztzzKLL_Gu6Pcuiv8yjs3EUJZyxYuZEBA2Y,4888
|
|
241
|
-
flwr/server/strategy/dpfedavg_fixed.py,sha256=
|
|
241
|
+
flwr/server/strategy/dpfedavg_fixed.py,sha256=WOFLTialAbxhPlktyESzBTiAiV-Kh1BsKBEjp45mhrk,7231
|
|
242
242
|
flwr/server/strategy/fault_tolerant_fedavg.py,sha256=VJkDxEIKycF3Ds-ia0lVVFZKM6_M5lG2EGSaTAUq1wM,5881
|
|
243
243
|
flwr/server/strategy/fedadagrad.py,sha256=0RwvPdv-mY6UJO16BAMb43NHqq4c4lr5iPAxzi_A8w8,6486
|
|
244
244
|
flwr/server/strategy/fedadam.py,sha256=4nvTL-FAzb-Hh0YBki8z3bpMDwhFE0mmqsutZ148ovo,7258
|
|
@@ -258,17 +258,17 @@ flwr/server/strategy/qfedavg.py,sha256=2ijNNc2vVODWLAaoYo9PCoaFvlanq0lbJ7I7Albdu
|
|
|
258
258
|
flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbCKtk,7524
|
|
259
259
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
260
260
|
flwr/server/superlink/driver/__init__.py,sha256=5soEK5QSvxNjmJQ-CGTWROc4alSAeU0e9Ad9RDhsd3E,717
|
|
261
|
-
flwr/server/superlink/driver/serverappio_grpc.py,sha256=
|
|
262
|
-
flwr/server/superlink/driver/serverappio_servicer.py,sha256=
|
|
261
|
+
flwr/server/superlink/driver/serverappio_grpc.py,sha256=62371xIRzp3k-eQTaSpb9c4TiSfueSuI7Iw5X3IafOY,2186
|
|
262
|
+
flwr/server/superlink/driver/serverappio_servicer.py,sha256=EjqseReChpd0b4ZPEVPbWiWlVMsqK-WhIbH7jNHi7IM,11880
|
|
263
263
|
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
|
264
|
-
flwr/server/superlink/ffs/disk_ffs.py,sha256=
|
|
264
|
+
flwr/server/superlink/ffs/disk_ffs.py,sha256=n_Ah0sQwXGVQ9wj5965nLjdkQQbpoHCljjXKFnwftsU,3297
|
|
265
265
|
flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
|
|
266
266
|
flwr/server/superlink/ffs/ffs_factory.py,sha256=N_eMuUZggotdGiDQ5r_Tf21xsu_ob0e3jyM6ag7d3kk,1490
|
|
267
267
|
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
268
268
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
269
269
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=WZb6y52_AzSV7qbTbZSSLkMIsxaP1tO0mVyDerce4oY,6367
|
|
270
270
|
flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=dkSKQMuMTYh1qSnuN87cAPv_mcdLg3f0PqTABHs8gUE,735
|
|
271
|
-
flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=
|
|
271
|
+
flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=ud08wi9j8OYRYVTIioL1xenOgrEbtS7afyr8MnQEk4I,6021
|
|
272
272
|
flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=JkAH_nIZaqe_9kntrg26od_jaz5XdLFuvNMgGu8xk9Q,6485
|
|
273
273
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
274
274
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=X4I2rd1ZC9fqjOg9uwdTydLxJ3JiWthkIAqb3wEv17g,12454
|
|
@@ -279,20 +279,20 @@ flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0r
|
|
|
279
279
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=WAis2WPj0L91HSfOZqX-k0n9Rs3igdARKRMsV1VlTnY,4465
|
|
280
280
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
281
281
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=WX-CiZVa4ntzMlZfBzKJtOsliP1Sm7GyHhPMqVXaehg,6605
|
|
282
|
-
flwr/server/superlink/fleet/vce/__init__.py,sha256=
|
|
283
|
-
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=
|
|
282
|
+
flwr/server/superlink/fleet/vce/__init__.py,sha256=TZJsKTpYO_djv2EXx9Ji62I8TA0JiZF8jvRyJRZkAes,784
|
|
283
|
+
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=cGgal5qpd0_MwEdIqjJbHHSIgGa6GSPoI5_byUwtG_k,1437
|
|
284
284
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0QIvVP5O-RQxKQlUGNUj974,2194
|
|
285
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
285
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=jsUkFEVQTnrucK1jNQ_cUM8YwL7W4MQNA1GAf8ibRdg,7156
|
|
286
286
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=VL6e_Jwf4uxA-X1EelxJZMv6Eji-_p2J9D0MdHG10a4,13029
|
|
287
287
|
flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
|
|
288
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
|
289
|
-
flwr/server/superlink/linkstate/linkstate.py,sha256=
|
|
288
|
+
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=haJiQ0TkinyVH4vOG-EUuEhhI78YESgjKYU6qVgXics,21638
|
|
289
|
+
flwr/server/superlink/linkstate/linkstate.py,sha256=sbI7JLAZNMtVH1ZRjRjWDrws4mL0fjvrywxAKgCw9Mw,12936
|
|
290
290
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
|
|
291
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
|
291
|
+
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=9xmHV15hAicEtViCv4X-lHQosaCUwT6-NPd2UnY0zhA,42662
|
|
292
292
|
flwr/server/superlink/linkstate/utils.py,sha256=d5uqqIOCKfd54X8CFNfUr3AWqPLpgmzsC_RagRwFugM,13321
|
|
293
293
|
flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
|
|
294
294
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=5wflYW_TS0mjmPG6OYuHMJwXD2_cYmUNhFkdOU0jMWQ,2237
|
|
295
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
|
295
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=UqOyc76IQ5iDELkyuET1J9F20K0mYib30HyVLwX_2Mg,6546
|
|
296
296
|
flwr/server/superlink/utils.py,sha256=KVb3K_g2vYfu9TnftcN0ewmev133WZcjuEePMm8d7GE,2137
|
|
297
297
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
298
298
|
flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
|
|
@@ -305,24 +305,24 @@ flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B
|
|
|
305
305
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
|
|
306
306
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=rfn2etO1nb7u-1oRl-H9q3enJZz3shMINZaBB7rPsC4,29671
|
|
307
307
|
flwr/simulation/__init__.py,sha256=5UcDVJNjFoSwWqHbGM1hKfTTUUNdwAtuoNvNrfvdkUY,1556
|
|
308
|
-
flwr/simulation/app.py,sha256=
|
|
308
|
+
flwr/simulation/app.py,sha256=qalNoJxT17bbU-kVQNGTPSFu6C7W9F1oZl4i4nzCJx0,9380
|
|
309
309
|
flwr/simulation/legacy_app.py,sha256=ySggtKEtXe8L77n8qyGXDA7UPv840MXh-QoalzoGiLU,15780
|
|
310
310
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
311
|
-
flwr/simulation/ray_transport/ray_actor.py,sha256=
|
|
311
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=k11yoAPQzFGQU-KnCCP0ZrfPPdUPXXrBe-1DKM5VdW4,18997
|
|
312
312
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
|
|
313
|
-
flwr/simulation/ray_transport/utils.py,sha256=
|
|
314
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
313
|
+
flwr/simulation/ray_transport/utils.py,sha256=wtbQhKQ4jGoiQDLJNQP17m1DSfL22ERhDBGuoeUFaAQ,2393
|
|
314
|
+
flwr/simulation/run_simulation.py,sha256=9zIDWA0fL901cobVRfVuJlTdxAIYJJqjiPV4_a1_v3U,20023
|
|
315
315
|
flwr/simulation/simulationio_connection.py,sha256=m31L9Iej-61va48E5x-wJypA6p5s82WM4PKIAmKizQA,3209
|
|
316
316
|
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
|
317
|
-
flwr/superexec/app.py,sha256=
|
|
318
|
-
flwr/superexec/deployment.py,sha256=
|
|
319
|
-
flwr/superexec/exec_grpc.py,sha256=
|
|
320
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
317
|
+
flwr/superexec/app.py,sha256=Z6kYHWd62YL0Q4YKyCAbt_BcefNfbKH6V-jCC-1NkZM,1842
|
|
318
|
+
flwr/superexec/deployment.py,sha256=wZ9G42gGS91knfplswh95MnQ83Fzu-rs6wcuNgDmmvY,6735
|
|
319
|
+
flwr/superexec/exec_grpc.py,sha256=XD94kqzigQ9tLB3hU-jVgMAS_BmlK80Z5rQ_9M6b7aY,2897
|
|
320
|
+
flwr/superexec/exec_servicer.py,sha256=8tFwj1fDBF6PzwLhByTlxM-KNZc83bG1UdE92-8DSFk,7699
|
|
321
321
|
flwr/superexec/exec_user_auth_interceptor.py,sha256=K06OU-l4LnYhTDg071hGJuOaQWEJbZsYi5qxUmmtiG0,3704
|
|
322
|
-
flwr/superexec/executor.py,sha256=
|
|
322
|
+
flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
|
|
323
323
|
flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
|
|
324
|
-
flwr_nightly-1.14.0.
|
|
325
|
-
flwr_nightly-1.14.0.
|
|
326
|
-
flwr_nightly-1.14.0.
|
|
327
|
-
flwr_nightly-1.14.0.
|
|
328
|
-
flwr_nightly-1.14.0.
|
|
324
|
+
flwr_nightly-1.14.0.dev20241213.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
325
|
+
flwr_nightly-1.14.0.dev20241213.dist-info/METADATA,sha256=7JajP-LVEnutD2dJXttOrz81Lf5wzSZYrO5os1o-zrQ,15799
|
|
326
|
+
flwr_nightly-1.14.0.dev20241213.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
327
|
+
flwr_nightly-1.14.0.dev20241213.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
|
|
328
|
+
flwr_nightly-1.14.0.dev20241213.dist-info/RECORD,,
|
{flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.14.0.dev20241212.dist-info → flwr_nightly-1.14.0.dev20241213.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|