flwr-nightly 1.13.0.dev20241113__py3-none-any.whl → 1.13.0.dev20241115__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/ls.py +228 -0
- flwr/client/app.py +58 -13
- flwr/client/clientapp/app.py +34 -23
- flwr/client/grpc_rere_client/connection.py +2 -12
- flwr/client/rest_client/connection.py +4 -14
- flwr/client/supernode/app.py +56 -18
- flwr/common/constant.py +21 -6
- flwr/common/serde.py +10 -0
- flwr/common/typing.py +31 -10
- flwr/proto/exec_pb2.py +22 -13
- flwr/proto/exec_pb2.pyi +44 -0
- flwr/proto/exec_pb2_grpc.py +34 -0
- flwr/proto/exec_pb2_grpc.pyi +13 -0
- flwr/proto/run_pb2.py +30 -30
- flwr/proto/run_pb2.pyi +18 -1
- flwr/server/app.py +37 -12
- flwr/server/driver/grpc_driver.py +4 -14
- flwr/server/run_serverapp.py +8 -238
- flwr/server/serverapp/app.py +33 -22
- flwr/server/superlink/fleet/rest_rere/rest_api.py +10 -9
- flwr/server/superlink/linkstate/in_memory_linkstate.py +71 -46
- flwr/server/superlink/linkstate/linkstate.py +19 -5
- flwr/server/superlink/linkstate/sqlite_linkstate.py +79 -111
- flwr/server/superlink/linkstate/utils.py +182 -3
- flwr/simulation/app.py +3 -3
- flwr/simulation/legacy_app.py +21 -1
- flwr/simulation/run_simulation.py +7 -18
- flwr/simulation/simulationio_connection.py +2 -2
- flwr/superexec/deployment.py +9 -5
- flwr/superexec/exec_servicer.py +31 -2
- {flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/METADATA +2 -1
- {flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/RECORD +36 -35
- {flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/entry_points.txt +0 -0
flwr/simulation/app.py
CHANGED
|
@@ -119,7 +119,7 @@ def flwr_simulation() -> None:
|
|
|
119
119
|
args.superlink,
|
|
120
120
|
)
|
|
121
121
|
run_simulation_process(
|
|
122
|
-
|
|
122
|
+
simulationio_api_address=args.superlink,
|
|
123
123
|
log_queue=log_queue,
|
|
124
124
|
run_once=args.run_once,
|
|
125
125
|
flwr_dir_=args.flwr_dir,
|
|
@@ -131,7 +131,7 @@ def flwr_simulation() -> None:
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
def run_simulation_process( # pylint: disable=R0914, disable=W0212, disable=R0915
|
|
134
|
-
|
|
134
|
+
simulationio_api_address: str,
|
|
135
135
|
log_queue: Queue[Optional[str]],
|
|
136
136
|
run_once: bool,
|
|
137
137
|
flwr_dir_: Optional[str] = None,
|
|
@@ -139,7 +139,7 @@ def run_simulation_process( # pylint: disable=R0914, disable=W0212, disable=R09
|
|
|
139
139
|
) -> None:
|
|
140
140
|
"""Run Flower Simulation process."""
|
|
141
141
|
conn = SimulationIoConnection(
|
|
142
|
-
simulationio_service_address=
|
|
142
|
+
simulationio_service_address=simulationio_api_address,
|
|
143
143
|
root_certificates=certificates,
|
|
144
144
|
)
|
|
145
145
|
|
flwr/simulation/legacy_app.py
CHANGED
|
@@ -30,7 +30,12 @@ from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy
|
|
|
30
30
|
from flwr.client import ClientFnExt
|
|
31
31
|
from flwr.common import EventType, event
|
|
32
32
|
from flwr.common.constant import NODE_ID_NUM_BYTES
|
|
33
|
-
from flwr.common.logger import
|
|
33
|
+
from flwr.common.logger import (
|
|
34
|
+
log,
|
|
35
|
+
set_logger_propagation,
|
|
36
|
+
warn_deprecated_feature,
|
|
37
|
+
warn_unsupported_feature,
|
|
38
|
+
)
|
|
34
39
|
from flwr.server.client_manager import ClientManager
|
|
35
40
|
from flwr.server.history import History
|
|
36
41
|
from flwr.server.server import Server, init_defaults, run_fl
|
|
@@ -108,6 +113,11 @@ def start_simulation(
|
|
|
108
113
|
) -> History:
|
|
109
114
|
"""Start a Ray-based Flower simulation server.
|
|
110
115
|
|
|
116
|
+
Warning
|
|
117
|
+
-------
|
|
118
|
+
This function is deprecated since 1.13.0. Use :code: `flwr run` to start a Flower
|
|
119
|
+
simulation.
|
|
120
|
+
|
|
111
121
|
Parameters
|
|
112
122
|
----------
|
|
113
123
|
client_fn : ClientFnExt
|
|
@@ -183,6 +193,16 @@ def start_simulation(
|
|
|
183
193
|
Object containing metrics from training.
|
|
184
194
|
""" # noqa: E501
|
|
185
195
|
# pylint: disable-msg=too-many-locals
|
|
196
|
+
msg = (
|
|
197
|
+
"flwr.simulation.start_simulation() is deprecated."
|
|
198
|
+
"\n\tInstead, use the `flwr run` CLI command to start a local simulation "
|
|
199
|
+
"in your Flower app, as shown for example below:"
|
|
200
|
+
"\n\n\t\t$ flwr new # Create a new Flower app from a template"
|
|
201
|
+
"\n\n\t\t$ flwr run # Run the Flower app in Simulation Mode"
|
|
202
|
+
"\n\n\tUsing `start_simulation()` is deprecated."
|
|
203
|
+
)
|
|
204
|
+
warn_deprecated_feature(name=msg)
|
|
205
|
+
|
|
186
206
|
event(
|
|
187
207
|
EventType.START_SIMULATION_ENTER,
|
|
188
208
|
{"num_clients": len(clients_ids) if clients_ids is not None else num_clients},
|
|
@@ -123,13 +123,8 @@ def run_simulation_from_cli() -> None:
|
|
|
123
123
|
fused_config = get_fused_config_from_dir(app_path, override_config)
|
|
124
124
|
|
|
125
125
|
# Create run
|
|
126
|
-
run = Run(
|
|
127
|
-
|
|
128
|
-
fab_id="",
|
|
129
|
-
fab_version="",
|
|
130
|
-
fab_hash="",
|
|
131
|
-
override_config=override_config,
|
|
132
|
-
)
|
|
126
|
+
run = Run.create_empty(run_id)
|
|
127
|
+
run.override_config = override_config
|
|
133
128
|
|
|
134
129
|
_run_simulation(
|
|
135
130
|
server_app_attr=server_app_attr,
|
|
@@ -333,14 +328,10 @@ def _main_loop(
|
|
|
333
328
|
try:
|
|
334
329
|
# Register run
|
|
335
330
|
log(DEBUG, "Pre-registering run with id %s", run.run_id)
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
starting_at=now().isoformat(),
|
|
341
|
-
running_at=now().isoformat(),
|
|
342
|
-
finished_at="",
|
|
343
|
-
)
|
|
331
|
+
run.status = RunStatus(Status.RUNNING, "", "")
|
|
332
|
+
run.starting_at = now().isoformat()
|
|
333
|
+
run.running_at = run.starting_at
|
|
334
|
+
state_factory.state().run_ids[run.run_id] = RunRecord(run=run) # type: ignore
|
|
344
335
|
|
|
345
336
|
if server_app_run_config is None:
|
|
346
337
|
server_app_run_config = {}
|
|
@@ -457,9 +448,7 @@ def _run_simulation(
|
|
|
457
448
|
# If no `Run` object is set, create one
|
|
458
449
|
if run is None:
|
|
459
450
|
run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
|
|
460
|
-
run = Run(
|
|
461
|
-
run_id=run_id, fab_id="", fab_version="", fab_hash="", override_config={}
|
|
462
|
-
)
|
|
451
|
+
run = Run.create_empty(run_id=run_id)
|
|
463
452
|
|
|
464
453
|
args = (
|
|
465
454
|
num_supernodes,
|
|
@@ -20,7 +20,7 @@ from typing import Optional, cast
|
|
|
20
20
|
|
|
21
21
|
import grpc
|
|
22
22
|
|
|
23
|
-
from flwr.common.constant import
|
|
23
|
+
from flwr.common.constant import SIMULATIONIO_API_DEFAULT_CLIENT_ADDRESS
|
|
24
24
|
from flwr.common.grpc import create_channel
|
|
25
25
|
from flwr.common.logger import log
|
|
26
26
|
from flwr.proto.simulationio_pb2_grpc import SimulationIoStub # pylint: disable=E0611
|
|
@@ -41,7 +41,7 @@ class SimulationIoConnection:
|
|
|
41
41
|
|
|
42
42
|
def __init__( # pylint: disable=too-many-arguments
|
|
43
43
|
self,
|
|
44
|
-
simulationio_service_address: str =
|
|
44
|
+
simulationio_service_address: str = SIMULATIONIO_API_DEFAULT_CLIENT_ADDRESS,
|
|
45
45
|
root_certificates: Optional[bytes] = None,
|
|
46
46
|
) -> None:
|
|
47
47
|
self._addr = simulationio_service_address
|
flwr/superexec/deployment.py
CHANGED
|
@@ -23,7 +23,11 @@ from typing_extensions import override
|
|
|
23
23
|
|
|
24
24
|
from flwr.cli.config_utils import get_fab_metadata
|
|
25
25
|
from flwr.common import ConfigsRecord, Context, RecordSet
|
|
26
|
-
from flwr.common.constant import
|
|
26
|
+
from flwr.common.constant import (
|
|
27
|
+
SERVERAPPIO_API_DEFAULT_CLIENT_ADDRESS,
|
|
28
|
+
Status,
|
|
29
|
+
SubStatus,
|
|
30
|
+
)
|
|
27
31
|
from flwr.common.logger import log
|
|
28
32
|
from flwr.common.typing import Fab, RunStatus, UserConfig
|
|
29
33
|
from flwr.server.superlink.ffs import Ffs
|
|
@@ -38,7 +42,7 @@ class DeploymentEngine(Executor):
|
|
|
38
42
|
|
|
39
43
|
Parameters
|
|
40
44
|
----------
|
|
41
|
-
|
|
45
|
+
serverappio_api_address: str (default: "127.0.0.1:9091")
|
|
42
46
|
Address of the SuperLink to connect to.
|
|
43
47
|
root_certificates: Optional[str] (default: None)
|
|
44
48
|
Specifies the path to the PEM-encoded root certificate file for
|
|
@@ -49,11 +53,11 @@ class DeploymentEngine(Executor):
|
|
|
49
53
|
|
|
50
54
|
def __init__(
|
|
51
55
|
self,
|
|
52
|
-
|
|
56
|
+
serverappio_api_address: str = SERVERAPPIO_API_DEFAULT_CLIENT_ADDRESS,
|
|
53
57
|
root_certificates: Optional[str] = None,
|
|
54
58
|
flwr_dir: Optional[str] = None,
|
|
55
59
|
) -> None:
|
|
56
|
-
self.
|
|
60
|
+
self.serverappio_api_address = serverappio_api_address
|
|
57
61
|
if root_certificates is None:
|
|
58
62
|
self.root_certificates = None
|
|
59
63
|
self.root_certificates_bytes = None
|
|
@@ -110,7 +114,7 @@ class DeploymentEngine(Executor):
|
|
|
110
114
|
if superlink_address := config.get("superlink"):
|
|
111
115
|
if not isinstance(superlink_address, str):
|
|
112
116
|
raise ValueError("The `superlink` value should be of type `str`.")
|
|
113
|
-
self.
|
|
117
|
+
self.serverappio_api_address = superlink_address
|
|
114
118
|
if root_certificates := config.get("root-certificates"):
|
|
115
119
|
if not isinstance(root_certificates, str):
|
|
116
120
|
raise ValueError(
|
flwr/superexec/exec_servicer.py
CHANGED
|
@@ -22,18 +22,25 @@ from typing import Any
|
|
|
22
22
|
|
|
23
23
|
import grpc
|
|
24
24
|
|
|
25
|
+
from flwr.common import now
|
|
25
26
|
from flwr.common.constant import LOG_STREAM_INTERVAL, Status
|
|
26
27
|
from flwr.common.logger import log
|
|
27
|
-
from flwr.common.serde import
|
|
28
|
+
from flwr.common.serde import (
|
|
29
|
+
configs_record_from_proto,
|
|
30
|
+
run_to_proto,
|
|
31
|
+
user_config_from_proto,
|
|
32
|
+
)
|
|
28
33
|
from flwr.proto import exec_pb2_grpc # pylint: disable=E0611
|
|
29
34
|
from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
|
|
35
|
+
ListRunsRequest,
|
|
36
|
+
ListRunsResponse,
|
|
30
37
|
StartRunRequest,
|
|
31
38
|
StartRunResponse,
|
|
32
39
|
StreamLogsRequest,
|
|
33
40
|
StreamLogsResponse,
|
|
34
41
|
)
|
|
35
42
|
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
|
36
|
-
from flwr.server.superlink.linkstate import LinkStateFactory
|
|
43
|
+
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
|
37
44
|
|
|
38
45
|
from .executor import Executor
|
|
39
46
|
|
|
@@ -105,3 +112,25 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
|
105
112
|
context.cancel()
|
|
106
113
|
|
|
107
114
|
time.sleep(LOG_STREAM_INTERVAL) # Sleep briefly to avoid busy waiting
|
|
115
|
+
|
|
116
|
+
def ListRuns(
|
|
117
|
+
self, request: ListRunsRequest, context: grpc.ServicerContext
|
|
118
|
+
) -> ListRunsResponse:
|
|
119
|
+
"""Handle `flwr ls` command."""
|
|
120
|
+
log(INFO, "ExecServicer.List")
|
|
121
|
+
state = self.linkstate_factory.state()
|
|
122
|
+
|
|
123
|
+
# Handle `flwr ls --runs`
|
|
124
|
+
if not request.HasField("run_id"):
|
|
125
|
+
return _create_list_runs_response(state.get_run_ids(), state)
|
|
126
|
+
# Handle `flwr ls --run-id <run_id>`
|
|
127
|
+
return _create_list_runs_response({request.run_id}, state)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _create_list_runs_response(run_ids: set[int], state: LinkState) -> ListRunsResponse:
|
|
131
|
+
"""Create response for `flwr ls --runs` and `flwr ls --run-id <run_id>`."""
|
|
132
|
+
run_dict = {run_id: state.get_run(run_id) for run_id in run_ids}
|
|
133
|
+
return ListRunsResponse(
|
|
134
|
+
run_dict={run_id: run_to_proto(run) for run_id, run in run_dict.items() if run},
|
|
135
|
+
now=now().isoformat(),
|
|
136
|
+
)
|
{flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.13.0.
|
|
3
|
+
Version: 1.13.0.dev20241115
|
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -42,6 +42,7 @@ Requires-Dist: protobuf (>=4.25.2,<5.0.0)
|
|
|
42
42
|
Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
|
|
43
43
|
Requires-Dist: ray (==2.10.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "simulation")
|
|
44
44
|
Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
|
|
45
|
+
Requires-Dist: rich (>=13.5.0,<14.0.0)
|
|
45
46
|
Requires-Dist: starlette (>=0.31.0,<0.32.0) ; extra == "rest"
|
|
46
47
|
Requires-Dist: tomli (>=2.0.1,<3.0.0)
|
|
47
48
|
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
|
{flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.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=
|
|
3
|
+
flwr/cli/app.py,sha256=h1RCGBUtiL1JTC6yoihlOlB-k4imJ0ToS8uG4haFiyU,1292
|
|
4
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
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
|
|
@@ -64,11 +65,11 @@ flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
|
64
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
|
|
@@ -98,16 +99,16 @@ flwr/client/nodestate/nodestate.py,sha256=2sSziyHK65ygayLcEoR78erqyrRe10tZ2tB-QI
|
|
|
98
99
|
flwr/client/nodestate/nodestate_factory.py,sha256=LipmYzjYlN2U-CYN20d8Kk0PXyCAJq3L3VQFc6QscJc,1429
|
|
99
100
|
flwr/client/numpy_client.py,sha256=tqGyhIkeeZQGr65BR03B7TWgx4rW3FA7G2874D8z_VU,11167
|
|
100
101
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
101
|
-
flwr/client/rest_client/connection.py,sha256=
|
|
102
|
+
flwr/client/rest_client/connection.py,sha256=cBLtI-nUTELn5zpS42sbnc--0wxc1DdHkVGAlfRSc2Y,12626
|
|
102
103
|
flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
|
|
103
104
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
104
|
-
flwr/client/supernode/app.py,sha256=
|
|
105
|
+
flwr/client/supernode/app.py,sha256=gb7tkT3l6tF2hOumeaELDQFvnTHwtvt5rSELVXUsTdo,12363
|
|
105
106
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
106
107
|
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
|
107
108
|
flwr/common/address.py,sha256=7kM2Rqjw86-c8aKwAvrXerWqznnVv4TFJ62aSAeTn10,3017
|
|
108
109
|
flwr/common/args.py,sha256=y9qtPIwyijegNi0GbQT5ddRtMUITM-DlgilC1Co-nvw,6133
|
|
109
110
|
flwr/common/config.py,sha256=qC1QvGAGr4faBtg3Y5dWhfyK5FggyWUMjPqg-Rx_FW4,8083
|
|
110
|
-
flwr/common/constant.py,sha256=
|
|
111
|
+
flwr/common/constant.py,sha256=41xaDQdeDMowFQ3Y34V132ICftGJJ2cVrZYyBmu6FZg,5418
|
|
111
112
|
flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
|
|
112
113
|
flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
|
|
113
114
|
flwr/common/differential_privacy.py,sha256=XwcJ3rWr8S8BZUocc76vLSJAXIf6OHnWkBV6-xlIRuw,6106
|
|
@@ -137,9 +138,9 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8
|
|
|
137
138
|
flwr/common/secure_aggregation/quantization.py,sha256=mC4uLf05zeONo8Ke-BY0Tj8UCMOS7VD93zHCzuv3MHU,2304
|
|
138
139
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
139
140
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=o7IhHH6J9xqinhQy3TdPgQpoj1XyEpyv3OQFyx81RVQ,3193
|
|
140
|
-
flwr/common/serde.py,sha256=
|
|
141
|
+
flwr/common/serde.py,sha256=K9ExsqcTPETESkt2HMaNtIQAIAfwmuwtJFlG-59I7Sw,31046
|
|
141
142
|
flwr/common/telemetry.py,sha256=20AYNaePOBaSEh99PIuBrxRxtY53-kZ5-2Ej0JWUJmc,8731
|
|
142
|
-
flwr/common/typing.py,sha256=
|
|
143
|
+
flwr/common/typing.py,sha256=RLq2f9jhE_Nndtk023cPMG0LpoQHaacEsww-3j0xs4Q,5710
|
|
143
144
|
flwr/common/version.py,sha256=tCcl_FvxVK206C1dxIJCs4TjL06WmyaODBP19FRHE1c,1324
|
|
144
145
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
145
146
|
flwr/proto/clientappio_pb2.py,sha256=Y3PMv-JMaBGehpslgbvGY6l2u5vNpfCTFWu-fmAmBJ4,3703
|
|
@@ -158,10 +159,10 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
|
158
159
|
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
159
160
|
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
160
161
|
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
161
|
-
flwr/proto/exec_pb2.py,sha256=
|
|
162
|
-
flwr/proto/exec_pb2.pyi,sha256=
|
|
163
|
-
flwr/proto/exec_pb2_grpc.py,sha256=
|
|
164
|
-
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
|
|
165
166
|
flwr/proto/fab_pb2.py,sha256=3QSDq9pjbZoqVxsmCRDwHO5PrSjzn2vixjYxE-qPmb0,1589
|
|
166
167
|
flwr/proto/fab_pb2.pyi,sha256=fXI108QaFtbl1WWTyslPbIx9c_19D0aYCoFn0xYtL4U,2277
|
|
167
168
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -190,8 +191,8 @@ flwr/proto/recordset_pb2.py,sha256=XjEIDU-YlKSY59qNd0qXTFB4COvMHGiszQ5O1krJ1Ks,6
|
|
|
190
191
|
flwr/proto/recordset_pb2.pyi,sha256=ypFNvroU4aIlnN0D6W4XAsOfm0UzTfXhxxL1v7u__Ac,15370
|
|
191
192
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
192
193
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
193
|
-
flwr/proto/run_pb2.py,sha256=
|
|
194
|
-
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
|
|
195
196
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
196
197
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
197
198
|
flwr/proto/serverappio_pb2.py,sha256=zWnODeaj26oSx98-BFvwtWM_fYvsw9OeSIuV7JnKVvw,4822
|
|
@@ -212,7 +213,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
|
212
213
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
213
214
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
214
215
|
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
|
215
|
-
flwr/server/app.py,sha256=
|
|
216
|
+
flwr/server/app.py,sha256=UAynn_AmJotTMS8ebY1Gqe7Qft9slSlSMKyWfnriB7M,28919
|
|
216
217
|
flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
|
|
217
218
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
218
219
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
@@ -223,15 +224,15 @@ flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_Od
|
|
|
223
224
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
224
225
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
225
226
|
flwr/server/driver/driver.py,sha256=u_fMfqLYTroTafGCNwKPHI4lttRL-Z5CqeT3_FHSq-Q,5701
|
|
226
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
227
|
+
flwr/server/driver/grpc_driver.py,sha256=lIOeAPvTIRAebRitTONZE1ji4UTGjIsMor-dW_X8eDw,9300
|
|
227
228
|
flwr/server/driver/inmemory_driver.py,sha256=gfB4jmkk1indhRa9XCdKCXghVcWBF1qBD-tAxMUyQm0,6404
|
|
228
229
|
flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
|
|
229
|
-
flwr/server/run_serverapp.py,sha256=
|
|
230
|
+
flwr/server/run_serverapp.py,sha256=oDfHaHyVT5BRcckFFQKg8AVPCWR1ek7OhNceTC8qq9g,2493
|
|
230
231
|
flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
|
|
231
232
|
flwr/server/server_app.py,sha256=RsgS6PRS5Z74cMUAHzsm8r3LWddwn00MjRs6rlacHt8,6297
|
|
232
233
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
233
234
|
flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
|
|
234
|
-
flwr/server/serverapp/app.py,sha256=
|
|
235
|
+
flwr/server/serverapp/app.py,sha256=Fa26GCuq53cJYH7cII8iaEq8EtfLrNB90MOeHzU81EE,7554
|
|
235
236
|
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
236
237
|
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
237
238
|
flwr/server/strategy/aggregate.py,sha256=PDvekufza13s9AsVmz9WASunaBs3yCtl8JVliFx9j6Q,13978
|
|
@@ -279,18 +280,18 @@ flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=iZlgW7L5oVG_0
|
|
|
279
280
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
280
281
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=WAis2WPj0L91HSfOZqX-k0n9Rs3igdARKRMsV1VlTnY,4465
|
|
281
282
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
282
|
-
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=
|
|
283
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=WX-CiZVa4ntzMlZfBzKJtOsliP1Sm7GyHhPMqVXaehg,6605
|
|
283
284
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
284
285
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=Onq16E2M2Wha2K1zvhcquT1jOveQL2cgIrgqWvAPH9Y,1436
|
|
285
286
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0QIvVP5O-RQxKQlUGNUj974,2194
|
|
286
287
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=7kB3re3mR53b7E6L6DPSioTSKD3YGtS3uJsPD7Hn2Fw,7155
|
|
287
288
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=VL6e_Jwf4uxA-X1EelxJZMv6Eji-_p2J9D0MdHG10a4,13029
|
|
288
289
|
flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
|
|
289
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
|
290
|
-
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
|
|
291
292
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
|
|
292
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
|
293
|
-
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
|
|
294
295
|
flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
|
|
295
296
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=5wflYW_TS0mjmPG6OYuHMJwXD2_cYmUNhFkdOU0jMWQ,2237
|
|
296
297
|
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=LsW6Cl8qH_vq04F6CeOp3vBtjTGQn4tATKHfirDmJZQ,5942
|
|
@@ -305,23 +306,23 @@ flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B
|
|
|
305
306
|
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
|
|
306
307
|
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=rfn2etO1nb7u-1oRl-H9q3enJZz3shMINZaBB7rPsC4,29671
|
|
307
308
|
flwr/simulation/__init__.py,sha256=5UcDVJNjFoSwWqHbGM1hKfTTUUNdwAtuoNvNrfvdkUY,1556
|
|
308
|
-
flwr/simulation/app.py,sha256=
|
|
309
|
-
flwr/simulation/legacy_app.py,sha256=
|
|
309
|
+
flwr/simulation/app.py,sha256=EGF20e-Uv7slJCRQeDI2erjFDiljE_RRo-4TFHOMouk,9576
|
|
310
|
+
flwr/simulation/legacy_app.py,sha256=ySggtKEtXe8L77n8qyGXDA7UPv840MXh-QoalzoGiLU,15780
|
|
310
311
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
311
312
|
flwr/simulation/ray_transport/ray_actor.py,sha256=9-XBguAm5IFqm2ddPFsQtnuuFN6lzqdb00SnCxGUGBo,18996
|
|
312
313
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=2vjOKoom3B74C6XU-jC3N6DwYmsLdB-lmkHZ_Xrv96o,7367
|
|
313
314
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
314
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
315
|
-
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
|
|
316
317
|
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
|
317
318
|
flwr/superexec/app.py,sha256=Tt3GonnTwHrMmicwx9XaP-crP78-bf4DUWl-N5cG6zY,1841
|
|
318
|
-
flwr/superexec/deployment.py,sha256=
|
|
319
|
+
flwr/superexec/deployment.py,sha256=7VYmmI12zEaTHp_cQtU1GLikmqhctUHhEdshBPRFHMs,6734
|
|
319
320
|
flwr/superexec/exec_grpc.py,sha256=OuhBAk7hiky9rjGceinLGIXqchtzGPQThZnwyYv6Ei0,2241
|
|
320
|
-
flwr/superexec/exec_servicer.py,sha256=
|
|
321
|
+
flwr/superexec/exec_servicer.py,sha256=M3R3q5rg2kYz-gFN-nmiXkvjels4QbieEA0K5wks0kQ,4972
|
|
321
322
|
flwr/superexec/executor.py,sha256=zH3_53il6Jh0ZscIVEB9f4GNnXMeBbCGyCoBCxLgiG0,3114
|
|
322
323
|
flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
|
|
323
|
-
flwr_nightly-1.13.0.
|
|
324
|
-
flwr_nightly-1.13.0.
|
|
325
|
-
flwr_nightly-1.13.0.
|
|
326
|
-
flwr_nightly-1.13.0.
|
|
327
|
-
flwr_nightly-1.13.0.
|
|
324
|
+
flwr_nightly-1.13.0.dev20241115.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
325
|
+
flwr_nightly-1.13.0.dev20241115.dist-info/METADATA,sha256=dvkA91faJRQvO24aiRrwaX7mmyjV48NHNtTKsSDD5EE,15740
|
|
326
|
+
flwr_nightly-1.13.0.dev20241115.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
327
|
+
flwr_nightly-1.13.0.dev20241115.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
|
|
328
|
+
flwr_nightly-1.13.0.dev20241115.dist-info/RECORD,,
|
{flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.13.0.dev20241113.dist-info → flwr_nightly-1.13.0.dev20241115.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|