flwr-nightly 1.10.0.dev20240721__py3-none-any.whl → 1.10.0.dev20240723__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 +20 -18
- flwr/cli/new/new.py +1 -1
- flwr/cli/new/templates/app/code/{client.hf.py.tpl → client.huggingface.py.tpl} +7 -5
- flwr/cli/new/templates/app/code/client.mlx.py.tpl +28 -10
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl +7 -5
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl +2 -2
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +17 -7
- flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +20 -17
- flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +5 -3
- flwr/cli/new/templates/app/code/{server.hf.py.tpl → server.huggingface.py.tpl} +2 -1
- flwr/cli/new/templates/app/code/server.jax.py.tpl +2 -1
- flwr/cli/new/templates/app/code/server.mlx.py.tpl +2 -1
- flwr/cli/new/templates/app/code/server.numpy.py.tpl +2 -1
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl +1 -1
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl +2 -1
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +1 -1
- flwr/cli/new/templates/app/code/{task.hf.py.tpl → task.huggingface.py.tpl} +13 -1
- flwr/cli/new/templates/app/code/task.mlx.py.tpl +14 -1
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +13 -2
- flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +13 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
- flwr/cli/new/templates/app/{pyproject.hf.toml.tpl → pyproject.huggingface.toml.tpl} +2 -2
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +6 -6
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +2 -2
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +4 -4
- flwr/cli/run/run.py +35 -28
- flwr/client/app.py +3 -3
- flwr/client/grpc_rere_client/connection.py +6 -2
- flwr/client/node_state.py +3 -3
- flwr/client/rest_client/connection.py +6 -2
- flwr/client/supernode/app.py +12 -43
- flwr/common/config.py +23 -17
- flwr/common/context.py +7 -7
- flwr/common/object_ref.py +84 -21
- flwr/common/serde.py +45 -0
- flwr/common/telemetry.py +17 -0
- flwr/common/typing.py +5 -1
- flwr/proto/common_pb2.py +13 -1
- flwr/proto/common_pb2.pyi +114 -0
- flwr/proto/driver_pb2.py +22 -21
- flwr/proto/driver_pb2.pyi +7 -4
- flwr/proto/exec_pb2.py +18 -13
- flwr/proto/exec_pb2.pyi +27 -5
- flwr/proto/run_pb2.py +10 -9
- flwr/proto/run_pb2.pyi +7 -4
- flwr/proto/task_pb2.py +7 -8
- flwr/server/compat/legacy_context.py +5 -4
- flwr/server/driver/grpc_driver.py +6 -2
- flwr/server/run_serverapp.py +3 -5
- flwr/server/superlink/driver/driver_servicer.py +14 -3
- flwr/server/superlink/fleet/message_handler/message_handler.py +13 -2
- flwr/server/superlink/fleet/vce/backend/__init__.py +1 -1
- flwr/server/superlink/fleet/vce/vce_api.py +4 -4
- flwr/server/superlink/state/in_memory_state.py +2 -2
- flwr/server/superlink/state/sqlite_state.py +2 -2
- flwr/server/superlink/state/state.py +3 -3
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +18 -2
- flwr/simulation/__init__.py +1 -1
- flwr/simulation/ray_transport/ray_client_proxy.py +1 -1
- flwr/simulation/run_simulation.py +39 -11
- flwr/superexec/app.py +4 -5
- flwr/superexec/deployment.py +19 -8
- flwr/superexec/exec_grpc.py +3 -2
- flwr/superexec/exec_servicer.py +3 -1
- flwr/superexec/executor.py +10 -5
- flwr/superexec/simulation.py +41 -15
- {flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/METADATA +1 -1
- {flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/RECORD +74 -74
- {flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/entry_points.txt +0 -0
flwr/superexec/deployment.py
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import subprocess
|
|
18
18
|
from logging import ERROR, INFO
|
|
19
19
|
from pathlib import Path
|
|
20
|
-
from typing import
|
|
20
|
+
from typing import Optional
|
|
21
21
|
|
|
22
22
|
from typing_extensions import override
|
|
23
23
|
|
|
@@ -25,6 +25,8 @@ 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
30
|
from flwr.proto.driver_pb2 import CreateRunRequest # pylint: disable=E0611
|
|
29
31
|
from flwr.proto.driver_pb2_grpc import DriverStub
|
|
30
32
|
from flwr.server.driver.grpc_driver import DEFAULT_SERVER_ADDRESS_DRIVER
|
|
@@ -65,13 +67,13 @@ class DeploymentEngine(Executor):
|
|
|
65
67
|
@override
|
|
66
68
|
def set_config(
|
|
67
69
|
self,
|
|
68
|
-
config:
|
|
70
|
+
config: UserConfig,
|
|
69
71
|
) -> None:
|
|
70
72
|
"""Set executor config arguments.
|
|
71
73
|
|
|
72
74
|
Parameters
|
|
73
75
|
----------
|
|
74
|
-
config :
|
|
76
|
+
config : UserConfig
|
|
75
77
|
A dictionary for configuration values.
|
|
76
78
|
Supported configuration key/value pairs:
|
|
77
79
|
- "superlink": str
|
|
@@ -84,12 +86,20 @@ class DeploymentEngine(Executor):
|
|
|
84
86
|
if not config:
|
|
85
87
|
return
|
|
86
88
|
if superlink_address := config.get("superlink"):
|
|
89
|
+
if not isinstance(superlink_address, str):
|
|
90
|
+
raise ValueError("The `superlink` value should be of type `str`.")
|
|
87
91
|
self.superlink = superlink_address
|
|
88
92
|
if root_certificates := config.get("root-certificates"):
|
|
93
|
+
if not isinstance(root_certificates, str):
|
|
94
|
+
raise ValueError(
|
|
95
|
+
"The `root-certificates` value should be of type `str`."
|
|
96
|
+
)
|
|
89
97
|
self.root_certificates = root_certificates
|
|
90
|
-
self.root_certificates_bytes = Path(root_certificates).read_bytes()
|
|
98
|
+
self.root_certificates_bytes = Path(str(root_certificates)).read_bytes()
|
|
91
99
|
if flwr_dir := config.get("flwr-dir"):
|
|
92
|
-
|
|
100
|
+
if not isinstance(flwr_dir, str):
|
|
101
|
+
raise ValueError("The `flwr-dir` value should be of type `str`.")
|
|
102
|
+
self.flwr_dir = str(flwr_dir)
|
|
93
103
|
|
|
94
104
|
def _connect(self) -> None:
|
|
95
105
|
if self.stub is not None:
|
|
@@ -105,7 +115,7 @@ class DeploymentEngine(Executor):
|
|
|
105
115
|
self,
|
|
106
116
|
fab_id: str,
|
|
107
117
|
fab_version: str,
|
|
108
|
-
override_config:
|
|
118
|
+
override_config: UserConfig,
|
|
109
119
|
) -> int:
|
|
110
120
|
if self.stub is None:
|
|
111
121
|
self._connect()
|
|
@@ -115,7 +125,7 @@ class DeploymentEngine(Executor):
|
|
|
115
125
|
req = CreateRunRequest(
|
|
116
126
|
fab_id=fab_id,
|
|
117
127
|
fab_version=fab_version,
|
|
118
|
-
override_config=override_config,
|
|
128
|
+
override_config=user_config_to_proto(override_config),
|
|
119
129
|
)
|
|
120
130
|
res = self.stub.CreateRun(request=req)
|
|
121
131
|
return int(res.run_id)
|
|
@@ -124,7 +134,8 @@ class DeploymentEngine(Executor):
|
|
|
124
134
|
def start_run(
|
|
125
135
|
self,
|
|
126
136
|
fab_file: bytes,
|
|
127
|
-
override_config:
|
|
137
|
+
override_config: UserConfig,
|
|
138
|
+
federation_config: UserConfig,
|
|
128
139
|
) -> Optional[RunTracker]:
|
|
129
140
|
"""Start run using the Flower Deployment Engine."""
|
|
130
141
|
try:
|
flwr/superexec/exec_grpc.py
CHANGED
|
@@ -15,12 +15,13 @@
|
|
|
15
15
|
"""SuperExec gRPC API."""
|
|
16
16
|
|
|
17
17
|
from logging import INFO
|
|
18
|
-
from typing import
|
|
18
|
+
from typing import Optional, Tuple
|
|
19
19
|
|
|
20
20
|
import grpc
|
|
21
21
|
|
|
22
22
|
from flwr.common import GRPC_MAX_MESSAGE_LENGTH
|
|
23
23
|
from flwr.common.logger import log
|
|
24
|
+
from flwr.common.typing import UserConfig
|
|
24
25
|
from flwr.proto.exec_pb2_grpc import add_ExecServicer_to_server
|
|
25
26
|
from flwr.server.superlink.fleet.grpc_bidi.grpc_server import generic_create_grpc_server
|
|
26
27
|
|
|
@@ -32,7 +33,7 @@ def run_superexec_api_grpc(
|
|
|
32
33
|
address: str,
|
|
33
34
|
executor: Executor,
|
|
34
35
|
certificates: Optional[Tuple[bytes, bytes, bytes]],
|
|
35
|
-
config:
|
|
36
|
+
config: UserConfig,
|
|
36
37
|
) -> grpc.Server:
|
|
37
38
|
"""Run SuperExec API (gRPC, request-response)."""
|
|
38
39
|
executor.set_config(config)
|
flwr/superexec/exec_servicer.py
CHANGED
|
@@ -21,6 +21,7 @@ from typing import Any, Dict, Generator
|
|
|
21
21
|
import grpc
|
|
22
22
|
|
|
23
23
|
from flwr.common.logger import log
|
|
24
|
+
from flwr.common.serde import user_config_from_proto
|
|
24
25
|
from flwr.proto import exec_pb2_grpc # pylint: disable=E0611
|
|
25
26
|
from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
|
|
26
27
|
StartRunRequest,
|
|
@@ -47,7 +48,8 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
47
48
|
|
|
48
49
|
run = self.executor.start_run(
|
|
49
50
|
request.fab_file,
|
|
50
|
-
|
|
51
|
+
user_config_from_proto(request.override_config),
|
|
52
|
+
user_config_from_proto(request.federation_config),
|
|
51
53
|
)
|
|
52
54
|
|
|
53
55
|
if run is None:
|
flwr/superexec/executor.py
CHANGED
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
from abc import ABC, abstractmethod
|
|
18
18
|
from dataclasses import dataclass
|
|
19
19
|
from subprocess import Popen
|
|
20
|
-
from typing import
|
|
20
|
+
from typing import Optional
|
|
21
|
+
|
|
22
|
+
from flwr.common.typing import UserConfig
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
@dataclass
|
|
@@ -34,13 +36,13 @@ class Executor(ABC):
|
|
|
34
36
|
@abstractmethod
|
|
35
37
|
def set_config(
|
|
36
38
|
self,
|
|
37
|
-
config:
|
|
39
|
+
config: UserConfig,
|
|
38
40
|
) -> None:
|
|
39
41
|
"""Register provided config as class attributes.
|
|
40
42
|
|
|
41
43
|
Parameters
|
|
42
44
|
----------
|
|
43
|
-
config :
|
|
45
|
+
config : UserConfig
|
|
44
46
|
A dictionary for configuration values.
|
|
45
47
|
"""
|
|
46
48
|
|
|
@@ -48,7 +50,8 @@ class Executor(ABC):
|
|
|
48
50
|
def start_run(
|
|
49
51
|
self,
|
|
50
52
|
fab_file: bytes,
|
|
51
|
-
override_config:
|
|
53
|
+
override_config: UserConfig,
|
|
54
|
+
federation_config: UserConfig,
|
|
52
55
|
) -> Optional[RunTracker]:
|
|
53
56
|
"""Start a run using the given Flower FAB ID and version.
|
|
54
57
|
|
|
@@ -59,8 +62,10 @@ class Executor(ABC):
|
|
|
59
62
|
----------
|
|
60
63
|
fab_file : bytes
|
|
61
64
|
The Flower App Bundle file bytes.
|
|
62
|
-
override_config:
|
|
65
|
+
override_config: UserConfig
|
|
63
66
|
The config overrides dict sent by the user (using `flwr run`).
|
|
67
|
+
federation_config: UserConfig
|
|
68
|
+
The federation options dict sent by the user (using `flwr run`).
|
|
64
69
|
|
|
65
70
|
Returns
|
|
66
71
|
-------
|
flwr/superexec/simulation.py
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import subprocess
|
|
19
19
|
import sys
|
|
20
20
|
from logging import ERROR, INFO, WARN
|
|
21
|
-
from typing import
|
|
21
|
+
from typing import Optional
|
|
22
22
|
|
|
23
23
|
from typing_extensions import override
|
|
24
24
|
|
|
@@ -26,11 +26,31 @@ from flwr.cli.config_utils import load_and_validate
|
|
|
26
26
|
from flwr.cli.install import install_from_fab
|
|
27
27
|
from flwr.common.constant import RUN_ID_NUM_BYTES
|
|
28
28
|
from flwr.common.logger import log
|
|
29
|
+
from flwr.common.typing import UserConfig
|
|
29
30
|
from flwr.server.superlink.state.utils import generate_rand_int_from_bytes
|
|
30
31
|
|
|
31
32
|
from .executor import Executor, RunTracker
|
|
32
33
|
|
|
33
34
|
|
|
35
|
+
def _user_config_to_str(user_config: UserConfig) -> str:
|
|
36
|
+
"""Convert override user config to string."""
|
|
37
|
+
user_config_list_str = []
|
|
38
|
+
for key, value in user_config.items():
|
|
39
|
+
if isinstance(value, bool):
|
|
40
|
+
user_config_list_str.append(f"{key}={str(value).lower()}")
|
|
41
|
+
elif isinstance(value, (int, float)):
|
|
42
|
+
user_config_list_str.append(f"{key}={value}")
|
|
43
|
+
elif isinstance(value, str):
|
|
44
|
+
user_config_list_str.append(f'{key}="{value}"')
|
|
45
|
+
else:
|
|
46
|
+
raise ValueError(
|
|
47
|
+
"Only types `bool`, `float`, `int` and `str` are supported"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
user_config_str = ",".join(user_config_list_str)
|
|
51
|
+
return user_config_str
|
|
52
|
+
|
|
53
|
+
|
|
34
54
|
class SimulationEngine(Executor):
|
|
35
55
|
"""Simulation engine executor.
|
|
36
56
|
|
|
@@ -42,43 +62,49 @@ class SimulationEngine(Executor):
|
|
|
42
62
|
|
|
43
63
|
def __init__(
|
|
44
64
|
self,
|
|
45
|
-
num_supernodes: Optional[
|
|
65
|
+
num_supernodes: Optional[int] = None,
|
|
46
66
|
) -> None:
|
|
47
67
|
self.num_supernodes = num_supernodes
|
|
48
68
|
|
|
49
69
|
@override
|
|
50
70
|
def set_config(
|
|
51
71
|
self,
|
|
52
|
-
config:
|
|
72
|
+
config: UserConfig,
|
|
53
73
|
) -> None:
|
|
54
74
|
"""Set executor config arguments.
|
|
55
75
|
|
|
56
76
|
Parameters
|
|
57
77
|
----------
|
|
58
|
-
config :
|
|
78
|
+
config : UserConfig
|
|
59
79
|
A dictionary for configuration values.
|
|
60
80
|
Supported configuration key/value pairs:
|
|
61
|
-
- "num-supernodes":
|
|
81
|
+
- "num-supernodes": int
|
|
62
82
|
Number of nodes to register for the simulation.
|
|
63
83
|
"""
|
|
64
84
|
if not config:
|
|
65
85
|
return
|
|
66
86
|
if num_supernodes := config.get("num-supernodes"):
|
|
87
|
+
if not isinstance(num_supernodes, int):
|
|
88
|
+
raise ValueError("The `num-supernodes` value should be of type `int`.")
|
|
67
89
|
self.num_supernodes = num_supernodes
|
|
68
|
-
|
|
69
|
-
# Validate config
|
|
70
|
-
if self.num_supernodes is None:
|
|
90
|
+
else:
|
|
71
91
|
log(
|
|
72
92
|
ERROR,
|
|
73
93
|
"To start a run with the simulation plugin, please specify "
|
|
74
94
|
"the number of SuperNodes. This can be done by using the "
|
|
75
95
|
"`--executor-config` argument when launching the SuperExec.",
|
|
76
96
|
)
|
|
77
|
-
raise ValueError(
|
|
97
|
+
raise ValueError(
|
|
98
|
+
"`num-supernodes` must not be `None`, it must be a valid "
|
|
99
|
+
"positive integer."
|
|
100
|
+
)
|
|
78
101
|
|
|
79
102
|
@override
|
|
80
103
|
def start_run(
|
|
81
|
-
self,
|
|
104
|
+
self,
|
|
105
|
+
fab_file: bytes,
|
|
106
|
+
override_config: UserConfig,
|
|
107
|
+
federation_config: UserConfig,
|
|
82
108
|
) -> Optional[RunTracker]:
|
|
83
109
|
"""Start run using the Flower Simulation Engine."""
|
|
84
110
|
try:
|
|
@@ -116,18 +142,18 @@ class SimulationEngine(Executor):
|
|
|
116
142
|
"--app",
|
|
117
143
|
f"{str(fab_path)}",
|
|
118
144
|
"--num-supernodes",
|
|
119
|
-
f"{self.num_supernodes}",
|
|
145
|
+
f"{federation_config.get('num-supernodes', self.num_supernodes)}",
|
|
120
146
|
"--run-id",
|
|
121
147
|
str(run_id),
|
|
122
148
|
]
|
|
123
149
|
|
|
124
150
|
if override_config:
|
|
125
|
-
|
|
151
|
+
override_config_str = _user_config_to_str(override_config)
|
|
152
|
+
command.extend(["--run-config", f"{override_config_str}"])
|
|
126
153
|
|
|
127
154
|
# Start Simulation
|
|
128
|
-
proc = subprocess.
|
|
155
|
+
proc = subprocess.Popen( # pylint: disable=consider-using-with
|
|
129
156
|
command,
|
|
130
|
-
check=True,
|
|
131
157
|
text=True,
|
|
132
158
|
)
|
|
133
159
|
|
|
@@ -135,7 +161,7 @@ class SimulationEngine(Executor):
|
|
|
135
161
|
|
|
136
162
|
return RunTracker(
|
|
137
163
|
run_id=run_id,
|
|
138
|
-
proc=proc,
|
|
164
|
+
proc=proc,
|
|
139
165
|
)
|
|
140
166
|
|
|
141
167
|
# pylint: disable-next=broad-except
|
{flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/RECORD
RENAMED
|
@@ -2,11 +2,11 @@ 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=5igi2013fLH-TlR6MNpbxNEMaVqdBbts-E-WdY3JPsE,5167
|
|
5
|
-
flwr/cli/config_utils.py,sha256=
|
|
5
|
+
flwr/cli/config_utils.py,sha256=kSgAMA4KE2SEKmfKLEvMcYQVdT8fTEnX5JTq2t04wGM,7057
|
|
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
|
|
9
|
-
flwr/cli/new/new.py,sha256=
|
|
9
|
+
flwr/cli/new/new.py,sha256=LIUAIxhqc04rxl8sOr-9JbUlOWNiHf6UUpiDQD1hH-s,9623
|
|
10
10
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
11
11
|
flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
|
|
12
12
|
flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=PqzkGm0g6Zy-vZK9_0EO3f_U6g1r69lGc4UL8kds5Q8,2696
|
|
@@ -14,46 +14,46 @@ flwr/cli/new/templates/app/README.md.tpl,sha256=_qGtgpKYKoCJVjQnvlBMKvFs_1gzTcL9
|
|
|
14
14
|
flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
|
|
15
15
|
flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
|
|
16
16
|
flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=olwrBeJemHNBWvjc6gJURloFRqW40dAy7FRQA5pDqHU,21
|
|
17
|
-
flwr/cli/new/templates/app/code/client.
|
|
17
|
+
flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=gELeNHzJQLMhBIMxnW7rqKGHf-jE9oLMWA2-UesVCao,1813
|
|
18
18
|
flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=i_SZykD42vqEvv2ZyX655szuikXJXLc6uV1T-LWiYLU,1479
|
|
19
|
-
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=
|
|
19
|
+
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=2NBg3Q7siU-SsReTMZ6W1VwcuVImaxH7L2r1AkSJyYQ,2895
|
|
20
20
|
flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=ov9mtWJGjaQ9ZVlQ5jsuCjHDeETf13GFla5jbP3KimE,561
|
|
21
|
-
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256
|
|
22
|
-
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=
|
|
23
|
-
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=
|
|
21
|
+
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256=-Q41F1fqt_RzqM_C3qA-dKl4AoRev9jZq-pFo7LCaVU,1558
|
|
22
|
+
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=9JUQc_qAoo7dizeAhaHC_Ml06dYtEIxHZrCNxl5xTDs,2976
|
|
23
|
+
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=yIK9nE5YUaidM5YPtlfBbfMBSYDp-h7adjmT599TtR8,1891
|
|
24
24
|
flwr/cli/new/templates/app/code/flwr_tune/__init__.py,sha256=JgNgBtKdm1jKM9625WxappCAVUGtYAmcjKSsXJ1u3ZQ,748
|
|
25
|
-
flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl,sha256=
|
|
26
|
-
flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl,sha256=
|
|
25
|
+
flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl,sha256=LOtmEYYayMCpF4rJRdo059n5w_cZRmzyuEkCN2qpTyQ,2826
|
|
26
|
+
flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl,sha256=3s41XYHRvmcLhyA60tZyGCNK2wxo2shl6mwmPfZANlA,4155
|
|
27
27
|
flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl,sha256=aPjrwFU020tPkJmOjzSUjb9dSi2bhs4ZTMEyd0uRlCA,867
|
|
28
28
|
flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl,sha256=kPG4AIXQfNNHZGYC3amet3ttI23N72N6jjoDkp_wYIA,2028
|
|
29
29
|
flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl,sha256=cEq9ZWM3zImJVceNtxHC_bYBLE8OChK0BdjpWs5Wz-0,1881
|
|
30
30
|
flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl,sha256=tz4hgAGV6pn5cOFW10ELRNRsUzLBSssHxrH_gSs_jtk,1552
|
|
31
31
|
flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl,sha256=cBPpBVN_N7p4T2a3rqChlngmE0dB_jveOLHesNcEHvs,268
|
|
32
|
-
flwr/cli/new/templates/app/code/server.
|
|
33
|
-
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=
|
|
34
|
-
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=
|
|
35
|
-
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=
|
|
36
|
-
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=
|
|
37
|
-
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=
|
|
38
|
-
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=
|
|
39
|
-
flwr/cli/new/templates/app/code/task.
|
|
32
|
+
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=r-sO6W-K-apf3byEQDh70ANHfPwsRgArJgTuctFFBi4,601
|
|
33
|
+
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=hg6GrJu4B1Lifc-WyZq9vb3c5FnrTjkz3rdr3HxrJwo,518
|
|
34
|
+
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=qyo_Nla-AVC1Yf7sJJ-xlOHLLE7e0FRNkWcoltB68ag,518
|
|
35
|
+
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=R_-xdu9eEvrN_lhyqK4akSCQaj7sPP4QIACZkUZ7Ihw,520
|
|
36
|
+
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=FH6jQsUliJueMVzXlrvr1aFwXWq6Mp_6jjmNbolkEcA,834
|
|
37
|
+
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=blkpvISjmPNOaJCyZf5Ezrg8VyxXdHUzxb3vMxcD3Lg,622
|
|
38
|
+
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=LGQaVsfo5rVzgiFTew0z3O6AVwIoDG5rdobnwMpb1yE,852
|
|
39
|
+
flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=jiCZobChVJkm9OomI9_Q0bCsdGfXMgVh5bY_OulsLMk,3163
|
|
40
40
|
flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=u4o3V019EH79szOw2xzVeC5r9xgQiayPi9ZTIopV2TA,1519
|
|
41
|
-
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=
|
|
42
|
-
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=
|
|
43
|
-
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=
|
|
44
|
-
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=
|
|
45
|
-
flwr/cli/new/templates/app/pyproject.
|
|
46
|
-
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=
|
|
47
|
-
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=
|
|
48
|
-
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=
|
|
49
|
-
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=
|
|
50
|
-
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=
|
|
51
|
-
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=
|
|
41
|
+
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=r-GWvlhWo1VuqgtLUnT2pUTAGGsXdlISfzM8puuf7sQ,2935
|
|
42
|
+
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=LEBb0-IOAlnRnn-aTAYv80Fgs67wHCSP6PlhNBdsH2k,3939
|
|
43
|
+
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=8sZ8Y5kkaptzwfhAeuoBdth7VFQmD9jjjUrRvcyRrEk,1330
|
|
44
|
+
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=YIiSHT8F22WLMqxg0ckGhSMKppne_8--j5ybqX9EXp4,775
|
|
45
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=X82t0bKRzsTG1w5kjkZhCLneyFJouX41-6Uvsj1sb8Q,776
|
|
46
|
+
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=lPnpQpgNf4hVfLlgxPT8fQNMuVC1SqgZTA_SsU0pixE,649
|
|
47
|
+
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=7f7nmPVtqzBmg4q5dhCSK5Ofepg3HjnOy27BQcbQC_I,738
|
|
48
|
+
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=_p-Pn36F3i-tgbmw496FyW9RSxhJQ4TWuVdgkhh-_VU,602
|
|
49
|
+
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=2bBdohcxbVgKClrbCuOi37PKlb86wSx8tpsdfcmJg2M,688
|
|
50
|
+
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=NGCsJQYSwGLGy8y2du7DDKmSju25FbCwGDt8lzzJHHo,651
|
|
51
|
+
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=UJ9oGPeGFMdH6IGECAy7SSV2xc4J4BVkJW1BKpUdWDM,699
|
|
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=s6I2EU6dmjJHPJ_LNdjIBe9UZlCwvf5RA5O61nAgO3g,7483
|
|
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=VJ_vPMVfur5_SqUjHa18VWLB6I9kOav78f5myC_iWuk,26110
|
|
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=7J3YlvvBrky3f8UJ99U9IsPECGtcY8rvXsyr_Ol8qyY,9311
|
|
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=MFDfvYQX-ges2rOgsn1GIOTGY3Py0g2GTnHRtdOdjVA,10389
|
|
67
67
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=woljH8yr1pyLH4W4Azogyy7Nafn6y9DHBnDCIIVKwCw,4711
|
|
68
68
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
69
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
@@ -77,19 +77,19 @@ flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4R
|
|
|
77
77
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
78
78
|
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
|
|
79
79
|
flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
|
|
80
|
-
flwr/client/node_state.py,sha256=
|
|
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
83
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
84
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
84
|
+
flwr/client/rest_client/connection.py,sha256=8LPk7zPvX3l3-5QQXNym8DkIe6V14uEHmTzQ8jCcsnQ,12198
|
|
85
85
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
86
|
-
flwr/client/supernode/app.py,sha256=
|
|
86
|
+
flwr/client/supernode/app.py,sha256=GI2jnttoUt31v39Q-F2dS-WZuesG7IhGXfhP0oylaUU,14694
|
|
87
87
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
88
88
|
flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
|
|
89
89
|
flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
|
|
90
|
-
flwr/common/config.py,sha256=
|
|
90
|
+
flwr/common/config.py,sha256=IN3UVfC4h-ItpbAOhJXNsVA63ZOJ05twsmIv3AbSU04,5599
|
|
91
91
|
flwr/common/constant.py,sha256=1XxuRezsr9fl3xvQNPR2kyFkwNeG_f5vZayv0PFh0kY,3012
|
|
92
|
-
flwr/common/context.py,sha256=
|
|
92
|
+
flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
|
|
93
93
|
flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
|
|
94
94
|
flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
|
|
95
95
|
flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
|
|
@@ -98,7 +98,7 @@ flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,
|
|
|
98
98
|
flwr/common/grpc.py,sha256=_9838_onFLx7W6_lakUN35ziKpdcKp7fA-0jE0EhcEQ,2460
|
|
99
99
|
flwr/common/logger.py,sha256=42rLD69BetRkVKYXZLUaTgyjPxsCn6phVbndMC1fWjk,8130
|
|
100
100
|
flwr/common/message.py,sha256=QmFYYXA-3e9M8tGO-3NPyAI8yvdmcpdYaA_noR1DE88,13194
|
|
101
|
-
flwr/common/object_ref.py,sha256=
|
|
101
|
+
flwr/common/object_ref.py,sha256=qXwF441qulzl18pggrj9LDLtz92K83xjAuSA0HfPKP0,8724
|
|
102
102
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
103
103
|
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
104
104
|
flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
|
|
@@ -118,25 +118,25 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=7Y0WnWcYi8UWZEKnUb4
|
|
|
118
118
|
flwr/common/secure_aggregation/quantization.py,sha256=1obYr9qneaI8r-A0F_pghrPNG9FcAwM5svSLbzMw6C4,2310
|
|
119
119
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
120
120
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=3VssKgYF7HQIkSpROnEUoYWVt47p12PE_Rj4nYqqg04,3221
|
|
121
|
-
flwr/common/serde.py,sha256=
|
|
122
|
-
flwr/common/telemetry.py,sha256=
|
|
123
|
-
flwr/common/typing.py,sha256=
|
|
121
|
+
flwr/common/serde.py,sha256=0lXwbnILK16r1uFeV62pKJGxN78pArfOxo1AxAtGs6Q,23679
|
|
122
|
+
flwr/common/telemetry.py,sha256=nSjJHDitPhzB2qUl6LeSMT9Zld5lIk9uW98RpxQwiZw,8366
|
|
123
|
+
flwr/common/typing.py,sha256=tnpUbcAVFA-ic3yjoxwlQ-jjLPVUYN0B4ftUQzBVUY0,4633
|
|
124
124
|
flwr/common/version.py,sha256=W1ntylR04xkCP6zeSet6sRtBn7P1cje2lOqBJgYBjJY,1349
|
|
125
125
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
126
|
-
flwr/proto/common_pb2.py,sha256=
|
|
127
|
-
flwr/proto/common_pb2.pyi,sha256=
|
|
126
|
+
flwr/proto/common_pb2.py,sha256=uzSmq0FJdC-MriN9UGPFs7QVIFTKJmX5lyLnzcyZ5WE,2405
|
|
127
|
+
flwr/proto/common_pb2.pyi,sha256=0ylFO7G79qqLuRg9IQUCBdgyIIFv4m8VzrfoWad4xXU,5394
|
|
128
128
|
flwr/proto/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
129
129
|
flwr/proto/common_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
130
|
-
flwr/proto/driver_pb2.py,sha256=
|
|
131
|
-
flwr/proto/driver_pb2.pyi,sha256=
|
|
130
|
+
flwr/proto/driver_pb2.py,sha256=X564Q-YgZp3n9P2tFRlfgqmwgtc8RGsoeKCF_nr-ZOA,4046
|
|
131
|
+
flwr/proto/driver_pb2.pyi,sha256=7puRl1C2bowtW0vAu0cWZGrmOA8cQLZ9l5HaH5_QIKs,6095
|
|
132
132
|
flwr/proto/driver_pb2_grpc.py,sha256=lEaiX6MAHC-GzGSh0S6949jrYyBEB0ox6hWQgw1iOdQ,8887
|
|
133
133
|
flwr/proto/driver_pb2_grpc.pyi,sha256=__NCO_mAPMZt3_X_6CUIwWzOm7TmRfghoSs6syEsyAo,2425
|
|
134
134
|
flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
135
135
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
136
136
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
137
137
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
138
|
-
flwr/proto/exec_pb2.py,sha256=
|
|
139
|
-
flwr/proto/exec_pb2.pyi,sha256=
|
|
138
|
+
flwr/proto/exec_pb2.py,sha256=7b1JUZgt04lBxdXpnd3WOOwmY2egUausm4G1wbmXFPs,3120
|
|
139
|
+
flwr/proto/exec_pb2.pyi,sha256=R9xCAUxkLvuXcvQfhNGZ5Qy8qiUCdjN-gp3Iy5BmkNo,4110
|
|
140
140
|
flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
|
|
141
141
|
flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
|
|
142
142
|
flwr/proto/fab_pb2.py,sha256=k1L3z4L3pJGRIUmgt609xUe-UAtSKFwT0C7wXnb12IY,1427
|
|
@@ -159,11 +159,11 @@ flwr/proto/recordset_pb2.py,sha256=un8L0kvBcgFXQIiQweOseeIJBjlOozUvQY9uTQ42Dqo,6
|
|
|
159
159
|
flwr/proto/recordset_pb2.pyi,sha256=NPzCJWAj1xLWzeZ_xZ6uaObQjQfWGnnqlLtn4J-SoFY,14161
|
|
160
160
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
161
161
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
162
|
-
flwr/proto/run_pb2.py,sha256=
|
|
163
|
-
flwr/proto/run_pb2.pyi,sha256=
|
|
162
|
+
flwr/proto/run_pb2.py,sha256=4mSz75pYB8hM9lvPnqJmM3XL9cY7FfzAJieu3akk4Lg,2055
|
|
163
|
+
flwr/proto/run_pb2.pyi,sha256=sffgYQOJAmX7HclA8Qkr4mNiGC0a7h72sAFqaTQj9ww,2937
|
|
164
164
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
165
165
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
166
|
-
flwr/proto/task_pb2.py,sha256=
|
|
166
|
+
flwr/proto/task_pb2.py,sha256=xuXMmfPAWd7lhyyqhGrmjsfn_j_s5HRz21vMXtxziNE,2361
|
|
167
167
|
flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
|
|
168
168
|
flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
169
169
|
flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
@@ -180,14 +180,14 @@ flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw
|
|
|
180
180
|
flwr/server/compat/app.py,sha256=u0elxfiLjGouCMQIy5KnCpeCHdc3s0qvojUm8unInIs,3421
|
|
181
181
|
flwr/server/compat/app_utils.py,sha256=B9pec7LnYACzowXKZTZNu3SNS-fSaHfefwvRyAQa4Nc,3456
|
|
182
182
|
flwr/server/compat/driver_client_proxy.py,sha256=BxTDo7i89VAG2tuF4x7zogSVn2bXPMr0H2H0lERzW9c,5444
|
|
183
|
-
flwr/server/compat/legacy_context.py,sha256
|
|
183
|
+
flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
|
|
184
184
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
185
185
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
186
186
|
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
187
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
187
|
+
flwr/server/driver/grpc_driver.py,sha256=4LMLDXjMU1VdHsj9nyqFIF71GWVsUR85fsO6biWMHRU,9710
|
|
188
188
|
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
189
189
|
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
190
|
-
flwr/server/run_serverapp.py,sha256=
|
|
190
|
+
flwr/server/run_serverapp.py,sha256=khrB9bQ42p8DMRJLGoY_pQJ5bkpXyBPL0eyPdZJo29Y,9430
|
|
191
191
|
flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
|
|
192
192
|
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
193
193
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
@@ -219,7 +219,7 @@ flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5u
|
|
|
219
219
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
220
220
|
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
221
221
|
flwr/server/superlink/driver/driver_grpc.py,sha256=wMqYVeDwIc_FEfQPbCzd9p1YyIcjwiFUMX4QZjGSx5k,1932
|
|
222
|
-
flwr/server/superlink/driver/driver_servicer.py,sha256=
|
|
222
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=oqqn0ifYBKuO6qj-auPjdZJu6J7ChuYVmR0qHPvLHDY,5739
|
|
223
223
|
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
224
224
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
225
225
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
|
|
@@ -232,18 +232,18 @@ flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fG
|
|
|
232
232
|
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=1BIUy1HAcvQ6-OhAj88jjRgwWdxnYVzQHkM3xrWZGCk,3434
|
|
233
233
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
|
|
234
234
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
235
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
|
235
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=KgNah2AaNDiqsTEa653wQqVGUy8hvNAOFzeUfaQR6-Y,3893
|
|
236
236
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
237
237
|
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
|
|
238
238
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
239
|
-
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=
|
|
239
|
+
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
|
|
240
240
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=iG3KSIY7DzNfcxmuLfTs7VdQJnqPCvvn5DFkTWKG5lI,2227
|
|
241
241
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=SnjZ1WOcrfMZNgiDdTHcFeXJqrY7UHx8kvO62mqU9S4,7489
|
|
242
|
-
flwr/server/superlink/fleet/vce/vce_api.py,sha256=
|
|
242
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=jTAUX472qRIZefSL64rwLkhRe01PX_YwhFpWoLwk6Tc,12770
|
|
243
243
|
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=
|
|
244
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=LnKlnXe9JjVHb5_XOo6eD1RQhlCvJVKgz_CkXrMz8DY,13069
|
|
245
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=LdLnHtF8C-1L1IAglfZPqIuKa782Qo7qAYzTXMdMYGM,29052
|
|
246
|
+
flwr/server/superlink/state/state.py,sha256=juv9a8pQLxylfcZcXRaDBLG5gFG4MXytIcG6NlZTn4E,8117
|
|
247
247
|
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
248
248
|
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
249
249
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
@@ -255,23 +255,23 @@ flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViH
|
|
|
255
255
|
flwr/server/workflow/default_workflows.py,sha256=_GqFCaxtiq3_UVCvZWgJ200QroGSI9qibeVcT2R71ao,14003
|
|
256
256
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
257
257
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
258
|
-
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=
|
|
259
|
-
flwr/simulation/__init__.py,sha256=
|
|
258
|
+
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=LLW4LfPAVdpMhIjJBopHVl-OltYuVSqsESw3PULcrN8,29694
|
|
259
|
+
flwr/simulation/__init__.py,sha256=ybVBW3xT6cg_IasJV4_ymI3bVrCbFhw1mmcfrdfl3q0,1359
|
|
260
260
|
flwr/simulation/app.py,sha256=te3dQB3eodPwzsv1y4daPyaskIAaOtgoHaQLobrqoqY,15163
|
|
261
261
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
262
262
|
flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
|
|
263
|
-
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=
|
|
263
|
+
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
|
|
264
264
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
265
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
265
|
+
flwr/simulation/run_simulation.py,sha256=BPW_zn5xuGlOHKZDvl8J-IuwH7E8ZZAIR2zcXNjsLMo,23391
|
|
266
266
|
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
267
|
-
flwr/superexec/app.py,sha256=
|
|
268
|
-
flwr/superexec/deployment.py,sha256=
|
|
269
|
-
flwr/superexec/exec_grpc.py,sha256=
|
|
270
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
271
|
-
flwr/superexec/executor.py,sha256=
|
|
272
|
-
flwr/superexec/simulation.py,sha256=
|
|
273
|
-
flwr_nightly-1.10.0.
|
|
274
|
-
flwr_nightly-1.10.0.
|
|
275
|
-
flwr_nightly-1.10.0.
|
|
276
|
-
flwr_nightly-1.10.0.
|
|
277
|
-
flwr_nightly-1.10.0.
|
|
267
|
+
flwr/superexec/app.py,sha256=bmYl8zABnWka9WhRQxX4p1YAI76cYG655dP09ro-V0o,6485
|
|
268
|
+
flwr/superexec/deployment.py,sha256=1vuLnbHqLPjWekgEeGek_ota96H4521o8hd58n12MyI,6437
|
|
269
|
+
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
270
|
+
flwr/superexec/exec_servicer.py,sha256=fxQAKfgmQRSnYq5anjryfGeRbsZrNFEkuiNcTZhRwiE,2320
|
|
271
|
+
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
272
|
+
flwr/superexec/simulation.py,sha256=3z1Icam6gv6iO1h3HjqM3t_vsmtY8iinpb-Wt2b4CvI,5701
|
|
273
|
+
flwr_nightly-1.10.0.dev20240723.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
274
|
+
flwr_nightly-1.10.0.dev20240723.dist-info/METADATA,sha256=ir3pLlawQzY8UiKnnhJmgX1nAaxD55MILwUAb6VyAFg,15672
|
|
275
|
+
flwr_nightly-1.10.0.dev20240723.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
276
|
+
flwr_nightly-1.10.0.dev20240723.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
|
|
277
|
+
flwr_nightly-1.10.0.dev20240723.dist-info/RECORD,,
|
{flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.10.0.dev20240721.dist-info → flwr_nightly-1.10.0.dev20240723.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|