flwr-nightly 1.11.0.dev20240813__py3-none-any.whl → 1.11.0.dev20240816__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/config_utils.py +2 -2
- flwr/cli/run/run.py +11 -6
- flwr/client/app.py +97 -12
- flwr/client/grpc_rere_client/connection.py +9 -1
- flwr/client/process/__init__.py +15 -0
- flwr/client/process/clientappio_servicer.py +144 -0
- flwr/client/process/process.py +143 -0
- flwr/client/process/utils.py +108 -0
- flwr/client/rest_client/connection.py +16 -3
- flwr/client/supernode/app.py +25 -97
- flwr/common/config.py +7 -2
- flwr/common/record/recordset.py +9 -7
- flwr/common/record/typeddict.py +20 -58
- flwr/common/recordset_compat.py +6 -6
- flwr/common/serde.py +24 -2
- flwr/common/typing.py +1 -0
- flwr/proto/exec_pb2.py +16 -15
- flwr/proto/exec_pb2.pyi +7 -4
- flwr/proto/message_pb2.py +2 -2
- flwr/proto/message_pb2.pyi +4 -1
- flwr/server/app.py +15 -0
- flwr/server/driver/grpc_driver.py +1 -0
- flwr/server/run_serverapp.py +18 -2
- flwr/server/server.py +3 -1
- flwr/server/superlink/driver/driver_grpc.py +3 -0
- flwr/server/superlink/driver/driver_servicer.py +32 -4
- flwr/server/superlink/ffs/disk_ffs.py +6 -3
- flwr/server/superlink/ffs/ffs.py +3 -3
- flwr/server/superlink/ffs/ffs_factory.py +47 -0
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +9 -3
- flwr/server/superlink/fleet/message_handler/message_handler.py +16 -1
- flwr/server/superlink/fleet/vce/vce_api.py +2 -2
- flwr/server/superlink/state/in_memory_state.py +7 -5
- flwr/server/superlink/state/sqlite_state.py +17 -7
- flwr/server/superlink/state/state.py +4 -3
- flwr/server/workflow/default_workflows.py +3 -1
- flwr/simulation/run_simulation.py +4 -1
- flwr/superexec/deployment.py +8 -9
- flwr/superexec/exec_servicer.py +1 -1
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/METADATA +1 -1
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/RECORD +44 -39
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/entry_points.txt +0 -0
|
@@ -65,6 +65,7 @@ CREATE TABLE IF NOT EXISTS run(
|
|
|
65
65
|
run_id INTEGER UNIQUE,
|
|
66
66
|
fab_id TEXT,
|
|
67
67
|
fab_version TEXT,
|
|
68
|
+
fab_hash TEXT,
|
|
68
69
|
override_config TEXT
|
|
69
70
|
);
|
|
70
71
|
"""
|
|
@@ -617,8 +618,9 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
617
618
|
|
|
618
619
|
def create_run(
|
|
619
620
|
self,
|
|
620
|
-
fab_id: str,
|
|
621
|
-
fab_version: str,
|
|
621
|
+
fab_id: Optional[str],
|
|
622
|
+
fab_version: Optional[str],
|
|
623
|
+
fab_hash: Optional[str],
|
|
622
624
|
override_config: UserConfig,
|
|
623
625
|
) -> int:
|
|
624
626
|
"""Create a new run for the specified `fab_id` and `fab_version`."""
|
|
@@ -630,12 +632,19 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
630
632
|
# If run_id does not exist
|
|
631
633
|
if self.query(query, (run_id,))[0]["COUNT(*)"] == 0:
|
|
632
634
|
query = (
|
|
633
|
-
"INSERT INTO run
|
|
634
|
-
"
|
|
635
|
-
|
|
636
|
-
self.query(
|
|
637
|
-
query, (run_id, fab_id, fab_version, json.dumps(override_config))
|
|
635
|
+
"INSERT INTO run "
|
|
636
|
+
"(run_id, fab_id, fab_version, fab_hash, override_config)"
|
|
637
|
+
"VALUES (?, ?, ?, ?, ?);"
|
|
638
638
|
)
|
|
639
|
+
if fab_hash:
|
|
640
|
+
self.query(
|
|
641
|
+
query, (run_id, "", "", fab_hash, json.dumps(override_config))
|
|
642
|
+
)
|
|
643
|
+
else:
|
|
644
|
+
self.query(
|
|
645
|
+
query,
|
|
646
|
+
(run_id, fab_id, fab_version, "", json.dumps(override_config)),
|
|
647
|
+
)
|
|
639
648
|
return run_id
|
|
640
649
|
log(ERROR, "Unexpected run creation failure.")
|
|
641
650
|
return 0
|
|
@@ -702,6 +711,7 @@ class SqliteState(State): # pylint: disable=R0904
|
|
|
702
711
|
run_id=run_id,
|
|
703
712
|
fab_id=row["fab_id"],
|
|
704
713
|
fab_version=row["fab_version"],
|
|
714
|
+
fab_hash=row["fab_hash"],
|
|
705
715
|
override_config=json.loads(row["override_config"]),
|
|
706
716
|
)
|
|
707
717
|
except sqlite3.IntegrityError:
|
|
@@ -159,11 +159,12 @@ class State(abc.ABC): # pylint: disable=R0904
|
|
|
159
159
|
@abc.abstractmethod
|
|
160
160
|
def create_run(
|
|
161
161
|
self,
|
|
162
|
-
fab_id: str,
|
|
163
|
-
fab_version: str,
|
|
162
|
+
fab_id: Optional[str],
|
|
163
|
+
fab_version: Optional[str],
|
|
164
|
+
fab_hash: Optional[str],
|
|
164
165
|
override_config: UserConfig,
|
|
165
166
|
) -> int:
|
|
166
|
-
"""Create a new run for the specified `
|
|
167
|
+
"""Create a new run for the specified `fab_hash`."""
|
|
167
168
|
|
|
168
169
|
@abc.abstractmethod
|
|
169
170
|
def get_run(self, run_id: int) -> Optional[Run]:
|
|
@@ -167,7 +167,7 @@ def default_init_params_workflow(driver: Driver, context: Context) -> None:
|
|
|
167
167
|
context.state.parameters_records[MAIN_PARAMS_RECORD] = paramsrecord
|
|
168
168
|
|
|
169
169
|
# Evaluate initial parameters
|
|
170
|
-
log(INFO, "
|
|
170
|
+
log(INFO, "Starting evaluation of initial global parameters")
|
|
171
171
|
parameters = compat.parametersrecord_to_parameters(paramsrecord, keep_input=True)
|
|
172
172
|
res = context.strategy.evaluate(0, parameters=parameters)
|
|
173
173
|
if res is not None:
|
|
@@ -179,6 +179,8 @@ def default_init_params_workflow(driver: Driver, context: Context) -> None:
|
|
|
179
179
|
)
|
|
180
180
|
context.history.add_loss_centralized(server_round=0, loss=res[0])
|
|
181
181
|
context.history.add_metrics_centralized(server_round=0, metrics=res[1])
|
|
182
|
+
else:
|
|
183
|
+
log(INFO, "Evaluation returned no results (`None`)")
|
|
182
184
|
|
|
183
185
|
|
|
184
186
|
def default_centralized_evaluation_workflow(_: Driver, context: Context) -> None:
|
|
@@ -163,6 +163,7 @@ def run_simulation_from_cli() -> None:
|
|
|
163
163
|
run_id=run_id,
|
|
164
164
|
fab_id="",
|
|
165
165
|
fab_version="",
|
|
166
|
+
fab_hash="",
|
|
166
167
|
override_config=override_config,
|
|
167
168
|
)
|
|
168
169
|
|
|
@@ -529,7 +530,9 @@ def _run_simulation(
|
|
|
529
530
|
# If no `Run` object is set, create one
|
|
530
531
|
if run is None:
|
|
531
532
|
run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
|
|
532
|
-
run = Run(
|
|
533
|
+
run = Run(
|
|
534
|
+
run_id=run_id, fab_id="", fab_version="", fab_hash="", override_config={}
|
|
535
|
+
)
|
|
533
536
|
|
|
534
537
|
args = (
|
|
535
538
|
num_supernodes,
|
flwr/superexec/deployment.py
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
"""Deployment engine executor."""
|
|
16
16
|
|
|
17
|
+
import hashlib
|
|
17
18
|
import subprocess
|
|
18
19
|
from logging import ERROR, INFO
|
|
19
20
|
from pathlib import Path
|
|
@@ -21,12 +22,11 @@ from typing import Optional
|
|
|
21
22
|
|
|
22
23
|
from typing_extensions import override
|
|
23
24
|
|
|
24
|
-
from flwr.cli.config_utils import get_fab_metadata
|
|
25
25
|
from flwr.cli.install import install_from_fab
|
|
26
26
|
from flwr.common.grpc import create_channel
|
|
27
27
|
from flwr.common.logger import log
|
|
28
|
-
from flwr.common.serde import user_config_to_proto
|
|
29
|
-
from flwr.common.typing import UserConfig
|
|
28
|
+
from flwr.common.serde import fab_to_proto, user_config_to_proto
|
|
29
|
+
from flwr.common.typing import Fab, UserConfig
|
|
30
30
|
from flwr.proto.driver_pb2 import CreateRunRequest # pylint: disable=E0611
|
|
31
31
|
from flwr.proto.driver_pb2_grpc import DriverStub
|
|
32
32
|
from flwr.server.driver.grpc_driver import DEFAULT_SERVER_ADDRESS_DRIVER
|
|
@@ -113,8 +113,7 @@ class DeploymentEngine(Executor):
|
|
|
113
113
|
|
|
114
114
|
def _create_run(
|
|
115
115
|
self,
|
|
116
|
-
|
|
117
|
-
fab_version: str,
|
|
116
|
+
fab: Fab,
|
|
118
117
|
override_config: UserConfig,
|
|
119
118
|
) -> int:
|
|
120
119
|
if self.stub is None:
|
|
@@ -123,8 +122,7 @@ class DeploymentEngine(Executor):
|
|
|
123
122
|
assert self.stub is not None
|
|
124
123
|
|
|
125
124
|
req = CreateRunRequest(
|
|
126
|
-
|
|
127
|
-
fab_version=fab_version,
|
|
125
|
+
fab=fab_to_proto(fab),
|
|
128
126
|
override_config=user_config_to_proto(override_config),
|
|
129
127
|
)
|
|
130
128
|
res = self.stub.CreateRun(request=req)
|
|
@@ -140,11 +138,12 @@ class DeploymentEngine(Executor):
|
|
|
140
138
|
"""Start run using the Flower Deployment Engine."""
|
|
141
139
|
try:
|
|
142
140
|
# Install FAB to flwr dir
|
|
143
|
-
fab_version, fab_id = get_fab_metadata(fab_file)
|
|
144
141
|
install_from_fab(fab_file, None, True)
|
|
145
142
|
|
|
146
143
|
# Call SuperLink to create run
|
|
147
|
-
run_id: int = self._create_run(
|
|
144
|
+
run_id: int = self._create_run(
|
|
145
|
+
Fab(hashlib.sha256(fab_file).hexdigest(), fab_file), override_config
|
|
146
|
+
)
|
|
148
147
|
log(INFO, "Created run %s", str(run_id))
|
|
149
148
|
|
|
150
149
|
command = [
|
flwr/superexec/exec_servicer.py
CHANGED
|
@@ -47,7 +47,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
47
47
|
log(INFO, "ExecServicer.StartRun")
|
|
48
48
|
|
|
49
49
|
run = self.executor.start_run(
|
|
50
|
-
request.
|
|
50
|
+
request.fab.content,
|
|
51
51
|
user_config_from_proto(request.override_config),
|
|
52
52
|
user_config_from_proto(request.federation_config),
|
|
53
53
|
)
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/RECORD
RENAMED
|
@@ -2,7 +2,7 @@ flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
3
|
flwr/cli/app.py,sha256=FBcSrE35ll88VE11ib67qgsJe2GYDN25UswV9-cYcX8,1267
|
|
4
4
|
flwr/cli/build.py,sha256=gIR-nTgmLJY5ZtJFLN5ebFBCN3_hoqaioFT77AHojNU,5159
|
|
5
|
-
flwr/cli/config_utils.py,sha256=
|
|
5
|
+
flwr/cli/config_utils.py,sha256=mDGXbcIxG14UpkUplILBYUkSk5M1LeTzZYDGNx-pFpU,7540
|
|
6
6
|
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
7
|
flwr/cli/install.py,sha256=AI6Zv2dQVDHpLDX1Z_vX5XHVxmZo1OU3ndCSrD2stzQ,7059
|
|
8
8
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
@@ -50,10 +50,10 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=vIO1ArukTC76ogYLNmJ
|
|
|
50
50
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=jk_5teoyOVM9QdBea8J-nk10S6TKw81QZiiKB54ATF0,654
|
|
51
51
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=bRIvPCPvTTI4Eo5b61Rmw8WdDw3sjcohciTXgULN5l8,702
|
|
52
52
|
flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
53
|
-
flwr/cli/run/run.py,sha256=
|
|
53
|
+
flwr/cli/run/run.py,sha256=Ero4hxwZqx5ztFWvaJqslYCUBgp-AmImkomRosdGXyc,7661
|
|
54
54
|
flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
|
|
55
55
|
flwr/client/__init__.py,sha256=wzJZsYJIHf_8-PMzvfbinyzzjgh1UP1vLrAw2_yEbKI,1345
|
|
56
|
-
flwr/client/app.py,sha256=
|
|
56
|
+
flwr/client/app.py,sha256=_SN2b2gPMF83jN0lO6j8zA1n3XmOSAOgK2DbjKGktGw,30196
|
|
57
57
|
flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
|
|
58
58
|
flwr/client/client_app.py,sha256=WcO4r6wrdfaus__3s22D2sYjfcptdgmVujUAYdNE6HU,10393
|
|
59
59
|
flwr/client/dpfedavg_numpy_client.py,sha256=ylZ-LpBIKmL1HCiS8kq4pkp2QGalc8rYEzDHdRG3VRQ,7435
|
|
@@ -63,7 +63,7 @@ flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1
|
|
|
63
63
|
flwr/client/grpc_client/connection.py,sha256=czhRm23fwTgjN24Vf5nyNQ3hcb5Fo_5k-o9yZnelQCs,9362
|
|
64
64
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
65
65
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
|
|
66
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
66
|
+
flwr/client/grpc_rere_client/connection.py,sha256=aiIWW9fVgJZNeZ9SjUAx5ax-3825JrjYc5E5l7XvzyM,10913
|
|
67
67
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=Pw7Toi4wCUIEdBMyv4yKirjgW6814gFhhAmsTYmV4IM,5005
|
|
68
68
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
69
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
@@ -80,14 +80,18 @@ flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
|
|
|
80
80
|
flwr/client/node_state.py,sha256=Z0ZUPL5BWde9nfAPwR7cSV9YiNQeiEHbuMKDxqpy6-M,3492
|
|
81
81
|
flwr/client/node_state_tests.py,sha256=-4fVsn7y-z9NYBuhq-cjepgxgVuPqqQgDOL4SofrdIo,2239
|
|
82
82
|
flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
|
|
83
|
+
flwr/client/process/__init__.py,sha256=s3hTr2dOWHkSnwivaL7YbXur38bEDgSPKKvwFLa1204,711
|
|
84
|
+
flwr/client/process/clientappio_servicer.py,sha256=TMOo1EwqLfz3tgKcom7mQcHBh4GQXzVQicW0XYpkh9g,5399
|
|
85
|
+
flwr/client/process/process.py,sha256=giQIjWHIzxKfXwiIrWDw-HZGElAf9Rbj-794TXgvE-o,4718
|
|
86
|
+
flwr/client/process/utils.py,sha256=2fYKY1LfZPalG5Cm5FbSuNMIDtouQg17GbrzPINyM_A,3990
|
|
83
87
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
84
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
88
|
+
flwr/client/rest_client/connection.py,sha256=SglZC4jpqc_0-VBo9cBHa1_2RO9TfPUULQ49DnYeFS0,12767
|
|
85
89
|
flwr/client/supernode/__init__.py,sha256=8JuFMx5B06SymNWZ9ndvUimD0mopq0Yp2RdQaUANsw8,937
|
|
86
|
-
flwr/client/supernode/app.py,sha256=
|
|
90
|
+
flwr/client/supernode/app.py,sha256=FJsFD9YpzXfoLV2BjsUGe05LU98Viqo0VHmn23AdcdI,13382
|
|
87
91
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
88
92
|
flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
|
|
89
93
|
flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
|
|
90
|
-
flwr/common/config.py,sha256
|
|
94
|
+
flwr/common/config.py,sha256=-aRW4UPv4T215gjwmDNQ1p9S-9T92_DlQ9SY39roDDU,6717
|
|
91
95
|
flwr/common/constant.py,sha256=1XxuRezsr9fl3xvQNPR2kyFkwNeG_f5vZayv0PFh0kY,3012
|
|
92
96
|
flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
|
|
93
97
|
flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
|
|
@@ -106,9 +110,9 @@ flwr/common/record/configsrecord.py,sha256=VKeFEYa6cneyStqQlUOaKj12by5ZI_NXYR25L
|
|
|
106
110
|
flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
|
|
107
111
|
flwr/common/record/metricsrecord.py,sha256=Yv99oRa3LzFgSfwl903S8sB8rAgr3Sv6i6ovW7pdHsA,3923
|
|
108
112
|
flwr/common/record/parametersrecord.py,sha256=2sgjxsolFBUfnYYstIciOir0HAs95lqWY3pdcsYvsso,4838
|
|
109
|
-
flwr/common/record/recordset.py,sha256=
|
|
110
|
-
flwr/common/record/typeddict.py,sha256=
|
|
111
|
-
flwr/common/recordset_compat.py,sha256=
|
|
113
|
+
flwr/common/record/recordset.py,sha256=CKEfjk-mTIlg_aFpTfDyXme1UAXhqz2Ei-h55xxzRiY,5058
|
|
114
|
+
flwr/common/record/typeddict.py,sha256=M9zU1vjuPmKRxA0uiP2v752TB3D2VfrJzKNWx-EFviw,3016
|
|
115
|
+
flwr/common/recordset_compat.py,sha256=5prvfx8mT4ZWIEU4Gmz2wzCbO4yPjQ3ONr20uKt3UM0,13973
|
|
112
116
|
flwr/common/retry_invoker.py,sha256=dQY5fPIKhy9OiFswZhLxA9fB455u-DYCvDVcFJmrPDk,11707
|
|
113
117
|
flwr/common/secure_aggregation/__init__.py,sha256=erPnTWdOfMH0K0HQTmj5foDJ6t3iYcExy2aACy8iZNQ,731
|
|
114
118
|
flwr/common/secure_aggregation/crypto/__init__.py,sha256=nlHesCWy8xxE5s6qHWnauCtyClcMQ2K0CEXAHakY5n0,738
|
|
@@ -118,9 +122,9 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=7Y0WnWcYi8UWZEKnUb4
|
|
|
118
122
|
flwr/common/secure_aggregation/quantization.py,sha256=1obYr9qneaI8r-A0F_pghrPNG9FcAwM5svSLbzMw6C4,2310
|
|
119
123
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
120
124
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=3VssKgYF7HQIkSpROnEUoYWVt47p12PE_Rj4nYqqg04,3221
|
|
121
|
-
flwr/common/serde.py,sha256=
|
|
125
|
+
flwr/common/serde.py,sha256=SIKZa-TNCSWVtqx8L3aUkylN6gxK-IwXlgoukiYwYyc,29209
|
|
122
126
|
flwr/common/telemetry.py,sha256=nSjJHDitPhzB2qUl6LeSMT9Zld5lIk9uW98RpxQwiZw,8366
|
|
123
|
-
flwr/common/typing.py,sha256=
|
|
127
|
+
flwr/common/typing.py,sha256=rGabiSkjFvGIHwmhDqtuu-LBvz7LVSj1vyMlNtA7VA0,5004
|
|
124
128
|
flwr/common/version.py,sha256=W1ntylR04xkCP6zeSet6sRtBn7P1cje2lOqBJgYBjJY,1349
|
|
125
129
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
126
130
|
flwr/proto/clientappio_pb2.py,sha256=018Lj2HBXmEeq6KsmqFVVx2DGO2nDQqTA6YHEPjCTbc,3242
|
|
@@ -139,8 +143,8 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
139
143
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
140
144
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
141
145
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
142
|
-
flwr/proto/exec_pb2.py,sha256=
|
|
143
|
-
flwr/proto/exec_pb2.pyi,sha256=
|
|
146
|
+
flwr/proto/exec_pb2.py,sha256=iqAvJ03atrueo5duiRHD_peegJiLsrWuNnVU8lA2PXw,3231
|
|
147
|
+
flwr/proto/exec_pb2.pyi,sha256=5y6L3xFkAuCfLTn2pVIHQAlXp17YcTTq8WVDS7_MPl4,4273
|
|
144
148
|
flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
|
|
145
149
|
flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
|
|
146
150
|
flwr/proto/fab_pb2.py,sha256=ztC3HnD5e-bYpp7lxrlxkdc30haAlBHswTnt4X5G1eg,1432
|
|
@@ -155,8 +159,8 @@ flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM
|
|
|
155
159
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
|
156
160
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
|
157
161
|
flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
|
|
158
|
-
flwr/proto/message_pb2.py,sha256=
|
|
159
|
-
flwr/proto/message_pb2.pyi,sha256=
|
|
162
|
+
flwr/proto/message_pb2.py,sha256=6fiapmq94u3T9wqW7tGsWVuyLanW31VAg0-rD2Hfk8U,3151
|
|
163
|
+
flwr/proto/message_pb2.pyi,sha256=_J9NjZa7Pr-kSO7-GGOL5EvIXQx5mQD04iVIvnVHBMU,5617
|
|
160
164
|
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
161
165
|
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
162
166
|
flwr/proto/node_pb2.py,sha256=1zfXEvgGObglIcaVb4SLFmOcHZvA8eHzEtMFM5A6FYY,1081
|
|
@@ -181,7 +185,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
181
185
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
182
186
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
183
187
|
flwr/server/__init__.py,sha256=BxzPhvouvWFGi7CFpI5b4EeVR9XDqbK7Ndqg24EL_Rw,1679
|
|
184
|
-
flwr/server/app.py,sha256=
|
|
188
|
+
flwr/server/app.py,sha256=YhGK5LKD12yZOXJC6p5deAodweV91c0IInyiHx7PnWA,24252
|
|
185
189
|
flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
|
|
186
190
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
187
191
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -192,11 +196,11 @@ flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_Od
|
|
|
192
196
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
193
197
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
194
198
|
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
195
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
199
|
+
flwr/server/driver/grpc_driver.py,sha256=EbnOtrTR4cmu2ZhmPqKEmOHAhNQD1fd0hAd_xN1MePQ,9749
|
|
196
200
|
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
197
201
|
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
198
|
-
flwr/server/run_serverapp.py,sha256=
|
|
199
|
-
flwr/server/server.py,sha256=
|
|
202
|
+
flwr/server/run_serverapp.py,sha256=Lb3n-YEsZ86ZzI9vbhLytr4uiVngZ1LgHhnDtYxn42k,9633
|
|
203
|
+
flwr/server/server.py,sha256=PsJeh7ROKMoeLpIVrmbKoQUvdz-iqb54E4HZJanRUmM,17912
|
|
200
204
|
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
201
205
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
202
206
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
@@ -226,11 +230,12 @@ flwr/server/strategy/qfedavg.py,sha256=LZ-zVHRFPVMeeROgDHfMshHaAKaq9Hu9Ev9blREQm
|
|
|
226
230
|
flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5ueUk,7543
|
|
227
231
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
228
232
|
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
229
|
-
flwr/server/superlink/driver/driver_grpc.py,sha256=
|
|
230
|
-
flwr/server/superlink/driver/driver_servicer.py,sha256=
|
|
233
|
+
flwr/server/superlink/driver/driver_grpc.py,sha256=XZ8veSfKStieUgkRntvOw10F0fmHytw_lr7CDtgzLpY,2055
|
|
234
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=H8r5zdQC0ksBHPSzdMYhwIT6CXJYWox0AylDCO0aYak,6978
|
|
231
235
|
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
|
232
|
-
flwr/server/superlink/ffs/disk_ffs.py,sha256=
|
|
233
|
-
flwr/server/superlink/ffs/ffs.py,sha256=
|
|
236
|
+
flwr/server/superlink/ffs/disk_ffs.py,sha256=wluGIPZfUZdSPcTHG08nGfZtE4A35zEtLs3OFxWFvhY,3315
|
|
237
|
+
flwr/server/superlink/ffs/ffs.py,sha256=vzldg6ulYOFwOhLMk9LrUADaJaM6klP9H8_JL76iu4U,2414
|
|
238
|
+
flwr/server/superlink/ffs/ffs_factory.py,sha256=N_eMuUZggotdGiDQ5r_Tf21xsu_ob0e3jyM6ag7d3kk,1490
|
|
234
239
|
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
235
240
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
236
241
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
|
|
@@ -240,21 +245,21 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFM
|
|
|
240
245
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
241
246
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=ROH-dr7TQZ9nVXjkKOzMhxidJguX2li8--nDnXRi-dU,12095
|
|
242
247
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
243
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
|
248
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=nqLILs_LV8T-x0BCLmgHy56ml7abjmHyRgc7xTnVbnw,3941
|
|
244
249
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
|
|
245
250
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
246
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
|
251
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=9qDDPwj3txHPo2dNaWQiO3UpGno5Zm9IMhJXnAPZbqg,4439
|
|
247
252
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
248
253
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
|
|
249
254
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
250
255
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
|
|
251
256
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=KL0eHScWr_YfP2eY3VP8_OOMgZwnRNW7qpu5J-ISpXI,2212
|
|
252
257
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=6-CjUTv1cFnAb53cZzEYCuVLrVu60tPczTo8meqeqbk,6289
|
|
253
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
258
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=z59_IEeWBv0dsdHzQ0Vck_2zuGyC-U6dWjWJE3KjY9M,12748
|
|
254
259
|
flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
|
|
255
|
-
flwr/server/superlink/state/in_memory_state.py,sha256=
|
|
256
|
-
flwr/server/superlink/state/sqlite_state.py,sha256=
|
|
257
|
-
flwr/server/superlink/state/state.py,sha256=
|
|
260
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=XMcT5WvKPOrFOuKcByr5BRFacX4aR2n9bRkABUuPg-M,13206
|
|
261
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=N8eOLZUveJOzdzL31-hXRYOMqV_-w75S1InyDenaDWU,29420
|
|
262
|
+
flwr/server/superlink/state/state.py,sha256=peHACUjhUF4gfZ5icMsBGjQNa6A6rvku9a_mziRJW40,8154
|
|
258
263
|
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
259
264
|
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
260
265
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
@@ -263,7 +268,7 @@ flwr/server/utils/tensorboard.py,sha256=l6aMVdtZbbfCX8uwFW-WxH6P171-R-tulMcPhlyk
|
|
|
263
268
|
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
264
269
|
flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
|
|
265
270
|
flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
|
|
266
|
-
flwr/server/workflow/default_workflows.py,sha256=
|
|
271
|
+
flwr/server/workflow/default_workflows.py,sha256=q9f1N2NfOrDrR3S3FH1ePNmTMsUUNwv3cdcAejbGSlk,14086
|
|
267
272
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
268
273
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
269
274
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=LLW4LfPAVdpMhIjJBopHVl-OltYuVSqsESw3PULcrN8,29694
|
|
@@ -273,16 +278,16 @@ flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQD
|
|
|
273
278
|
flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
|
|
274
279
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
|
|
275
280
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
276
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
281
|
+
flwr/simulation/run_simulation.py,sha256=pKkyrAWzxf05j8AoXh2eYyYeV6PbAXtq1egv2l5JM3I,23447
|
|
277
282
|
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
278
283
|
flwr/superexec/app.py,sha256=bmYl8zABnWka9WhRQxX4p1YAI76cYG655dP09ro-V0o,6485
|
|
279
|
-
flwr/superexec/deployment.py,sha256=
|
|
284
|
+
flwr/superexec/deployment.py,sha256=1qhztkcZDjaSbicligbXGqn49gbpN271rTlEVAnNuWw,6283
|
|
280
285
|
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
281
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
286
|
+
flwr/superexec/exec_servicer.py,sha256=jl0aKVjm0PLQABcTL5c3jdSIzb0Z6hpVOtrAn4Ob7ts,2323
|
|
282
287
|
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
283
288
|
flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
|
|
284
|
-
flwr_nightly-1.11.0.
|
|
285
|
-
flwr_nightly-1.11.0.
|
|
286
|
-
flwr_nightly-1.11.0.
|
|
287
|
-
flwr_nightly-1.11.0.
|
|
288
|
-
flwr_nightly-1.11.0.
|
|
289
|
+
flwr_nightly-1.11.0.dev20240816.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
290
|
+
flwr_nightly-1.11.0.dev20240816.dist-info/METADATA,sha256=qRqnoDNkm9COyePE7Hu_RfMX2yJ_id0R-LGAytr9iK0,15690
|
|
291
|
+
flwr_nightly-1.11.0.dev20240816.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
292
|
+
flwr_nightly-1.11.0.dev20240816.dist-info/entry_points.txt,sha256=KqQQGNjnr-2IT-bheOkO9yM4Gv5BtjaBgYKRkp-NhVg,388
|
|
293
|
+
flwr_nightly-1.11.0.dev20240816.dist-info/RECORD,,
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240816.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|