flwr-nightly 1.11.0.dev20240813__py3-none-any.whl → 1.11.0.dev20240821__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/install.py +3 -1
- flwr/cli/run/run.py +15 -11
- flwr/client/app.py +132 -14
- flwr/client/clientapp/__init__.py +22 -0
- flwr/client/clientapp/app.py +233 -0
- flwr/client/clientapp/clientappio_servicer.py +244 -0
- flwr/client/clientapp/utils.py +108 -0
- flwr/client/grpc_rere_client/connection.py +9 -1
- flwr/client/node_state.py +17 -4
- flwr/client/rest_client/connection.py +16 -3
- flwr/client/supernode/__init__.py +0 -2
- flwr/client/supernode/app.py +37 -122
- flwr/common/__init__.py +4 -0
- flwr/common/config.py +31 -10
- flwr/common/record/configsrecord.py +49 -15
- flwr/common/record/metricsrecord.py +54 -14
- flwr/common/record/parametersrecord.py +84 -17
- flwr/common/record/recordset.py +80 -8
- 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/clientappio_pb2.py +17 -13
- flwr/proto/clientappio_pb2.pyi +24 -2
- flwr/proto/clientappio_pb2_grpc.py +34 -0
- flwr/proto/clientappio_pb2_grpc.pyi +13 -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 +12 -4
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +8 -2
- flwr/server/superlink/fleet/message_handler/message_handler.py +16 -1
- flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -2
- 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 +5 -67
- flwr/superexec/app.py +3 -3
- 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.dev20240821.dist-info}/METADATA +2 -2
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/RECORD +58 -53
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/entry_points.txt +1 -1
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/WHEEL +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
|
|
|
@@ -424,72 +425,7 @@ def _run_simulation(
|
|
|
424
425
|
verbose_logging: bool = False,
|
|
425
426
|
is_app: bool = False,
|
|
426
427
|
) -> None:
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
Parameters
|
|
430
|
-
----------
|
|
431
|
-
num_supernodes : int
|
|
432
|
-
Number of nodes that run a ClientApp. They can be sampled by a
|
|
433
|
-
Driver in the ServerApp and receive a Message describing what the ClientApp
|
|
434
|
-
should perform.
|
|
435
|
-
|
|
436
|
-
client_app : Optional[ClientApp]
|
|
437
|
-
The `ClientApp` to be executed by each of the `SuperNodes`. It will receive
|
|
438
|
-
messages sent by the `ServerApp`.
|
|
439
|
-
|
|
440
|
-
server_app : Optional[ServerApp]
|
|
441
|
-
The `ServerApp` to be executed.
|
|
442
|
-
|
|
443
|
-
backend_name : str (default: ray)
|
|
444
|
-
A simulation backend that runs `ClientApp`s.
|
|
445
|
-
|
|
446
|
-
backend_config : Optional[BackendConfig]
|
|
447
|
-
'A dictionary to configure a backend. Separate dictionaries to configure
|
|
448
|
-
different elements of backend. Supported top-level keys are `init_args`
|
|
449
|
-
for values parsed to initialisation of backend, `client_resources`
|
|
450
|
-
to define the resources for clients, and `actor` to define the actor
|
|
451
|
-
parameters. Values supported in <value> are those included by
|
|
452
|
-
`flwr.common.typing.ConfigsRecordValues`.
|
|
453
|
-
|
|
454
|
-
client_app_attr : Optional[str]
|
|
455
|
-
A path to a `ClientApp` module to be loaded: For example: `client:app` or
|
|
456
|
-
`project.package.module:wrapper.app`."
|
|
457
|
-
|
|
458
|
-
server_app_attr : Optional[str]
|
|
459
|
-
A path to a `ServerApp` module to be loaded: For example: `server:app` or
|
|
460
|
-
`project.package.module:wrapper.app`."
|
|
461
|
-
|
|
462
|
-
server_app_run_config : Optional[UserConfig]
|
|
463
|
-
Config dictionary that parameterizes the run config. It will be made accesible
|
|
464
|
-
to the ServerApp.
|
|
465
|
-
|
|
466
|
-
app_dir : str
|
|
467
|
-
Add specified directory to the PYTHONPATH and load `ClientApp` from there.
|
|
468
|
-
(Default: current working directory.)
|
|
469
|
-
|
|
470
|
-
flwr_dir : Optional[str]
|
|
471
|
-
The path containing installed Flower Apps.
|
|
472
|
-
|
|
473
|
-
run : Optional[Run]
|
|
474
|
-
An object carrying details about the run.
|
|
475
|
-
|
|
476
|
-
enable_tf_gpu_growth : bool (default: False)
|
|
477
|
-
A boolean to indicate whether to enable GPU growth on the main thread. This is
|
|
478
|
-
desirable if you make use of a TensorFlow model on your `ServerApp` while
|
|
479
|
-
having your `ClientApp` running on the same GPU. Without enabling this, you
|
|
480
|
-
might encounter an out-of-memory error because TensorFlow by default allocates
|
|
481
|
-
all GPU memory. Read mor about how `tf.config.experimental.set_memory_growth()`
|
|
482
|
-
works in the TensorFlow documentation: https://www.tensorflow.org/api/stable.
|
|
483
|
-
|
|
484
|
-
verbose_logging : bool (default: False)
|
|
485
|
-
When disabled, only INFO, WARNING and ERROR log messages will be shown. If
|
|
486
|
-
enabled, DEBUG-level logs will be displayed.
|
|
487
|
-
|
|
488
|
-
is_app : bool (default: False)
|
|
489
|
-
A flag that indicates whether the simulation is running an app or not. This is
|
|
490
|
-
needed in order to attempt loading an app's pyproject.toml when nodes register
|
|
491
|
-
a context object.
|
|
492
|
-
"""
|
|
428
|
+
"""Launch the Simulation Engine."""
|
|
493
429
|
if backend_config is None:
|
|
494
430
|
backend_config = {}
|
|
495
431
|
|
|
@@ -529,7 +465,9 @@ def _run_simulation(
|
|
|
529
465
|
# If no `Run` object is set, create one
|
|
530
466
|
if run is None:
|
|
531
467
|
run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
|
|
532
|
-
run = Run(
|
|
468
|
+
run = Run(
|
|
469
|
+
run_id=run_id, fab_id="", fab_version="", fab_hash="", override_config={}
|
|
470
|
+
)
|
|
533
471
|
|
|
534
472
|
args = (
|
|
535
473
|
num_supernodes,
|
flwr/superexec/app.py
CHANGED
|
@@ -93,9 +93,9 @@ def _parse_args_run_superexec() -> argparse.ArgumentParser:
|
|
|
93
93
|
)
|
|
94
94
|
parser.add_argument(
|
|
95
95
|
"--executor-config",
|
|
96
|
-
help="Key-value pairs for the executor config, separated by
|
|
97
|
-
'For example:\n\n`--executor-config superlink="superlink:9091"
|
|
98
|
-
'root-certificates="certificates/superlink-ca.crt"`',
|
|
96
|
+
help="Key-value pairs for the executor config, separated by spaces. "
|
|
97
|
+
'For example:\n\n`--executor-config \'superlink="superlink:9091" '
|
|
98
|
+
'root-certificates="certificates/superlink-ca.crt"\'`',
|
|
99
99
|
)
|
|
100
100
|
parser.add_argument(
|
|
101
101
|
"--insecure",
|
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.dev20240821.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.11.0.
|
|
3
|
+
Version: 1.11.0.dev20240821
|
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -212,7 +212,7 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
|
|
|
212
212
|
Flower is built by a wonderful community of researchers and engineers. [Join Slack](https://flower.ai/join-slack) to meet them, [contributions](#contributing-to-flower) are welcome.
|
|
213
213
|
|
|
214
214
|
<a href="https://github.com/adap/flower/graphs/contributors">
|
|
215
|
-
<img src="https://contrib.rocks/image?repo=adap/flower" />
|
|
215
|
+
<img src="https://contrib.rocks/image?repo=adap/flower&columns=10" />
|
|
216
216
|
</a>
|
|
217
217
|
|
|
218
218
|
## Citation
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/RECORD
RENAMED
|
@@ -2,9 +2,9 @@ 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
|
-
flwr/cli/install.py,sha256=
|
|
7
|
+
flwr/cli/install.py,sha256=tUncrbZYRbC9QEcWSeTER16plPEoU-ERP0-nMgWiSPo,7094
|
|
8
8
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
9
9
|
flwr/cli/new/new.py,sha256=VNb31-NLedm-_OK_D0aed0QxHO-tVlXjnf9UWVhC_Jk,9612
|
|
10
10
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
@@ -50,12 +50,16 @@ 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=8SoZsow349rC4KC6bfm4uV7NakqWiZahrqvd1Yb-lt0,7653
|
|
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=o_2bhmlBeZATtWnAPZhL-Q1Ly0QZxc9ou4i7t0HKumE,31956
|
|
57
57
|
flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
|
|
58
58
|
flwr/client/client_app.py,sha256=WcO4r6wrdfaus__3s22D2sYjfcptdgmVujUAYdNE6HU,10393
|
|
59
|
+
flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
|
|
60
|
+
flwr/client/clientapp/app.py,sha256=4QtblvJsZ0-V-QBbzyNqWV13ugrgJmkZnsHpBCuqgi8,7797
|
|
61
|
+
flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
|
|
62
|
+
flwr/client/clientapp/utils.py,sha256=2fYKY1LfZPalG5Cm5FbSuNMIDtouQg17GbrzPINyM_A,3990
|
|
59
63
|
flwr/client/dpfedavg_numpy_client.py,sha256=ylZ-LpBIKmL1HCiS8kq4pkp2QGalc8rYEzDHdRG3VRQ,7435
|
|
60
64
|
flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
|
|
61
65
|
flwr/client/grpc_adapter_client/connection.py,sha256=aOlCYasl8f2CrfcN-WrVEmvjAZFfEGWFOLwD6K9R0ZQ,3951
|
|
@@ -63,7 +67,7 @@ flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1
|
|
|
63
67
|
flwr/client/grpc_client/connection.py,sha256=czhRm23fwTgjN24Vf5nyNQ3hcb5Fo_5k-o9yZnelQCs,9362
|
|
64
68
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
65
69
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
|
|
66
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
70
|
+
flwr/client/grpc_rere_client/connection.py,sha256=aiIWW9fVgJZNeZ9SjUAx5ax-3825JrjYc5E5l7XvzyM,10913
|
|
67
71
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=Pw7Toi4wCUIEdBMyv4yKirjgW6814gFhhAmsTYmV4IM,5005
|
|
68
72
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
73
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
@@ -77,17 +81,17 @@ flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4R
|
|
|
77
81
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
78
82
|
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
|
|
79
83
|
flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
|
|
80
|
-
flwr/client/node_state.py,sha256=
|
|
84
|
+
flwr/client/node_state.py,sha256=ETr9XmMJ9irFT3shCM4Hv4JWN0ewV-e0S-CFwCh80B8,3953
|
|
81
85
|
flwr/client/node_state_tests.py,sha256=-4fVsn7y-z9NYBuhq-cjepgxgVuPqqQgDOL4SofrdIo,2239
|
|
82
86
|
flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
|
|
83
87
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
84
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
85
|
-
flwr/client/supernode/__init__.py,sha256=
|
|
86
|
-
flwr/client/supernode/app.py,sha256
|
|
88
|
+
flwr/client/rest_client/connection.py,sha256=SglZC4jpqc_0-VBo9cBHa1_2RO9TfPUULQ49DnYeFS0,12767
|
|
89
|
+
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
90
|
+
flwr/client/supernode/app.py,sha256=-Gnjb8g93Kb5lC_NWXTfhdLNH5XI-guJXd9u6avJ7S4,13101
|
|
87
91
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
88
|
-
flwr/common/__init__.py,sha256=
|
|
92
|
+
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
|
89
93
|
flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
|
|
90
|
-
flwr/common/config.py,sha256=
|
|
94
|
+
flwr/common/config.py,sha256=GN-eKrCuyypLMFgr1kO2d-mwiNNphaFt30UlfbaKJFk,7435
|
|
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
|
|
@@ -102,13 +106,13 @@ flwr/common/object_ref.py,sha256=qXwF441qulzl18pggrj9LDLtz92K83xjAuSA0HfPKP0,872
|
|
|
102
106
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
103
107
|
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
104
108
|
flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
|
|
105
|
-
flwr/common/record/configsrecord.py,sha256=
|
|
109
|
+
flwr/common/record/configsrecord.py,sha256=6nIpGaeB_o8SvjMfD_iehJC1efAHgWyaeGfLDJGOWW4,6273
|
|
106
110
|
flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
|
|
107
|
-
flwr/common/record/metricsrecord.py,sha256=
|
|
108
|
-
flwr/common/record/parametersrecord.py,sha256=
|
|
109
|
-
flwr/common/record/recordset.py,sha256=
|
|
110
|
-
flwr/common/record/typeddict.py,sha256=
|
|
111
|
-
flwr/common/recordset_compat.py,sha256=
|
|
111
|
+
flwr/common/record/metricsrecord.py,sha256=aTuw0gWjRaZhekf76zg0h0rES3iEnTIGPZ7-jN2PYO4,5764
|
|
112
|
+
flwr/common/record/parametersrecord.py,sha256=mOcERCUylgWLQ-hISYmOHXlt-Qohv8YtPnJdLO0Kr8U,7730
|
|
113
|
+
flwr/common/record/recordset.py,sha256=6-a6EYN2YlH0H62jymJcHGVFBB8gJo69U2lvWyAv60A,8314
|
|
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,15 +122,15 @@ 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
|
-
flwr/proto/clientappio_pb2.py,sha256=
|
|
127
|
-
flwr/proto/clientappio_pb2.pyi,sha256=
|
|
128
|
-
flwr/proto/clientappio_pb2_grpc.py,sha256=
|
|
129
|
-
flwr/proto/clientappio_pb2_grpc.pyi,sha256=
|
|
130
|
+
flwr/proto/clientappio_pb2.py,sha256=3qT-IbcGPFGh9WKpa9ZRKCYzUtwrDf-ziEY9uBhd_gU,3703
|
|
131
|
+
flwr/proto/clientappio_pb2.pyi,sha256=iL6pOPmnot5wP3aXGiDfiUpp-eJIkysyju0ebPehS8Y,5670
|
|
132
|
+
flwr/proto/clientappio_pb2_grpc.py,sha256=G35GhZ3iEOL8N6tu7Kn_ip4QUx4O2HveXngHAuU2YEM,6112
|
|
133
|
+
flwr/proto/clientappio_pb2_grpc.pyi,sha256=cybktpMPaIMwrItd8hQaQDnRv4zNu_wgRddSqR9REyI,1822
|
|
130
134
|
flwr/proto/common_pb2.py,sha256=uzSmq0FJdC-MriN9UGPFs7QVIFTKJmX5lyLnzcyZ5WE,2405
|
|
131
135
|
flwr/proto/common_pb2.pyi,sha256=0ylFO7G79qqLuRg9IQUCBdgyIIFv4m8VzrfoWad4xXU,5394
|
|
132
136
|
flwr/proto/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -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=
|
|
244
|
-
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=
|
|
248
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=9vZPmdNuRcXsCJQUv9hrzQvdvUJO4-gvxxCHJJTFvGE,4047
|
|
249
|
+
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=DsHj6XaE0pBSWLYFsUYE44NPqx6IWWTJ9sqbh3GpmvY,7961
|
|
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
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
253
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
257
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=nb_IZNW_ZKoVzM9duqPddUV4C6T1Jpz9VDBVOzpU-WE,6408
|
|
258
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=n9SfUaLDgiPVvGVudSC4dZ37vytEDlPn1WA0iUDWJ1I,12750
|
|
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=BXzDF2vMoLTne1NkHKHOGv1FH0fRNy4Ds83Vkr_Qudk,20613
|
|
277
282
|
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
278
|
-
flwr/superexec/app.py,sha256=
|
|
279
|
-
flwr/superexec/deployment.py,sha256=
|
|
283
|
+
flwr/superexec/app.py,sha256=KQuAnyTs2RQMGeIOrJjR3fJ70HsIEF3LQRKazOy27OA,6489
|
|
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.dev20240821.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
290
|
+
flwr_nightly-1.11.0.dev20240821.dist-info/METADATA,sha256=RP7AKm6ELj38eTiFF_dlf516qwA76oWyZsa1OU4D9Ew,15701
|
|
291
|
+
flwr_nightly-1.11.0.dev20240821.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
292
|
+
flwr_nightly-1.11.0.dev20240821.dist-info/entry_points.txt,sha256=3cDQVJEBRCSLzJrVYAgjXpoCjuQ74I3A9NZ61DOHdVo,388
|
|
293
|
+
flwr_nightly-1.11.0.dev20240821.dist-info/RECORD,,
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.11.0.dev20240813.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/WHEEL
RENAMED
|
File without changes
|