flwr-nightly 1.11.0.dev20240811__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 +134 -15
- 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_adapter_client/connection.py +3 -1
- flwr/client/grpc_client/connection.py +3 -2
- flwr/client/grpc_rere_client/connection.py +15 -2
- flwr/client/node_state.py +17 -4
- flwr/client/rest_client/connection.py +21 -3
- flwr/client/supernode/app.py +37 -97
- 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 +178 -1
- flwr/common/typing.py +17 -0
- flwr/proto/clientappio_pb2.py +45 -0
- flwr/proto/clientappio_pb2.pyi +132 -0
- flwr/proto/clientappio_pb2_grpc.py +135 -0
- flwr/proto/clientappio_pb2_grpc.pyi +53 -0
- flwr/proto/exec_pb2.py +16 -15
- flwr/proto/exec_pb2.pyi +7 -4
- flwr/proto/message_pb2.py +41 -0
- flwr/proto/message_pb2.pyi +125 -0
- flwr/proto/message_pb2_grpc.py +4 -0
- flwr/proto/message_pb2_grpc.pyi +4 -0
- 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/__init__.py +24 -0
- flwr/server/superlink/ffs/disk_ffs.py +107 -0
- flwr/server/superlink/ffs/ffs.py +79 -0
- 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.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/METADATA +2 -2
- {flwr_nightly-1.11.0.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/RECORD +62 -46
- {flwr_nightly-1.11.0.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/entry_points.txt +1 -0
- {flwr_nightly-1.11.0.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/WHEEL +0 -0
|
@@ -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.dev20240811.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.dev20240811.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,20 +50,24 @@ 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
|
-
flwr/client/grpc_adapter_client/connection.py,sha256=
|
|
65
|
+
flwr/client/grpc_adapter_client/connection.py,sha256=aOlCYasl8f2CrfcN-WrVEmvjAZFfEGWFOLwD6K9R0ZQ,3951
|
|
62
66
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
63
|
-
flwr/client/grpc_client/connection.py,sha256=
|
|
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=
|
|
88
|
+
flwr/client/rest_client/connection.py,sha256=SglZC4jpqc_0-VBo9cBHa1_2RO9TfPUULQ49DnYeFS0,12767
|
|
85
89
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
86
|
-
flwr/client/supernode/app.py,sha256
|
|
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,11 +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
|
|
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
|
|
126
134
|
flwr/proto/common_pb2.py,sha256=uzSmq0FJdC-MriN9UGPFs7QVIFTKJmX5lyLnzcyZ5WE,2405
|
|
127
135
|
flwr/proto/common_pb2.pyi,sha256=0ylFO7G79qqLuRg9IQUCBdgyIIFv4m8VzrfoWad4xXU,5394
|
|
128
136
|
flwr/proto/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -135,8 +143,8 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
135
143
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
136
144
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
137
145
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
138
|
-
flwr/proto/exec_pb2.py,sha256=
|
|
139
|
-
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
|
|
140
148
|
flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
|
|
141
149
|
flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
|
|
142
150
|
flwr/proto/fab_pb2.py,sha256=ztC3HnD5e-bYpp7lxrlxkdc30haAlBHswTnt4X5G1eg,1432
|
|
@@ -151,6 +159,10 @@ flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM
|
|
|
151
159
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
|
152
160
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
|
153
161
|
flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
|
|
162
|
+
flwr/proto/message_pb2.py,sha256=6fiapmq94u3T9wqW7tGsWVuyLanW31VAg0-rD2Hfk8U,3151
|
|
163
|
+
flwr/proto/message_pb2.pyi,sha256=_J9NjZa7Pr-kSO7-GGOL5EvIXQx5mQD04iVIvnVHBMU,5617
|
|
164
|
+
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
165
|
+
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
154
166
|
flwr/proto/node_pb2.py,sha256=1zfXEvgGObglIcaVb4SLFmOcHZvA8eHzEtMFM5A6FYY,1081
|
|
155
167
|
flwr/proto/node_pb2.pyi,sha256=aX3BHhgXvJE1rvcRnEE_gB-5GcaFQ0SJ88yTE223bjI,751
|
|
156
168
|
flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -173,7 +185,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
173
185
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
174
186
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
187
|
flwr/server/__init__.py,sha256=BxzPhvouvWFGi7CFpI5b4EeVR9XDqbK7Ndqg24EL_Rw,1679
|
|
176
|
-
flwr/server/app.py,sha256=
|
|
188
|
+
flwr/server/app.py,sha256=YhGK5LKD12yZOXJC6p5deAodweV91c0IInyiHx7PnWA,24252
|
|
177
189
|
flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
|
|
178
190
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
179
191
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -184,11 +196,11 @@ flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_Od
|
|
|
184
196
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
185
197
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
186
198
|
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
187
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
199
|
+
flwr/server/driver/grpc_driver.py,sha256=EbnOtrTR4cmu2ZhmPqKEmOHAhNQD1fd0hAd_xN1MePQ,9749
|
|
188
200
|
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
189
201
|
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
190
|
-
flwr/server/run_serverapp.py,sha256=
|
|
191
|
-
flwr/server/server.py,sha256=
|
|
202
|
+
flwr/server/run_serverapp.py,sha256=Lb3n-YEsZ86ZzI9vbhLytr4uiVngZ1LgHhnDtYxn42k,9633
|
|
203
|
+
flwr/server/server.py,sha256=PsJeh7ROKMoeLpIVrmbKoQUvdz-iqb54E4HZJanRUmM,17912
|
|
192
204
|
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
193
205
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
194
206
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
@@ -218,8 +230,12 @@ flwr/server/strategy/qfedavg.py,sha256=LZ-zVHRFPVMeeROgDHfMshHaAKaq9Hu9Ev9blREQm
|
|
|
218
230
|
flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5ueUk,7543
|
|
219
231
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
220
232
|
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
221
|
-
flwr/server/superlink/driver/driver_grpc.py,sha256=
|
|
222
|
-
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
|
|
235
|
+
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
|
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
|
|
223
239
|
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
224
240
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
225
241
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
|
|
@@ -229,21 +245,21 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFM
|
|
|
229
245
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
230
246
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=ROH-dr7TQZ9nVXjkKOzMhxidJguX2li8--nDnXRi-dU,12095
|
|
231
247
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
232
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
|
233
|
-
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
|
|
234
250
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
235
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
|
251
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=9qDDPwj3txHPo2dNaWQiO3UpGno5Zm9IMhJXnAPZbqg,4439
|
|
236
252
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
237
253
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
|
|
238
254
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
239
255
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
|
|
240
256
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=KL0eHScWr_YfP2eY3VP8_OOMgZwnRNW7qpu5J-ISpXI,2212
|
|
241
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
242
|
-
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
|
|
243
259
|
flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
|
|
244
|
-
flwr/server/superlink/state/in_memory_state.py,sha256=
|
|
245
|
-
flwr/server/superlink/state/sqlite_state.py,sha256=
|
|
246
|
-
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
|
|
247
263
|
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
248
264
|
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
249
265
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
@@ -252,7 +268,7 @@ flwr/server/utils/tensorboard.py,sha256=l6aMVdtZbbfCX8uwFW-WxH6P171-R-tulMcPhlyk
|
|
|
252
268
|
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
253
269
|
flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
|
|
254
270
|
flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
|
|
255
|
-
flwr/server/workflow/default_workflows.py,sha256=
|
|
271
|
+
flwr/server/workflow/default_workflows.py,sha256=q9f1N2NfOrDrR3S3FH1ePNmTMsUUNwv3cdcAejbGSlk,14086
|
|
256
272
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
257
273
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
258
274
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=LLW4LfPAVdpMhIjJBopHVl-OltYuVSqsESw3PULcrN8,29694
|
|
@@ -262,16 +278,16 @@ flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQD
|
|
|
262
278
|
flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
|
|
263
279
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
|
|
264
280
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
265
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
281
|
+
flwr/simulation/run_simulation.py,sha256=BXzDF2vMoLTne1NkHKHOGv1FH0fRNy4Ds83Vkr_Qudk,20613
|
|
266
282
|
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
267
|
-
flwr/superexec/app.py,sha256=
|
|
268
|
-
flwr/superexec/deployment.py,sha256=
|
|
283
|
+
flwr/superexec/app.py,sha256=KQuAnyTs2RQMGeIOrJjR3fJ70HsIEF3LQRKazOy27OA,6489
|
|
284
|
+
flwr/superexec/deployment.py,sha256=1qhztkcZDjaSbicligbXGqn49gbpN271rTlEVAnNuWw,6283
|
|
269
285
|
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
270
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
286
|
+
flwr/superexec/exec_servicer.py,sha256=jl0aKVjm0PLQABcTL5c3jdSIzb0Z6hpVOtrAn4Ob7ts,2323
|
|
271
287
|
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
272
288
|
flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
|
|
273
|
-
flwr_nightly-1.11.0.
|
|
274
|
-
flwr_nightly-1.11.0.
|
|
275
|
-
flwr_nightly-1.11.0.
|
|
276
|
-
flwr_nightly-1.11.0.
|
|
277
|
-
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.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.11.0.dev20240811.dist-info → flwr_nightly-1.11.0.dev20240821.dist-info}/WHEEL
RENAMED
|
File without changes
|