flwr-nightly 1.19.0.dev20250616__py3-none-any.whl → 1.20.0.dev20250617__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.
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
- flwr/cli/run/run.py +45 -38
- flwr/server/app.py +1 -1
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +1 -1
- flwr/server/superlink/fleet/message_handler/message_handler.py +1 -1
- flwr/server/superlink/fleet/rest_rere/rest_api.py +1 -2
- flwr/server/superlink/serverappio/serverappio_grpc.py +1 -1
- flwr/server/superlink/serverappio/serverappio_servicer.py +1 -2
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
- flwr/server/superlink/simulation/simulationio_servicer.py +1 -1
- flwr/{server/superlink → supercore}/ffs/disk_ffs.py +1 -1
- flwr/superexec/deployment.py +1 -2
- flwr/superexec/exec_grpc.py +1 -1
- flwr/superexec/exec_servicer.py +1 -1
- flwr/superexec/executor.py +1 -1
- flwr/superexec/simulation.py +1 -2
- flwr/supernode/nodestate/in_memory_nodestate.py +11 -2
- flwr/supernode/nodestate/nodestate.py +15 -0
- flwr/supernode/start_client_internal.py +1 -1
- {flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/METADATA +1 -1
- {flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/RECORD +34 -34
- /flwr/{server/superlink → supercore}/ffs/__init__.py +0 -0
- /flwr/{server/superlink → supercore}/ffs/ffs.py +0 -0
- /flwr/{server/superlink → supercore}/ffs/ffs_factory.py +0 -0
- {flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/entry_points.txt +0 -0
flwr/cli/run/run.py
CHANGED
@@ -150,50 +150,57 @@ def _run_with_exec_api(
|
|
150
150
|
stream: bool,
|
151
151
|
output_format: str,
|
152
152
|
) -> None:
|
153
|
-
|
154
|
-
|
155
|
-
|
153
|
+
channel = None
|
154
|
+
try:
|
155
|
+
auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
|
156
|
+
channel = init_channel(app, federation_config, auth_plugin)
|
157
|
+
stub = ExecStub(channel)
|
156
158
|
|
157
|
-
|
158
|
-
|
159
|
+
fab_bytes, fab_hash, config = build_fab(app)
|
160
|
+
fab_id, fab_version = get_metadata_from_config(config)
|
159
161
|
|
160
|
-
|
162
|
+
fab = Fab(fab_hash, fab_bytes)
|
161
163
|
|
162
|
-
|
163
|
-
|
164
|
-
|
164
|
+
# Construct a `ConfigRecord` out of a flattened `UserConfig`
|
165
|
+
fed_config = flatten_dict(federation_config.get("options", {}))
|
166
|
+
c_record = user_config_to_configrecord(fed_config)
|
165
167
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
)
|
171
|
-
with flwr_cli_grpc_exc_handler():
|
172
|
-
res = stub.StartRun(req)
|
173
|
-
|
174
|
-
if res.HasField("run_id"):
|
175
|
-
typer.secho(f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN)
|
176
|
-
else:
|
177
|
-
typer.secho("❌ Failed to start run", fg=typer.colors.RED)
|
178
|
-
raise typer.Exit(code=1)
|
179
|
-
|
180
|
-
if output_format == CliOutputFormat.JSON:
|
181
|
-
run_output = json.dumps(
|
182
|
-
{
|
183
|
-
"success": res.HasField("run_id"),
|
184
|
-
"run-id": res.run_id if res.HasField("run_id") else None,
|
185
|
-
"fab-id": fab_id,
|
186
|
-
"fab-name": fab_id.rsplit("/", maxsplit=1)[-1],
|
187
|
-
"fab-version": fab_version,
|
188
|
-
"fab-hash": fab_hash[:8],
|
189
|
-
"fab-filename": get_fab_filename(config, fab_hash),
|
190
|
-
}
|
168
|
+
req = StartRunRequest(
|
169
|
+
fab=fab_to_proto(fab),
|
170
|
+
override_config=user_config_to_proto(parse_config_args(config_overrides)),
|
171
|
+
federation_options=config_record_to_proto(c_record),
|
191
172
|
)
|
192
|
-
|
193
|
-
|
173
|
+
with flwr_cli_grpc_exc_handler():
|
174
|
+
res = stub.StartRun(req)
|
194
175
|
|
195
|
-
|
196
|
-
|
176
|
+
if res.HasField("run_id"):
|
177
|
+
typer.secho(
|
178
|
+
f"🎊 Successfully started run {res.run_id}", fg=typer.colors.GREEN
|
179
|
+
)
|
180
|
+
else:
|
181
|
+
typer.secho("❌ Failed to start run", fg=typer.colors.RED)
|
182
|
+
raise typer.Exit(code=1)
|
183
|
+
|
184
|
+
if output_format == CliOutputFormat.JSON:
|
185
|
+
run_output = json.dumps(
|
186
|
+
{
|
187
|
+
"success": res.HasField("run_id"),
|
188
|
+
"run-id": res.run_id if res.HasField("run_id") else None,
|
189
|
+
"fab-id": fab_id,
|
190
|
+
"fab-name": fab_id.rsplit("/", maxsplit=1)[-1],
|
191
|
+
"fab-version": fab_version,
|
192
|
+
"fab-hash": fab_hash[:8],
|
193
|
+
"fab-filename": get_fab_filename(config, fab_hash),
|
194
|
+
}
|
195
|
+
)
|
196
|
+
restore_output()
|
197
|
+
Console().print_json(run_output)
|
198
|
+
|
199
|
+
if stream:
|
200
|
+
start_stream(res.run_id, channel, CONN_REFRESH_PERIOD)
|
201
|
+
finally:
|
202
|
+
if channel:
|
203
|
+
channel.close()
|
197
204
|
|
198
205
|
|
199
206
|
def _run_without_exec_api(
|
flwr/server/app.py
CHANGED
@@ -71,11 +71,11 @@ from flwr.proto.grpcadapter_pb2_grpc import add_GrpcAdapterServicer_to_server
|
|
71
71
|
from flwr.server.fleet_event_log_interceptor import FleetEventLogInterceptor
|
72
72
|
from flwr.server.serverapp.app import flwr_serverapp
|
73
73
|
from flwr.simulation.app import flwr_simulation
|
74
|
+
from flwr.supercore.ffs import FfsFactory
|
74
75
|
from flwr.supercore.object_store import ObjectStoreFactory
|
75
76
|
from flwr.superexec.app import load_executor
|
76
77
|
from flwr.superexec.exec_grpc import run_exec_api_grpc
|
77
78
|
|
78
|
-
from .superlink.ffs.ffs_factory import FfsFactory
|
79
79
|
from .superlink.fleet.grpc_adapter.grpc_adapter_servicer import GrpcAdapterServicer
|
80
80
|
from .superlink.fleet.grpc_rere.fleet_servicer import FleetServicer
|
81
81
|
from .superlink.fleet.grpc_rere.server_interceptor import AuthenticateServerInterceptor
|
@@ -48,10 +48,10 @@ from flwr.proto.message_pb2 import ( # pylint: disable=E0611
|
|
48
48
|
PushObjectResponse,
|
49
49
|
)
|
50
50
|
from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=E0611
|
51
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
52
51
|
from flwr.server.superlink.fleet.message_handler import message_handler
|
53
52
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
54
53
|
from flwr.server.superlink.utils import abort_grpc_context
|
54
|
+
from flwr.supercore.ffs import FfsFactory
|
55
55
|
from flwr.supercore.object_store import ObjectStoreFactory
|
56
56
|
|
57
57
|
|
@@ -58,9 +58,9 @@ from flwr.proto.run_pb2 import ( # pylint: disable=E0611
|
|
58
58
|
GetRunResponse,
|
59
59
|
Run,
|
60
60
|
)
|
61
|
-
from flwr.server.superlink.ffs.ffs import Ffs
|
62
61
|
from flwr.server.superlink.linkstate import LinkState
|
63
62
|
from flwr.server.superlink.utils import check_abort
|
63
|
+
from flwr.supercore.ffs import Ffs
|
64
64
|
from flwr.supercore.object_store import NoObjectInStoreError, ObjectStore
|
65
65
|
|
66
66
|
from ...utils import store_mapping_and_register_objects
|
@@ -47,10 +47,9 @@ from flwr.proto.message_pb2 import ( # pylint: disable=E0611
|
|
47
47
|
PushObjectResponse,
|
48
48
|
)
|
49
49
|
from flwr.proto.run_pb2 import GetRunRequest, GetRunResponse # pylint: disable=E0611
|
50
|
-
from flwr.server.superlink.ffs.ffs import Ffs
|
51
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
52
50
|
from flwr.server.superlink.fleet.message_handler import message_handler
|
53
51
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
52
|
+
from flwr.supercore.ffs import Ffs, FfsFactory
|
54
53
|
from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
|
55
54
|
|
56
55
|
try:
|
@@ -26,8 +26,8 @@ from flwr.common.logger import log
|
|
26
26
|
from flwr.proto.serverappio_pb2_grpc import ( # pylint: disable=E0611
|
27
27
|
add_ServerAppIoServicer_to_server,
|
28
28
|
)
|
29
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
30
29
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
30
|
+
from flwr.supercore.ffs import FfsFactory
|
31
31
|
from flwr.supercore.object_store import ObjectStoreFactory
|
32
32
|
|
33
33
|
from .serverappio_servicer import ServerAppIoServicer
|
@@ -81,11 +81,10 @@ from flwr.proto.serverappio_pb2 import ( # pylint: disable=E0611
|
|
81
81
|
PushServerAppOutputsRequest,
|
82
82
|
PushServerAppOutputsResponse,
|
83
83
|
)
|
84
|
-
from flwr.server.superlink.ffs.ffs import Ffs
|
85
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
86
84
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
87
85
|
from flwr.server.superlink.utils import abort_if
|
88
86
|
from flwr.server.utils.validator import validate_message
|
87
|
+
from flwr.supercore.ffs import Ffs, FfsFactory
|
89
88
|
from flwr.supercore.object_store import NoObjectInStoreError, ObjectStoreFactory
|
90
89
|
|
91
90
|
from ..utils import store_mapping_and_register_objects
|
@@ -26,8 +26,8 @@ from flwr.common.logger import log
|
|
26
26
|
from flwr.proto.simulationio_pb2_grpc import ( # pylint: disable=E0611
|
27
27
|
add_SimulationIoServicer_to_server,
|
28
28
|
)
|
29
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
30
29
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
30
|
+
from flwr.supercore.ffs import FfsFactory
|
31
31
|
|
32
32
|
from .simulationio_servicer import SimulationIoServicer
|
33
33
|
|
@@ -56,9 +56,9 @@ from flwr.proto.simulationio_pb2 import ( # pylint: disable=E0611
|
|
56
56
|
PushSimulationOutputsRequest,
|
57
57
|
PushSimulationOutputsResponse,
|
58
58
|
)
|
59
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
60
59
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
61
60
|
from flwr.server.superlink.utils import abort_if
|
61
|
+
from flwr.supercore.ffs import FfsFactory
|
62
62
|
|
63
63
|
|
64
64
|
class SimulationIoServicer(simulationio_pb2_grpc.SimulationIoServicer):
|
flwr/superexec/deployment.py
CHANGED
@@ -31,9 +31,8 @@ from flwr.common.constant import (
|
|
31
31
|
)
|
32
32
|
from flwr.common.logger import log
|
33
33
|
from flwr.common.typing import Fab, RunStatus, UserConfig
|
34
|
-
from flwr.server.superlink.ffs import Ffs
|
35
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
36
34
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
35
|
+
from flwr.supercore.ffs import Ffs, FfsFactory
|
37
36
|
|
38
37
|
from .executor import Executor
|
39
38
|
|
flwr/superexec/exec_grpc.py
CHANGED
@@ -27,8 +27,8 @@ from flwr.common.grpc import generic_create_grpc_server
|
|
27
27
|
from flwr.common.logger import log
|
28
28
|
from flwr.common.typing import UserConfig
|
29
29
|
from flwr.proto.exec_pb2_grpc import add_ExecServicer_to_server
|
30
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
31
30
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
31
|
+
from flwr.supercore.ffs import FfsFactory
|
32
32
|
from flwr.supercore.object_store import ObjectStoreFactory
|
33
33
|
from flwr.superexec.exec_event_log_interceptor import ExecEventLogInterceptor
|
34
34
|
from flwr.superexec.exec_user_auth_interceptor import ExecUserAuthInterceptor
|
flwr/superexec/exec_servicer.py
CHANGED
@@ -52,8 +52,8 @@ from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
|
|
52
52
|
StreamLogsRequest,
|
53
53
|
StreamLogsResponse,
|
54
54
|
)
|
55
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
56
55
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
56
|
+
from flwr.supercore.ffs import FfsFactory
|
57
57
|
from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
|
58
58
|
|
59
59
|
from .exec_user_auth_interceptor import shared_account_info
|
flwr/superexec/executor.py
CHANGED
@@ -22,8 +22,8 @@ from typing import Optional
|
|
22
22
|
|
23
23
|
from flwr.common import ConfigRecord
|
24
24
|
from flwr.common.typing import UserConfig
|
25
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
26
25
|
from flwr.server.superlink.linkstate import LinkStateFactory
|
26
|
+
from flwr.supercore.ffs import FfsFactory
|
27
27
|
|
28
28
|
|
29
29
|
@dataclass
|
flwr/superexec/simulation.py
CHANGED
@@ -25,9 +25,8 @@ from flwr.cli.config_utils import get_fab_metadata
|
|
25
25
|
from flwr.common import ConfigRecord, Context, RecordDict
|
26
26
|
from flwr.common.logger import log
|
27
27
|
from flwr.common.typing import Fab, UserConfig
|
28
|
-
from flwr.server.superlink.ffs import Ffs
|
29
|
-
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
30
28
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
29
|
+
from flwr.supercore.ffs import Ffs, FfsFactory
|
31
30
|
|
32
31
|
from .executor import Executor
|
33
32
|
|
@@ -51,8 +51,9 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
|
|
51
51
|
# Store run ID to Context mapping
|
52
52
|
self.ctx_store: dict[int, Context] = {}
|
53
53
|
self.lock_ctx_store = Lock()
|
54
|
-
# Store run ID to token mapping
|
54
|
+
# Store run ID to token mapping and token to run ID mapping
|
55
55
|
self.token_store: dict[int, str] = {}
|
56
|
+
self.token_to_run_id: dict[str, int] = {}
|
56
57
|
self.lock_token_store = Lock()
|
57
58
|
|
58
59
|
def set_node_id(self, node_id: Optional[int]) -> None:
|
@@ -177,6 +178,7 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
|
|
177
178
|
if run_id in self.token_store:
|
178
179
|
raise ValueError("Token already created for this run ID")
|
179
180
|
self.token_store[run_id] = token
|
181
|
+
self.token_to_run_id[token] = run_id
|
180
182
|
return token
|
181
183
|
|
182
184
|
def verify_token(self, run_id: int, token: str) -> bool:
|
@@ -187,4 +189,11 @@ class InMemoryNodeState(NodeState): # pylint: disable=too-many-instance-attribu
|
|
187
189
|
def delete_token(self, run_id: int) -> None:
|
188
190
|
"""Delete the token for the given run ID."""
|
189
191
|
with self.lock_token_store:
|
190
|
-
self.token_store.pop(run_id, None)
|
192
|
+
token = self.token_store.pop(run_id, None)
|
193
|
+
if token is not None:
|
194
|
+
self.token_to_run_id.pop(token, None)
|
195
|
+
|
196
|
+
def get_run_id_by_token(self, token: str) -> Optional[int]:
|
197
|
+
"""Get the run ID associated with a given token."""
|
198
|
+
with self.lock_token_store:
|
199
|
+
return self.token_to_run_id.get(token)
|
@@ -210,3 +210,18 @@ class NodeState(ABC):
|
|
210
210
|
run_id : int
|
211
211
|
The ID of the run for which to delete the token.
|
212
212
|
"""
|
213
|
+
|
214
|
+
@abstractmethod
|
215
|
+
def get_run_id_by_token(self, token: str) -> Optional[int]:
|
216
|
+
"""Get the run ID associated with a given token.
|
217
|
+
|
218
|
+
Parameters
|
219
|
+
----------
|
220
|
+
token : str
|
221
|
+
The token to look up.
|
222
|
+
|
223
|
+
Returns
|
224
|
+
-------
|
225
|
+
Optional[int]
|
226
|
+
The run ID if the token is valid, otherwise None.
|
227
|
+
"""
|
@@ -52,7 +52,7 @@ from flwr.common.logger import log
|
|
52
52
|
from flwr.common.retry_invoker import RetryInvoker, RetryState, exponential
|
53
53
|
from flwr.common.typing import Fab, Run, RunNotRunningException, UserConfig
|
54
54
|
from flwr.proto.clientappio_pb2_grpc import add_ClientAppIoServicer_to_server
|
55
|
-
from flwr.
|
55
|
+
from flwr.supercore.ffs import Ffs, FfsFactory
|
56
56
|
from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
|
57
57
|
from flwr.supernode.nodestate import NodeState, NodeStateFactory
|
58
58
|
from flwr.supernode.servicer.clientappio import ClientAppInputs, ClientAppIoServicer
|
{flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.20.0.dev20250617
|
4
4
|
Summary: Flower: A Friendly Federated AI Framework
|
5
5
|
License: Apache-2.0
|
6
6
|
Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
|
{flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/RECORD
RENAMED
@@ -61,17 +61,17 @@ flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=XlJqA4Ix_PloO_zJLhjiN
|
|
61
61
|
flwr/cli/new/templates/app/code/task.sklearn.py.tpl,sha256=vHdhtMp0FHxbYafXyhDT9aKmmmA0Jvpx5Oum1Yu9lWY,1850
|
62
62
|
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
|
63
63
|
flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
|
64
|
-
flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=
|
65
|
-
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=
|
66
|
-
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=
|
67
|
-
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=
|
68
|
-
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=
|
69
|
-
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=
|
70
|
-
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=
|
71
|
-
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=
|
72
|
-
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=
|
64
|
+
flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=NVZBJZwn2NpHe6_4Cm32IRy7135ZI1zJQxCdW4_MPeg,2623
|
65
|
+
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=nth0gqYOteImRFKktdC_UQ-EGIl1qHJyiBsMH9orV-I,1873
|
66
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=gtCxa-eoE3AAGBKFXWXcD1-5Ef4I0J8-DGafDW8BqXE,1143
|
67
|
+
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=oMuJKx1gH-Vn1PhkbpIfz8W18ktycaDGzdiOuUEmW6U,673
|
68
|
+
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=PlYcCItFBVRElU5KQgzO6xjmC4FDcN7tUR8BK3YBFbA,744
|
69
|
+
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=PL32GQmsxKOM7p4uEzM4jLeKqJs73YPR4P27a999y1Q,611
|
70
|
+
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=7zEuhCEz7MqfwS40udx-DP3yBuT8r927GiT6vb0gsbg,710
|
71
|
+
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=xXXS2D6avnDNxF906rKgdi5UPNPVDI-_p_3zz5MqcDI,686
|
72
|
+
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=3-gDei-K7zskh5dDuhPERkkMekbxGffRN_qZyNHiQH4,710
|
73
73
|
flwr/cli/run/__init__.py,sha256=RPyB7KbYTFl6YRiilCch6oezxrLQrl1kijV7BMGkLbA,790
|
74
|
-
flwr/cli/run/run.py,sha256=
|
74
|
+
flwr/cli/run/run.py,sha256=psmr215gkV0e0QtX9NFp7KUwKSA_ZwekdJmoL1zFyfw,8478
|
75
75
|
flwr/cli/stop.py,sha256=l8DcRkA---CESVJgc7iTHLWIBAPGxWIfoem8qSU3lZQ,4972
|
76
76
|
flwr/cli/utils.py,sha256=Vyxpd8LOn2tg5wwId18CHDKq2xaoFDxHMnMW0IlG9Yw,12048
|
77
77
|
flwr/client/__init__.py,sha256=boIhKaK6I977zrILmoTutNx94x5jB0e6F1gnAjaRJnI,1250
|
@@ -226,7 +226,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
226
226
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
227
227
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
228
228
|
flwr/server/__init__.py,sha256=LQQHiuL2jy7TpNaKastRdGsexlxSt5ZWAQNVqitDnrY,1598
|
229
|
-
flwr/server/app.py,sha256=
|
229
|
+
flwr/server/app.py,sha256=o_-azG7qWnCF2aIThgkaLbxcksXfysSrCwDVPE8vFbc,29484
|
230
230
|
flwr/server/client_manager.py,sha256=5jCGavVli7XdupvWWo7ru3PdFTlRU8IGvHFSSoUVLRs,6227
|
231
231
|
flwr/server/client_proxy.py,sha256=sv0E9AldBYOvc3pusqFh-GnyreeMfsXQ1cuTtxTq_wY,2399
|
232
232
|
flwr/server/compat/__init__.py,sha256=0IsttWvY15qO98_1GyzVC-vR1e_ZPXOdu2qUlOkYMPE,886
|
@@ -273,10 +273,6 @@ flwr/server/strategy/krum.py,sha256=9hjB-5l7lwo7Er2xRauYvNEKAv9KoPCin_TCdYJwQe4,
|
|
273
273
|
flwr/server/strategy/qfedavg.py,sha256=-siSzfuVX8GRkjmyvbj68fnjk02E3EYHl8Ory6v1QzI,10131
|
274
274
|
flwr/server/strategy/strategy.py,sha256=n4r52i5gK4KGToZvcJUeWuEif1tuI0HZUT3YJPTC7UE,7524
|
275
275
|
flwr/server/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
276
|
-
flwr/server/superlink/ffs/__init__.py,sha256=U3KXwG_SplEvchat27K0LYPoPHzh-cwwT_NHsGlYMt8,908
|
277
|
-
flwr/server/superlink/ffs/disk_ffs.py,sha256=tkJiUa9cIq6Po-9UYMtFpI-GEyY5FMg4RcDKenaky74,3297
|
278
|
-
flwr/server/superlink/ffs/ffs.py,sha256=6w7wy71i7tbuJwqEgdeCa49JejXMEof3jujURN_R7Rg,2395
|
279
|
-
flwr/server/superlink/ffs/ffs_factory.py,sha256=pK-g3LMelvWTV6N9Cd-j-_-FdcGbRFTKNsWaqmlBDSk,1490
|
280
276
|
flwr/server/superlink/fleet/__init__.py,sha256=Uiwr33yfW_eL-pEfj80c_JUhIKRkCPsN1JSs2v4aglU,711
|
281
277
|
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=fUu1V63YrzjxAOZnBJx99WjuD4Mro7dJIFH-1V4NLV8,742
|
282
278
|
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=Jdhesi4FUBFsdAnslzB4XaJQzERyCS2F8zeNnvBz9Wo,4715
|
@@ -286,12 +282,12 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=KouR9PUcrPmMtoLooF4O
|
|
286
282
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=iSf0mbBAlig7G6subQwBSVjcUCgSihONKdZ1RmQPTOk,4887
|
287
283
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OsS-6GgCIzMMZDVu5Y-OKjynHVUrpdc_5OrtuB-IbU0,5174
|
288
284
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=ahDJJ1e-lDxBpeBMgPk7YZt2wB38_QltcpOC0gLbpFs,758
|
289
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
285
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=X7-z4oReIH5ghMfmMXML3SSpa2bhRsuIvt2OZs82BUk,8675
|
290
286
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=DrHubsaLgJCwCeeJPYogQTiP0xYqjxwnT9rh7OP7BoU,6984
|
291
287
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=fHsRV0KvJ8HtgSA4_YBsEzuhJLjO8p6xx4aCY2oE1p4,731
|
292
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
288
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=pbsKY-maXIPCihre42VeUcjVFg3bexCrfOCnKA5UPNM,8842
|
293
289
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=Lzc93nA7tDqoy-zRUaPG316oqFiZX1HUCL5ELaXY_xw,735
|
294
|
-
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=
|
290
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=mxWKwGpgHPqd7cGFqd2ASnR-KZduIzLfT-d2yiNCqQ0,9257
|
295
291
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=XOKbAWOzlCqEOQ3M2cBYkH7HKA7PxlbCJMunt-ty-DY,784
|
296
292
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=PPH89Yqd1XKm-sRJN6R0WQlKT_b4v54Kzl2yzHAFzM8,1437
|
297
293
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=-wDHjgAy5mrfEgXj0GxkJI7lhEbgSUyPwmNAf9ZcDzc,2193
|
@@ -304,11 +300,11 @@ flwr/server/superlink/linkstate/linkstate_factory.py,sha256=8RlosqSpKOoD_vhUUQPY
|
|
304
300
|
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=E699Ak0jMF3N7i1SIeFRutjorg51Fd7qBqaPX_gkWU0,43687
|
305
301
|
flwr/server/superlink/linkstate/utils.py,sha256=IeLh7iGRCHU5MEWOl7iriaSE4L__8GWOa2OleXadK5M,15444
|
306
302
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
307
|
-
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=
|
308
|
-
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=
|
303
|
+
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=zcvzDhCAnlFxAwCiJUHNm6IE7-rk5jeZqSmPgjEY3AU,2307
|
304
|
+
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=J-c3aRIpSD8Kt0-yWwAecejuNP6YKfW2KTtk21SbFvs,18763
|
309
305
|
flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
|
310
|
-
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=
|
311
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
306
|
+
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=VqWKxjpd4bCgPFKsgtIZPk9YcG0kc1EEmr5k20EKty4,2205
|
307
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=m1T1zvEn81jlfx9hVTqmeWxAu6APCS2YW8l5O0OQvhU,7724
|
312
308
|
flwr/server/superlink/utils.py,sha256=SHx612HNv704oRqii3Q1SPtbRdn0AQQi1z-Rqg9moLk,3898
|
313
309
|
flwr/server/typing.py,sha256=LvO6gq7H6TAWhA9JFx0WyqHxU7FycyvhSsLjBLPgpts,1011
|
314
310
|
flwr/server/utils/__init__.py,sha256=U4gM84-uUFddarODDQkO6SjNUuGhFcsHJZMjSEbezkU,884
|
@@ -331,35 +327,39 @@ flwr/simulation/ray_transport/utils.py,sha256=KrexpWYCF-dAF3UHc9yDbPQWO-ahMT-BbD
|
|
331
327
|
flwr/simulation/run_simulation.py,sha256=Nvw_6hI71aE2nU95_tt1F9VSo3OJWrvA97e3XZuqE4k,20310
|
332
328
|
flwr/simulation/simulationio_connection.py,sha256=mzS1C6EEREwQDPceDo30anAasmTDLb9qqV2tXlBhOUA,3494
|
333
329
|
flwr/supercore/__init__.py,sha256=pqkFoow_E6UhbBlhmoD1gmTH-33yJRhBsIZqxRPFZ7U,755
|
330
|
+
flwr/supercore/ffs/__init__.py,sha256=U3KXwG_SplEvchat27K0LYPoPHzh-cwwT_NHsGlYMt8,908
|
331
|
+
flwr/supercore/ffs/disk_ffs.py,sha256=c5VywSaRnq3XM_zuJptNtsF2HFwsRK0pvBd5-5CNONs,3272
|
332
|
+
flwr/supercore/ffs/ffs.py,sha256=6w7wy71i7tbuJwqEgdeCa49JejXMEof3jujURN_R7Rg,2395
|
333
|
+
flwr/supercore/ffs/ffs_factory.py,sha256=pK-g3LMelvWTV6N9Cd-j-_-FdcGbRFTKNsWaqmlBDSk,1490
|
334
334
|
flwr/supercore/object_store/__init__.py,sha256=cdfPAmjINY6iOp8oI_LdcVh2simg469Mkdl4LLV4kHI,911
|
335
335
|
flwr/supercore/object_store/in_memory_object_store.py,sha256=oflJcOuVNgx9A-B2da4VHDb1qj_Jub9wKFOrUBgtz_U,9630
|
336
336
|
flwr/supercore/object_store/object_store.py,sha256=VlZz-yzoWZtITbnYD8vwLZbFosv7vgr1XVNzByObeY0,5853
|
337
337
|
flwr/supercore/object_store/object_store_factory.py,sha256=QVwE2ywi7vsj2iKfvWWnNw3N_I7Rz91NUt2RpcbJ7iM,1527
|
338
338
|
flwr/superexec/__init__.py,sha256=YFqER0IJc1XEWfsX6AxZ9LSRq0sawPYrNYki-brvTIc,715
|
339
339
|
flwr/superexec/app.py,sha256=U2jjOHb2LGWoU7vrl9_czTzre9O2mPxu3CPGUZ86sK4,1465
|
340
|
-
flwr/superexec/deployment.py,sha256=
|
340
|
+
flwr/superexec/deployment.py,sha256=cFxhFom-0zv93HLNjNcUdBy3Sf6JwshRoXPQtcZunF0,6797
|
341
341
|
flwr/superexec/exec_event_log_interceptor.py,sha256=7aBjZ4lkpOIyWut0s394OpMePr16g_Te594s-9aDM9Q,5774
|
342
|
-
flwr/superexec/exec_grpc.py,sha256=
|
343
|
-
flwr/superexec/exec_servicer.py,sha256=
|
342
|
+
flwr/superexec/exec_grpc.py,sha256=lpc_rgRjtHHMzcdOzznl12D4vT22JqV5acdy45YDb0k,3498
|
343
|
+
flwr/superexec/exec_servicer.py,sha256=U2-sOV0C87zvOaWZ0sQcCtnh8ENRWs6bgJhpH1srcEs,12235
|
344
344
|
flwr/superexec/exec_user_auth_interceptor.py,sha256=HpGHTcDKzB7XUiQHXgntNVFYL-VfP9Wj5tEVc04VOOw,5820
|
345
|
-
flwr/superexec/executor.py,sha256=
|
346
|
-
flwr/superexec/simulation.py,sha256=
|
345
|
+
flwr/superexec/executor.py,sha256=LaErHRJvNggjWV6FI6eajgKfnwOvSv2UqzFH253yDro,3265
|
346
|
+
flwr/superexec/simulation.py,sha256=62rSLcS-1wnMsMsafSQuIDLs5ZS6Ail1spkZ-alNNTg,4156
|
347
347
|
flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
348
348
|
flwr/supernode/__init__.py,sha256=KgeCaVvXWrU3rptNR1y0oBp4YtXbAcrnCcJAiOoWkI4,707
|
349
349
|
flwr/supernode/cli/__init__.py,sha256=JuEMr0-s9zv-PEWKuLB9tj1ocNfroSyNJ-oyv7ati9A,887
|
350
350
|
flwr/supernode/cli/flower_supernode.py,sha256=ly2AQhbla2sufDaMsENaEALDEd0a4CS4D0eUrUOkHzY,8778
|
351
351
|
flwr/supernode/cli/flwr_clientapp.py,sha256=KfVUO20ZMnUDSGZTJ9I1KkMawFsRV6kdRUmGIRNbg_8,2812
|
352
352
|
flwr/supernode/nodestate/__init__.py,sha256=CyLLObbmmVgfRO88UCM0VMait1dL57mUauUDfuSHsbU,976
|
353
|
-
flwr/supernode/nodestate/in_memory_nodestate.py,sha256=
|
354
|
-
flwr/supernode/nodestate/nodestate.py,sha256=
|
353
|
+
flwr/supernode/nodestate/in_memory_nodestate.py,sha256=LF3AbaW0bcZHY5yKWwUJSU2RZbMynt-YjFysGqvTOQY,7338
|
354
|
+
flwr/supernode/nodestate/nodestate.py,sha256=kkGFxYnLIwT4-UmlPnf6HvAUpPey2urUNrweGybAIY4,6398
|
355
355
|
flwr/supernode/nodestate/nodestate_factory.py,sha256=UYTDCcwK_baHUmkzkJDxL0UEqvtTfOMlQRrROMCd0Xo,1430
|
356
356
|
flwr/supernode/runtime/__init__.py,sha256=JQdqd2EMTn-ORMeTvewYYh52ls0YKP68jrps1qioxu4,718
|
357
357
|
flwr/supernode/runtime/run_clientapp.py,sha256=cvWSby7u31u97QapWHxJM-Wer6F1k6mbbD-d1gxwxZA,7962
|
358
358
|
flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca8gxdEo,717
|
359
359
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=vJyOjO2FXZ2URbnthmdsgs6948wbYfdq1L1V8Um-Lr8,895
|
360
360
|
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=LmzkxtNQBn5vVrHc0Bhq2WqaK6-LM2v4kfLBN0PiNNM,8522
|
361
|
-
flwr/supernode/start_client_internal.py,sha256=
|
362
|
-
flwr_nightly-1.
|
363
|
-
flwr_nightly-1.
|
364
|
-
flwr_nightly-1.
|
365
|
-
flwr_nightly-1.
|
361
|
+
flwr/supernode/start_client_internal.py,sha256=zH6Pvi1cW-Np9F3_fvZR9ASsr4jeCoGSeC6EnAKOlig,18446
|
362
|
+
flwr_nightly-1.20.0.dev20250617.dist-info/METADATA,sha256=EAq6pSZc7jgWG0R8DJDg23VkA3W6qWagqmUbi_HilKU,15910
|
363
|
+
flwr_nightly-1.20.0.dev20250617.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
364
|
+
flwr_nightly-1.20.0.dev20250617.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
|
365
|
+
flwr_nightly-1.20.0.dev20250617.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
{flwr_nightly-1.19.0.dev20250616.dist-info → flwr_nightly-1.20.0.dev20250617.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|