flwr-nightly 1.13.0.dev20241106__py3-none-any.whl → 1.13.0.dev20241117__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- flwr/cli/app.py +2 -0
- flwr/cli/build.py +37 -0
- flwr/cli/install.py +5 -3
- flwr/cli/ls.py +228 -0
- flwr/cli/run/run.py +16 -5
- flwr/client/app.py +68 -19
- flwr/client/clientapp/app.py +51 -35
- flwr/client/grpc_rere_client/connection.py +2 -12
- flwr/client/nodestate/__init__.py +25 -0
- flwr/client/nodestate/in_memory_nodestate.py +38 -0
- flwr/client/nodestate/nodestate.py +30 -0
- flwr/client/nodestate/nodestate_factory.py +37 -0
- flwr/client/rest_client/connection.py +4 -14
- flwr/client/supernode/app.py +57 -53
- flwr/common/args.py +148 -0
- flwr/common/config.py +10 -0
- flwr/common/constant.py +21 -7
- flwr/common/date.py +18 -0
- flwr/common/logger.py +6 -2
- flwr/common/object_ref.py +47 -16
- flwr/common/serde.py +10 -0
- flwr/common/typing.py +32 -11
- flwr/proto/exec_pb2.py +23 -17
- flwr/proto/exec_pb2.pyi +50 -20
- flwr/proto/exec_pb2_grpc.py +34 -0
- flwr/proto/exec_pb2_grpc.pyi +13 -0
- flwr/proto/run_pb2.py +32 -27
- flwr/proto/run_pb2.pyi +44 -1
- flwr/proto/simulationio_pb2.py +2 -2
- flwr/proto/simulationio_pb2_grpc.py +34 -0
- flwr/proto/simulationio_pb2_grpc.pyi +13 -0
- flwr/server/app.py +83 -87
- flwr/server/driver/driver.py +1 -1
- flwr/server/driver/grpc_driver.py +6 -20
- flwr/server/driver/inmemory_driver.py +1 -3
- flwr/server/run_serverapp.py +8 -238
- flwr/server/serverapp/app.py +44 -89
- flwr/server/strategy/aggregate.py +4 -4
- flwr/server/superlink/fleet/rest_rere/rest_api.py +10 -9
- flwr/server/superlink/linkstate/in_memory_linkstate.py +76 -62
- flwr/server/superlink/linkstate/linkstate.py +24 -9
- flwr/server/superlink/linkstate/sqlite_linkstate.py +87 -128
- flwr/server/superlink/linkstate/utils.py +191 -32
- flwr/server/superlink/simulation/simulationio_servicer.py +22 -1
- flwr/simulation/__init__.py +3 -1
- flwr/simulation/app.py +245 -352
- flwr/simulation/legacy_app.py +402 -0
- flwr/simulation/run_simulation.py +8 -19
- flwr/simulation/simulationio_connection.py +2 -2
- flwr/superexec/deployment.py +13 -7
- flwr/superexec/exec_servicer.py +32 -3
- flwr/superexec/executor.py +4 -3
- flwr/superexec/simulation.py +52 -145
- {flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/METADATA +10 -7
- {flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/RECORD +58 -51
- {flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/entry_points.txt +1 -0
- {flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/WHEEL +0 -0
flwr/superexec/simulation.py
CHANGED
|
@@ -15,108 +15,60 @@
|
|
|
15
15
|
"""Simulation engine executor."""
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import sys
|
|
21
|
-
from logging import ERROR, INFO, WARN
|
|
18
|
+
import hashlib
|
|
19
|
+
from logging import ERROR, INFO
|
|
22
20
|
from typing import Optional
|
|
23
21
|
|
|
24
22
|
from typing_extensions import override
|
|
25
23
|
|
|
26
|
-
from flwr.cli.config_utils import
|
|
27
|
-
from flwr.
|
|
28
|
-
from flwr.common.config import unflatten_dict
|
|
29
|
-
from flwr.common.constant import RUN_ID_NUM_BYTES
|
|
24
|
+
from flwr.cli.config_utils import get_fab_metadata
|
|
25
|
+
from flwr.common import ConfigsRecord, Context, RecordSet
|
|
30
26
|
from flwr.common.logger import log
|
|
31
|
-
from flwr.common.typing import UserConfig
|
|
27
|
+
from flwr.common.typing import Fab, UserConfig
|
|
28
|
+
from flwr.server.superlink.ffs import Ffs
|
|
32
29
|
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
|
33
|
-
from flwr.server.superlink.linkstate import LinkStateFactory
|
|
34
|
-
from flwr.server.superlink.linkstate.utils import generate_rand_int_from_bytes
|
|
30
|
+
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
|
35
31
|
|
|
36
32
|
from .executor import Executor
|
|
37
33
|
|
|
38
34
|
|
|
39
|
-
def _user_config_to_str(user_config: UserConfig) -> str:
|
|
40
|
-
"""Convert override user config to string."""
|
|
41
|
-
user_config_list_str = []
|
|
42
|
-
for key, value in user_config.items():
|
|
43
|
-
if isinstance(value, bool):
|
|
44
|
-
user_config_list_str.append(f"{key}={str(value).lower()}")
|
|
45
|
-
elif isinstance(value, (int, float)):
|
|
46
|
-
user_config_list_str.append(f"{key}={value}")
|
|
47
|
-
elif isinstance(value, str):
|
|
48
|
-
user_config_list_str.append(f'{key}="{value}"')
|
|
49
|
-
else:
|
|
50
|
-
raise ValueError(
|
|
51
|
-
"Only types `bool`, `float`, `int` and `str` are supported"
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
user_config_str = ",".join(user_config_list_str)
|
|
55
|
-
return user_config_str
|
|
56
|
-
|
|
57
|
-
|
|
58
35
|
class SimulationEngine(Executor):
|
|
59
|
-
"""Simulation engine executor.
|
|
60
|
-
|
|
61
|
-
Parameters
|
|
62
|
-
----------
|
|
63
|
-
num_supernodes: Opitonal[str] (default: None)
|
|
64
|
-
Total number of nodes to involve in the simulation.
|
|
65
|
-
"""
|
|
36
|
+
"""Simulation engine executor."""
|
|
66
37
|
|
|
67
38
|
def __init__(
|
|
68
39
|
self,
|
|
69
|
-
num_supernodes: Optional[int] = None,
|
|
70
|
-
verbose: Optional[bool] = False,
|
|
71
40
|
) -> None:
|
|
72
|
-
self.
|
|
73
|
-
self.
|
|
41
|
+
self.linkstate_factory: Optional[LinkStateFactory] = None
|
|
42
|
+
self.ffs_factory: Optional[FfsFactory] = None
|
|
74
43
|
|
|
75
44
|
@override
|
|
76
45
|
def initialize(
|
|
77
46
|
self, linkstate_factory: LinkStateFactory, ffs_factory: FfsFactory
|
|
78
47
|
) -> None:
|
|
79
48
|
"""Initialize the executor with the necessary factories."""
|
|
49
|
+
self.linkstate_factory = linkstate_factory
|
|
50
|
+
self.ffs_factory = ffs_factory
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def linkstate(self) -> LinkState:
|
|
54
|
+
"""Return the LinkState."""
|
|
55
|
+
if self.linkstate_factory is None:
|
|
56
|
+
raise RuntimeError("Executor is not initialized.")
|
|
57
|
+
return self.linkstate_factory.state()
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def ffs(self) -> Ffs:
|
|
61
|
+
"""Return the Flower File Storage (FFS)."""
|
|
62
|
+
if self.ffs_factory is None:
|
|
63
|
+
raise RuntimeError("Executor is not initialized.")
|
|
64
|
+
return self.ffs_factory.ffs()
|
|
80
65
|
|
|
81
66
|
@override
|
|
82
67
|
def set_config(
|
|
83
68
|
self,
|
|
84
69
|
config: UserConfig,
|
|
85
70
|
) -> None:
|
|
86
|
-
"""Set executor config arguments.
|
|
87
|
-
|
|
88
|
-
Parameters
|
|
89
|
-
----------
|
|
90
|
-
config : UserConfig
|
|
91
|
-
A dictionary for configuration values.
|
|
92
|
-
Supported configuration key/value pairs:
|
|
93
|
-
- "num-supernodes": int
|
|
94
|
-
Number of nodes to register for the simulation.
|
|
95
|
-
- "verbose": bool
|
|
96
|
-
Set verbosity of logs.
|
|
97
|
-
"""
|
|
98
|
-
if num_supernodes := config.get("num-supernodes"):
|
|
99
|
-
if not isinstance(num_supernodes, int):
|
|
100
|
-
raise ValueError("The `num-supernodes` value should be of type `int`.")
|
|
101
|
-
self.num_supernodes = num_supernodes
|
|
102
|
-
elif self.num_supernodes is None:
|
|
103
|
-
log(
|
|
104
|
-
ERROR,
|
|
105
|
-
"To start a run with the simulation plugin, please specify "
|
|
106
|
-
"the number of SuperNodes. This can be done by using the "
|
|
107
|
-
"`--executor-config` argument when launching the SuperExec.",
|
|
108
|
-
)
|
|
109
|
-
raise ValueError(
|
|
110
|
-
"`num-supernodes` must not be `None`, it must be a valid "
|
|
111
|
-
"positive integer."
|
|
112
|
-
)
|
|
113
|
-
|
|
114
|
-
if verbose := config.get("verbose"):
|
|
115
|
-
if not isinstance(verbose, bool):
|
|
116
|
-
raise ValueError(
|
|
117
|
-
"The `verbose` value must be a string `true` or `false`."
|
|
118
|
-
)
|
|
119
|
-
self.verbose = verbose
|
|
71
|
+
"""Set executor config arguments."""
|
|
120
72
|
|
|
121
73
|
# pylint: disable=too-many-locals
|
|
122
74
|
@override
|
|
@@ -124,87 +76,42 @@ class SimulationEngine(Executor):
|
|
|
124
76
|
self,
|
|
125
77
|
fab_file: bytes,
|
|
126
78
|
override_config: UserConfig,
|
|
127
|
-
|
|
79
|
+
federation_options: ConfigsRecord,
|
|
128
80
|
) -> Optional[int]:
|
|
129
81
|
"""Start run using the Flower Simulation Engine."""
|
|
130
|
-
if self.num_supernodes is None:
|
|
131
|
-
raise ValueError(
|
|
132
|
-
"Error in `SuperExec` (`SimulationEngine` executor):\n\n"
|
|
133
|
-
"`num-supernodes` must not be `None`, it must be a valid "
|
|
134
|
-
"positive integer. In order to start this simulation executor "
|
|
135
|
-
"with a specified number of `SuperNodes`, you can either provide "
|
|
136
|
-
"a `--executor` that has been initialized with a number of nodes "
|
|
137
|
-
"to the `flower-superexec` CLI, or `--executor-config num-supernodes=N`"
|
|
138
|
-
"to the `flower-superexec` CLI."
|
|
139
|
-
)
|
|
140
82
|
try:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
fab_path = install_from_fab(fab_file, None, True)
|
|
144
|
-
|
|
145
|
-
# Install FAB Python package
|
|
146
|
-
subprocess.run(
|
|
147
|
-
[sys.executable, "-m", "pip", "install", "--no-deps", str(fab_path)],
|
|
148
|
-
stdout=None if self.verbose else subprocess.DEVNULL,
|
|
149
|
-
stderr=None if self.verbose else subprocess.DEVNULL,
|
|
150
|
-
check=True,
|
|
151
|
-
)
|
|
152
|
-
|
|
153
|
-
# Load and validate config
|
|
154
|
-
config, errors, warnings = load_and_validate(fab_path / "pyproject.toml")
|
|
155
|
-
if errors:
|
|
156
|
-
raise ValueError(errors)
|
|
157
|
-
|
|
158
|
-
if warnings:
|
|
159
|
-
log(WARN, warnings)
|
|
160
|
-
|
|
161
|
-
if config is None:
|
|
83
|
+
# Check that num-supernodes is set
|
|
84
|
+
if "num-supernodes" not in federation_options:
|
|
162
85
|
raise ValueError(
|
|
163
|
-
"
|
|
86
|
+
"Federation options doesn't contain key `num-supernodes`."
|
|
164
87
|
)
|
|
165
88
|
|
|
166
|
-
#
|
|
167
|
-
|
|
89
|
+
# Create run
|
|
90
|
+
fab = Fab(hashlib.sha256(fab_file).hexdigest(), fab_file)
|
|
91
|
+
fab_hash = self.ffs.put(fab.content, {})
|
|
92
|
+
if fab_hash != fab.hash_str:
|
|
93
|
+
raise RuntimeError(
|
|
94
|
+
f"FAB ({fab.hash_str}) hash from request doesn't match contents"
|
|
95
|
+
)
|
|
96
|
+
fab_id, fab_version = get_fab_metadata(fab.content)
|
|
168
97
|
|
|
169
|
-
|
|
170
|
-
|
|
98
|
+
run_id = self.linkstate.create_run(
|
|
99
|
+
fab_id, fab_version, fab_hash, override_config, federation_options
|
|
171
100
|
)
|
|
172
|
-
backend_cfg = federation_config_flat.get("backend", {})
|
|
173
|
-
verbose: Optional[bool] = federation_config_flat.get("verbose")
|
|
174
|
-
|
|
175
|
-
# In Simulation there is no SuperLink, still we create a run_id
|
|
176
|
-
run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
|
|
177
|
-
log(INFO, "Created run %s", str(run_id))
|
|
178
101
|
|
|
179
|
-
#
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
"--run-id",
|
|
187
|
-
str(run_id),
|
|
188
|
-
]
|
|
189
|
-
|
|
190
|
-
if backend_cfg:
|
|
191
|
-
# Stringify as JSON
|
|
192
|
-
command.extend(["--backend-config", json.dumps(backend_cfg)])
|
|
193
|
-
|
|
194
|
-
if verbose:
|
|
195
|
-
command.extend(["--verbose"])
|
|
196
|
-
|
|
197
|
-
if override_config:
|
|
198
|
-
override_config_str = _user_config_to_str(override_config)
|
|
199
|
-
command.extend(["--run-config", f"{override_config_str}"])
|
|
200
|
-
|
|
201
|
-
# Start Simulation
|
|
202
|
-
_ = subprocess.Popen( # pylint: disable=consider-using-with
|
|
203
|
-
command,
|
|
204
|
-
text=True,
|
|
102
|
+
# Create an empty context for the Run
|
|
103
|
+
context = Context(
|
|
104
|
+
run_id=run_id,
|
|
105
|
+
node_id=0,
|
|
106
|
+
node_config={},
|
|
107
|
+
state=RecordSet(),
|
|
108
|
+
run_config={},
|
|
205
109
|
)
|
|
206
110
|
|
|
207
|
-
|
|
111
|
+
# Register the context at the LinkState
|
|
112
|
+
self.linkstate.set_serverapp_context(run_id=run_id, context=context)
|
|
113
|
+
|
|
114
|
+
log(INFO, "Created run %s", str(run_id))
|
|
208
115
|
|
|
209
116
|
return run_id
|
|
210
117
|
|
{flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/METADATA
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.13.0.
|
|
4
|
-
Summary: Flower: A Friendly Federated
|
|
3
|
+
Version: 1.13.0.dev20241117
|
|
4
|
+
Summary: Flower: A Friendly Federated AI Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
7
|
-
Keywords:
|
|
7
|
+
Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
|
|
8
8
|
Author: The Flower Authors
|
|
9
9
|
Author-email: hello@flower.ai
|
|
10
10
|
Requires-Python: >=3.9,<4.0
|
|
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
25
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
26
|
Classifier: Topic :: Scientific/Engineering
|
|
26
27
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -32,14 +33,16 @@ Classifier: Typing :: Typed
|
|
|
32
33
|
Provides-Extra: rest
|
|
33
34
|
Provides-Extra: simulation
|
|
34
35
|
Requires-Dist: cryptography (>=42.0.4,<43.0.0)
|
|
35
|
-
Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2
|
|
36
|
+
Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2,<=1.64.3)
|
|
37
|
+
Requires-Dist: hatchling (>=1.25.0,<2.0.0)
|
|
36
38
|
Requires-Dist: iterators (>=0.0.2,<0.0.3)
|
|
37
|
-
Requires-Dist: numpy (>=1.
|
|
39
|
+
Requires-Dist: numpy (>=1.26.0,<3.0.0)
|
|
38
40
|
Requires-Dist: pathspec (>=0.12.1,<0.13.0)
|
|
39
41
|
Requires-Dist: protobuf (>=4.25.2,<5.0.0)
|
|
40
42
|
Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
|
|
41
43
|
Requires-Dist: ray (==2.10.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "simulation")
|
|
42
44
|
Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
|
|
45
|
+
Requires-Dist: rich (>=13.5.0,<14.0.0)
|
|
43
46
|
Requires-Dist: starlette (>=0.31.0,<0.32.0) ; extra == "rest"
|
|
44
47
|
Requires-Dist: tomli (>=2.0.1,<3.0.0)
|
|
45
48
|
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
|
|
@@ -49,7 +52,7 @@ Project-URL: Documentation, https://flower.ai
|
|
|
49
52
|
Project-URL: Repository, https://github.com/adap/flower
|
|
50
53
|
Description-Content-Type: text/markdown
|
|
51
54
|
|
|
52
|
-
# Flower: A Friendly Federated
|
|
55
|
+
# Flower: A Friendly Federated AI Framework
|
|
53
56
|
|
|
54
57
|
<p align="center">
|
|
55
58
|
<a href="https://flower.ai/">
|
|
@@ -72,7 +75,7 @@ Description-Content-Type: text/markdown
|
|
|
72
75
|
[](https://hub.docker.com/u/flwr)
|
|
73
76
|
[](https://flower.ai/join-slack)
|
|
74
77
|
|
|
75
|
-
Flower (`flwr`) is a framework for building federated
|
|
78
|
+
Flower (`flwr`) is a framework for building federated AI systems. The
|
|
76
79
|
design of Flower is based on a few guiding principles:
|
|
77
80
|
|
|
78
81
|
- **Customizable**: Federated learning systems vary wildly from one use case to
|
{flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/RECORD
RENAMED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
|
-
flwr/cli/app.py,sha256=
|
|
4
|
-
flwr/cli/build.py,sha256=
|
|
3
|
+
flwr/cli/app.py,sha256=h1RCGBUtiL1JTC6yoihlOlB-k4imJ0ToS8uG4haFiyU,1292
|
|
4
|
+
flwr/cli/build.py,sha256=a_43l2HL2K1z2x_IJGUw_4KrEZrJiiw_yVq_bdUyFes,7457
|
|
5
5
|
flwr/cli/config_utils.py,sha256=n-xNkQG_0POz5UUHyE00lthNaOjuS6IYU9Thzb_BThs,11431
|
|
6
6
|
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
|
-
flwr/cli/install.py,sha256=
|
|
7
|
+
flwr/cli/install.py,sha256=kDLZDZpIVIK9GaNdxCEHHAEAfqo5IfdG2P2SRZHjSDI,8695
|
|
8
8
|
flwr/cli/log.py,sha256=WlAuxZdTUYZ5bRKkm0jLWrOxHTS0TlSA5BeDtO9xF3k,6659
|
|
9
|
+
flwr/cli/ls.py,sha256=lUXG07ebrq0bYOWdZk9i8pslvmou_v6DNiuj_PugOqY,7704
|
|
9
10
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
10
11
|
flwr/cli/new/new.py,sha256=uSiG7aXQzPDnikv2YcjQ86OOLqint0hNWCI0fSQD0jI,9634
|
|
11
12
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
@@ -61,14 +62,14 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=LUsQsEVhCgGzKEBB5Ie
|
|
|
61
62
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=BiZPOKEoGiZOuxSHQY_nQHj3KH7wH7QAiVmpxGutOgk,686
|
|
62
63
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=6R_bIGyPvXlCtLABF8fHLmGBNlIptG8QrYM69_Fy_nk,710
|
|
63
64
|
flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
64
|
-
flwr/cli/run/run.py,sha256=
|
|
65
|
+
flwr/cli/run/run.py,sha256=TQm7M0a-oSeNXPCsn75qYrkGB0IPbk0HulcYk1gwmR0,6293
|
|
65
66
|
flwr/cli/utils.py,sha256=emMUdthvoHBTB0iGQp-oFBmA5wV46lw3y3FmfXQPCsc,4500
|
|
66
67
|
flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
|
|
67
|
-
flwr/client/app.py,sha256=
|
|
68
|
+
flwr/client/app.py,sha256=1XroQmYNXSoTTVIWpKcCqkYYgnBMMVNtB6fPrZmd3ok,34980
|
|
68
69
|
flwr/client/client.py,sha256=gy6WVlMUFAp8oevN4xpQPX30vPOIYGVqdbuFlTWkyG4,9080
|
|
69
70
|
flwr/client/client_app.py,sha256=cTig-N00YzTucbo9zNi6I21J8PlbflU_8J_f5CI-Wpw,10390
|
|
70
71
|
flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
|
|
71
|
-
flwr/client/clientapp/app.py,sha256=
|
|
72
|
+
flwr/client/clientapp/app.py,sha256=W6wOlysris-JGKM5Wq-OrYNHl7rYgaAepEaRI1wMWo4,8725
|
|
72
73
|
flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
|
|
73
74
|
flwr/client/clientapp/utils.py,sha256=Xg23Q7g7r9jrxXEbvJ9wXal_uAqYK3mi087u0QER6-I,4343
|
|
74
75
|
flwr/client/dpfedavg_numpy_client.py,sha256=4KsEvzavDKyVDU1V0kMqffTwu1lNdUCYQN-i0DTYVN8,7404
|
|
@@ -78,7 +79,7 @@ flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1
|
|
|
78
79
|
flwr/client/grpc_client/connection.py,sha256=Y9yJkRvGypulerX9fviP4axF5XBTBnvYrsp2mv5OS9E,9411
|
|
79
80
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
80
81
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=q08lIEeJLvvonNOiejNXvmySbPObteGnbDHhEKDmWzE,5380
|
|
81
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
|
82
|
+
flwr/client/grpc_rere_client/connection.py,sha256=c3s-79EToJymlCDNu5aIwu3qZ9XW8DMNGXoOG6fR52E,10929
|
|
82
83
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=sQo0I9T65t97LFGoW_PrmgaTbd18GFgi2DoAI5wQJ4k,5589
|
|
83
84
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
84
85
|
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
@@ -92,27 +93,32 @@ flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4R
|
|
|
92
93
|
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
93
94
|
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=7cNXsY07ZA0M5_9VSc52F8JUoAoGaraNDA2rgaLvvFo,19680
|
|
94
95
|
flwr/client/mod/utils.py,sha256=dFcTHOjUuuiw34fcQlvyzytYD0sCv1w9x8fQX1Yo8Oc,1201
|
|
96
|
+
flwr/client/nodestate/__init__.py,sha256=UBK-iI4BTiiFi3v6SBo2cizaRRhZzTzkXOhbAZB7cs8,975
|
|
97
|
+
flwr/client/nodestate/in_memory_nodestate.py,sha256=MKI3jVPARPWJmNGw61k1-9LIXROkTx2PrhWjDM8cpHk,1291
|
|
98
|
+
flwr/client/nodestate/nodestate.py,sha256=2sSziyHK65ygayLcEoR78erqyrRe10tZ2tB-QISdRB4,1023
|
|
99
|
+
flwr/client/nodestate/nodestate_factory.py,sha256=LipmYzjYlN2U-CYN20d8Kk0PXyCAJq3L3VQFc6QscJc,1429
|
|
95
100
|
flwr/client/numpy_client.py,sha256=tqGyhIkeeZQGr65BR03B7TWgx4rW3FA7G2874D8z_VU,11167
|
|
96
101
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
97
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
102
|
+
flwr/client/rest_client/connection.py,sha256=cBLtI-nUTELn5zpS42sbnc--0wxc1DdHkVGAlfRSc2Y,12626
|
|
98
103
|
flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
|
|
99
104
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
100
|
-
flwr/client/supernode/app.py,sha256=
|
|
105
|
+
flwr/client/supernode/app.py,sha256=gb7tkT3l6tF2hOumeaELDQFvnTHwtvt5rSELVXUsTdo,12363
|
|
101
106
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
102
107
|
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
|
103
108
|
flwr/common/address.py,sha256=7kM2Rqjw86-c8aKwAvrXerWqznnVv4TFJ62aSAeTn10,3017
|
|
104
|
-
flwr/common/
|
|
105
|
-
flwr/common/
|
|
109
|
+
flwr/common/args.py,sha256=y9qtPIwyijegNi0GbQT5ddRtMUITM-DlgilC1Co-nvw,6133
|
|
110
|
+
flwr/common/config.py,sha256=qC1QvGAGr4faBtg3Y5dWhfyK5FggyWUMjPqg-Rx_FW4,8083
|
|
111
|
+
flwr/common/constant.py,sha256=41xaDQdeDMowFQ3Y34V132ICftGJJ2cVrZYyBmu6FZg,5418
|
|
106
112
|
flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
|
|
107
|
-
flwr/common/date.py,sha256=
|
|
113
|
+
flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
|
|
108
114
|
flwr/common/differential_privacy.py,sha256=XwcJ3rWr8S8BZUocc76vLSJAXIf6OHnWkBV6-xlIRuw,6106
|
|
109
115
|
flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
|
|
110
116
|
flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
|
|
111
117
|
flwr/common/exit_handlers.py,sha256=MracJaBeoCOC7TaXK9zCJQxhrMSx9ZtczK237qvhBpU,2806
|
|
112
118
|
flwr/common/grpc.py,sha256=6Yi28JjAll19nxYJlOT9B03RN8dvJZP9zUoR3RSmxoY,2487
|
|
113
|
-
flwr/common/logger.py,sha256=
|
|
119
|
+
flwr/common/logger.py,sha256=q_PKjfgUEH-yrjPSIvzzaKocWBqEOaILAmfKOOyEcDE,11197
|
|
114
120
|
flwr/common/message.py,sha256=4O1m0OWXBAYZz05gKgEtnoJ94J1gjo7hCNHyUXThxRo,13831
|
|
115
|
-
flwr/common/object_ref.py,sha256=
|
|
121
|
+
flwr/common/object_ref.py,sha256=DavEkh-IJv_s0VeLsJvSZS5k-Ix_k1UcNXbldfNFXxM,9859
|
|
116
122
|
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
117
123
|
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
118
124
|
flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
|
|
@@ -132,9 +138,9 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8
|
|
|
132
138
|
flwr/common/secure_aggregation/quantization.py,sha256=mC4uLf05zeONo8Ke-BY0Tj8UCMOS7VD93zHCzuv3MHU,2304
|
|
133
139
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
134
140
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=o7IhHH6J9xqinhQy3TdPgQpoj1XyEpyv3OQFyx81RVQ,3193
|
|
135
|
-
flwr/common/serde.py,sha256=
|
|
141
|
+
flwr/common/serde.py,sha256=K9ExsqcTPETESkt2HMaNtIQAIAfwmuwtJFlG-59I7Sw,31046
|
|
136
142
|
flwr/common/telemetry.py,sha256=20AYNaePOBaSEh99PIuBrxRxtY53-kZ5-2Ej0JWUJmc,8731
|
|
137
|
-
flwr/common/typing.py,sha256=
|
|
143
|
+
flwr/common/typing.py,sha256=RLq2f9jhE_Nndtk023cPMG0LpoQHaacEsww-3j0xs4Q,5710
|
|
138
144
|
flwr/common/version.py,sha256=tCcl_FvxVK206C1dxIJCs4TjL06WmyaODBP19FRHE1c,1324
|
|
139
145
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
140
146
|
flwr/proto/clientappio_pb2.py,sha256=Y3PMv-JMaBGehpslgbvGY6l2u5vNpfCTFWu-fmAmBJ4,3703
|
|
@@ -153,10 +159,10 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
153
159
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
154
160
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
155
161
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
156
|
-
flwr/proto/exec_pb2.py,sha256=
|
|
157
|
-
flwr/proto/exec_pb2.pyi,sha256=
|
|
158
|
-
flwr/proto/exec_pb2_grpc.py,sha256=
|
|
159
|
-
flwr/proto/exec_pb2_grpc.pyi,sha256=
|
|
162
|
+
flwr/proto/exec_pb2.py,sha256=uKvQah9kbPj9PpduEFqpxYX0t_yWjHDMa5IBwl7vqKA,4022
|
|
163
|
+
flwr/proto/exec_pb2.pyi,sha256=RJUqVsDKDZAxRSypeM4rhg4PCYsal_iVomps3GA_T_Y,6016
|
|
164
|
+
flwr/proto/exec_pb2_grpc.py,sha256=kPXb_vp2Swl-1nkQEHJaqXKXi9P8pauBFemboGFgI9Q,5621
|
|
165
|
+
flwr/proto/exec_pb2_grpc.pyi,sha256=qnefAjYPdWs-yYTPIfsbecoKWbVKjp6IFZHwN82ZGUo,1601
|
|
160
166
|
flwr/proto/fab_pb2.py,sha256=3QSDq9pjbZoqVxsmCRDwHO5PrSjzn2vixjYxE-qPmb0,1589
|
|
161
167
|
flwr/proto/fab_pb2.pyi,sha256=fXI108QaFtbl1WWTyslPbIx9c_19D0aYCoFn0xYtL4U,2277
|
|
162
168
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -185,18 +191,18 @@ flwr/proto/recordset_pb2.py,sha256=XjEIDU-YlKSY59qNd0qXTFB4COvMHGiszQ5O1krJ1Ks,6
|
|
|
185
191
|
flwr/proto/recordset_pb2.pyi,sha256=ypFNvroU4aIlnN0D6W4XAsOfm0UzTfXhxxL1v7u__Ac,15370
|
|
186
192
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
187
193
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
188
|
-
flwr/proto/run_pb2.py,sha256=
|
|
189
|
-
flwr/proto/run_pb2.pyi,sha256=
|
|
194
|
+
flwr/proto/run_pb2.py,sha256=J2TQwf-S0o9ImGuQLrczw99S0GSXm6hk-npJ8rXAC0Y,5743
|
|
195
|
+
flwr/proto/run_pb2.pyi,sha256=i6TEwphuFH94_kT2hZWb_RjndLuphkPrT3C2VP-NnVs,11739
|
|
190
196
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
191
197
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
192
198
|
flwr/proto/serverappio_pb2.py,sha256=zWnODeaj26oSx98-BFvwtWM_fYvsw9OeSIuV7JnKVvw,4822
|
|
193
199
|
flwr/proto/serverappio_pb2.pyi,sha256=Ib9c32FCtjA9zZY54Ohi6B-DtLgSjokAqOExm_2uOvY,6429
|
|
194
200
|
flwr/proto/serverappio_pb2_grpc.py,sha256=M__pFMmb9yTAGMHVd3_K1V6DeLRuFc9UErJHWjBAsZs,17439
|
|
195
201
|
flwr/proto/serverappio_pb2_grpc.pyi,sha256=ERM-0cQVmUqrVXlvEbS2wfUZpZmv5SlIeNsGZPYMrVo,4779
|
|
196
|
-
flwr/proto/simulationio_pb2.py,sha256=
|
|
202
|
+
flwr/proto/simulationio_pb2.py,sha256=sCJQp_NEJSDtC4EKzyy2yZWtu9z7PGUUFJpLjdA9VUs,3011
|
|
197
203
|
flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
|
|
198
|
-
flwr/proto/simulationio_pb2_grpc.py,sha256
|
|
199
|
-
flwr/proto/simulationio_pb2_grpc.pyi,sha256=
|
|
204
|
+
flwr/proto/simulationio_pb2_grpc.py,sha256=-qcd4rOOK-46LcP57oZswqwASpy2_UvMJmJ80OpzuNM,9622
|
|
205
|
+
flwr/proto/simulationio_pb2_grpc.pyi,sha256=Bk4K7MsPpxF6RmIqByySQIXJeJ1pBrU2I19hrKUoFdI,2795
|
|
200
206
|
flwr/proto/task_pb2.py,sha256=R5GfHgL8IJRI_qHWNeILl1Y9zHjvB0tnCvMHmTgF4Is,2361
|
|
201
207
|
flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
|
|
202
208
|
flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -207,7 +213,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
207
213
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
208
214
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
209
215
|
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
|
210
|
-
flwr/server/app.py,sha256=
|
|
216
|
+
flwr/server/app.py,sha256=UAynn_AmJotTMS8ebY1Gqe7Qft9slSlSMKyWfnriB7M,28919
|
|
211
217
|
flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
|
|
212
218
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
213
219
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -217,19 +223,19 @@ flwr/server/compat/driver_client_proxy.py,sha256=Af0bRUEVZNcCYRxt3DjpLPdvVYpTgz6
|
|
|
217
223
|
flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
|
|
218
224
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
219
225
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
220
|
-
flwr/server/driver/driver.py,sha256=
|
|
221
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
222
|
-
flwr/server/driver/inmemory_driver.py,sha256=
|
|
226
|
+
flwr/server/driver/driver.py,sha256=u_fMfqLYTroTafGCNwKPHI4lttRL-Z5CqeT3_FHSq-Q,5701
|
|
227
|
+
flwr/server/driver/grpc_driver.py,sha256=lIOeAPvTIRAebRitTONZE1ji4UTGjIsMor-dW_X8eDw,9300
|
|
228
|
+
flwr/server/driver/inmemory_driver.py,sha256=gfB4jmkk1indhRa9XCdKCXghVcWBF1qBD-tAxMUyQm0,6404
|
|
223
229
|
flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
|
|
224
|
-
flwr/server/run_serverapp.py,sha256=
|
|
230
|
+
flwr/server/run_serverapp.py,sha256=oDfHaHyVT5BRcckFFQKg8AVPCWR1ek7OhNceTC8qq9g,2493
|
|
225
231
|
flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
|
|
226
232
|
flwr/server/server_app.py,sha256=RsgS6PRS5Z74cMUAHzsm8r3LWddwn00MjRs6rlacHt8,6297
|
|
227
233
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
228
234
|
flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
|
|
229
|
-
flwr/server/serverapp/app.py,sha256
|
|
235
|
+
flwr/server/serverapp/app.py,sha256=Fa26GCuq53cJYH7cII8iaEq8EtfLrNB90MOeHzU81EE,7554
|
|
230
236
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
231
237
|
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
232
|
-
flwr/server/strategy/aggregate.py,sha256=
|
|
238
|
+
flwr/server/strategy/aggregate.py,sha256=PDvekufza13s9AsVmz9WASunaBs3yCtl8JVliFx9j6Q,13978
|
|
233
239
|
flwr/server/strategy/bulyan.py,sha256=DDNLLlTJCHgBtij7EpDsa852GHEYjjDB1iORACZO2KE,6513
|
|
234
240
|
flwr/server/strategy/dp_adaptive_clipping.py,sha256=zrqA9OfQu4gwUkLCXbh59sPsDd_x2IhNs-BER_ITzNE,17447
|
|
235
241
|
flwr/server/strategy/dp_fixed_clipping.py,sha256=ILmO_AsoMpstOAYK9L6hJpqf7zE6erdMj_SD_-hHAFk,12834
|
|
@@ -274,21 +280,21 @@ flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=iZlgW7L5oVG_0
|
|
|
274
280
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
275
281
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=WAis2WPj0L91HSfOZqX-k0n9Rs3igdARKRMsV1VlTnY,4465
|
|
276
282
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
277
|
-
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=
|
|
283
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=WX-CiZVa4ntzMlZfBzKJtOsliP1Sm7GyHhPMqVXaehg,6605
|
|
278
284
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
279
285
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=Onq16E2M2Wha2K1zvhcquT1jOveQL2cgIrgqWvAPH9Y,1436
|
|
280
286
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0QIvVP5O-RQxKQlUGNUj974,2194
|
|
281
287
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=7kB3re3mR53b7E6L6DPSioTSKD3YGtS3uJsPD7Hn2Fw,7155
|
|
282
288
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=VL6e_Jwf4uxA-X1EelxJZMv6Eji-_p2J9D0MdHG10a4,13029
|
|
283
289
|
flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
|
|
284
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
|
285
|
-
flwr/server/superlink/linkstate/linkstate.py,sha256=
|
|
290
|
+
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=TRayqT_pKB0JfdsAYXwtuXyG4d3vYD_vhvYixhTlAec,22327
|
|
291
|
+
flwr/server/superlink/linkstate/linkstate.py,sha256=9tb80YM1XhVSuiE32PVqdG7fBulqtSGM3Hv01WaFLcQ,12548
|
|
286
292
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
|
|
287
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
|
288
|
-
flwr/server/superlink/linkstate/utils.py,sha256=
|
|
293
|
+
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=iha2p7hxGRvyl1Fc9fMjfW_nvbibstTDuHgMREsY8HA,43445
|
|
294
|
+
flwr/server/superlink/linkstate/utils.py,sha256=d5uqqIOCKfd54X8CFNfUr3AWqPLpgmzsC_RagRwFugM,13321
|
|
289
295
|
flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
|
|
290
296
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=5wflYW_TS0mjmPG6OYuHMJwXD2_cYmUNhFkdOU0jMWQ,2237
|
|
291
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
|
297
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=LsW6Cl8qH_vq04F6CeOp3vBtjTGQn4tATKHfirDmJZQ,5942
|
|
292
298
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
293
299
|
flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
|
|
294
300
|
flwr/server/utils/tensorboard.py,sha256=gEBD8w_5uaIfp5aw5RYH66lYZpd_SfkObHQ7eDd9MUk,5466
|
|
@@ -299,23 +305,24 @@ flwr/server/workflow/default_workflows.py,sha256=UMC9JgdomKwxql5G0OV4AeRXWI-bMCl
|
|
|
299
305
|
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
300
306
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
|
|
301
307
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=rfn2etO1nb7u-1oRl-H9q3enJZz3shMINZaBB7rPsC4,29671
|
|
302
|
-
flwr/simulation/__init__.py,sha256=
|
|
303
|
-
flwr/simulation/app.py,sha256=
|
|
308
|
+
flwr/simulation/__init__.py,sha256=5UcDVJNjFoSwWqHbGM1hKfTTUUNdwAtuoNvNrfvdkUY,1556
|
|
309
|
+
flwr/simulation/app.py,sha256=EGF20e-Uv7slJCRQeDI2erjFDiljE_RRo-4TFHOMouk,9576
|
|
310
|
+
flwr/simulation/legacy_app.py,sha256=ySggtKEtXe8L77n8qyGXDA7UPv840MXh-QoalzoGiLU,15780
|
|
304
311
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
305
312
|
flwr/simulation/ray_transport/ray_actor.py,sha256=9-XBguAm5IFqm2ddPFsQtnuuFN6lzqdb00SnCxGUGBo,18996
|
|
306
313
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
|
|
307
314
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
308
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
309
|
-
flwr/simulation/simulationio_connection.py,sha256=
|
|
315
|
+
flwr/simulation/run_simulation.py,sha256=2EWlyoswFUpa-IV_vPu4FFfDbUZS4ADR77M3bXV91xM,20022
|
|
316
|
+
flwr/simulation/simulationio_connection.py,sha256=m31L9Iej-61va48E5x-wJypA6p5s82WM4PKIAmKizQA,3209
|
|
310
317
|
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
|
311
318
|
flwr/superexec/app.py,sha256=Tt3GonnTwHrMmicwx9XaP-crP78-bf4DUWl-N5cG6zY,1841
|
|
312
|
-
flwr/superexec/deployment.py,sha256=
|
|
319
|
+
flwr/superexec/deployment.py,sha256=7VYmmI12zEaTHp_cQtU1GLikmqhctUHhEdshBPRFHMs,6734
|
|
313
320
|
flwr/superexec/exec_grpc.py,sha256=OuhBAk7hiky9rjGceinLGIXqchtzGPQThZnwyYv6Ei0,2241
|
|
314
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
315
|
-
flwr/superexec/executor.py,sha256=
|
|
316
|
-
flwr/superexec/simulation.py,sha256=
|
|
317
|
-
flwr_nightly-1.13.0.
|
|
318
|
-
flwr_nightly-1.13.0.
|
|
319
|
-
flwr_nightly-1.13.0.
|
|
320
|
-
flwr_nightly-1.13.0.
|
|
321
|
-
flwr_nightly-1.13.0.
|
|
321
|
+
flwr/superexec/exec_servicer.py,sha256=M3R3q5rg2kYz-gFN-nmiXkvjels4QbieEA0K5wks0kQ,4972
|
|
322
|
+
flwr/superexec/executor.py,sha256=zH3_53il6Jh0ZscIVEB9f4GNnXMeBbCGyCoBCxLgiG0,3114
|
|
323
|
+
flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
|
|
324
|
+
flwr_nightly-1.13.0.dev20241117.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
325
|
+
flwr_nightly-1.13.0.dev20241117.dist-info/METADATA,sha256=hY_iiu43zt7NGG-fsKZBRMdp4o4BCNOx_W0at0f_o9w,15722
|
|
326
|
+
flwr_nightly-1.13.0.dev20241117.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
327
|
+
flwr_nightly-1.13.0.dev20241117.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
|
|
328
|
+
flwr_nightly-1.13.0.dev20241117.dist-info/RECORD,,
|
{flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.13.0.dev20241106.dist-info → flwr_nightly-1.13.0.dev20241117.dist-info}/WHEEL
RENAMED
|
File without changes
|