flwr-nightly 1.16.0.dev20250309__py3-none-any.whl → 1.17.0.dev20250311__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/client/client_app.py +0 -9
- flwr/client/clientapp/app.py +4 -0
- flwr/client/supernode/__init__.py +0 -2
- flwr/client/supernode/app.py +1 -11
- flwr/common/args.py +8 -2
- flwr/common/grpc.py +1 -1
- flwr/common/telemetry.py +0 -10
- flwr/server/app.py +2 -1
- flwr/server/driver/grpc_driver.py +9 -0
- flwr/server/run_serverapp.py +2 -13
- flwr/server/superlink/driver/serverappio_servicer.py +9 -6
- flwr/superexec/app.py +0 -14
- {flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/METADATA +1 -1
- {flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/RECORD +26 -26
- {flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/entry_points.txt +0 -3
- {flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/WHEEL +0 -0
flwr/client/client_app.py
CHANGED
@@ -102,15 +102,6 @@ class ClientApp:
|
|
102
102
|
>>> return FlowerClient().to_client()
|
103
103
|
>>>
|
104
104
|
>>> app = ClientApp(client_fn)
|
105
|
-
|
106
|
-
If the above code is in a Python module called `client`, it can be started as
|
107
|
-
follows:
|
108
|
-
|
109
|
-
>>> flower-client-app client:app --insecure
|
110
|
-
|
111
|
-
In this `client:app` example, `client` refers to the Python module `client.py` in
|
112
|
-
which the previous code lives in and `app` refers to the global attribute `app` that
|
113
|
-
points to an object of type `ClientApp`.
|
114
105
|
"""
|
115
106
|
|
116
107
|
def __init__(
|
flwr/client/clientapp/app.py
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
import argparse
|
19
|
+
import gc
|
19
20
|
import time
|
20
21
|
from logging import DEBUG, ERROR, INFO
|
21
22
|
from typing import Optional
|
@@ -160,6 +161,9 @@ def run_clientapp( # pylint: disable=R0914
|
|
160
161
|
stub=stub, token=token, message=reply_message, context=context
|
161
162
|
)
|
162
163
|
|
164
|
+
del client_app, message, context, run, fab, reply_message
|
165
|
+
gc.collect()
|
166
|
+
|
163
167
|
# Reset token to `None` to prevent flwr-clientapp from trying to pull the
|
164
168
|
# same inputs again
|
165
169
|
token = None
|
flwr/client/supernode/app.py
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
import argparse
|
19
|
-
from logging import DEBUG,
|
19
|
+
from logging import DEBUG, INFO, WARN
|
20
20
|
from pathlib import Path
|
21
21
|
from typing import Optional
|
22
22
|
|
@@ -98,16 +98,6 @@ def run_supernode() -> None:
|
|
98
98
|
)
|
99
99
|
|
100
100
|
|
101
|
-
def run_client_app() -> None:
|
102
|
-
"""Run Flower client app."""
|
103
|
-
event(EventType.RUN_CLIENT_APP_ENTER)
|
104
|
-
log(
|
105
|
-
ERROR,
|
106
|
-
"The command `flower-client-app` has been replaced by `flwr run`.",
|
107
|
-
)
|
108
|
-
register_exit_handlers(event_type=EventType.RUN_CLIENT_APP_LEAVE)
|
109
|
-
|
110
|
-
|
111
101
|
def _parse_args_run_supernode() -> argparse.ArgumentParser:
|
112
102
|
"""Parse flower-supernode command line arguments."""
|
113
103
|
parser = argparse.ArgumentParser(
|
flwr/common/args.py
CHANGED
@@ -43,7 +43,8 @@ def add_args_flwr_app_common(parser: argparse.ArgumentParser) -> None:
|
|
43
43
|
"--insecure",
|
44
44
|
action="store_true",
|
45
45
|
help="Run the server without HTTPS, regardless of whether certificate "
|
46
|
-
"paths are provided.
|
46
|
+
"paths are provided. Data transmitted between the gRPC client and server "
|
47
|
+
"is not encrypted. By default, the server runs with HTTPS enabled. "
|
47
48
|
"Use this flag only if you understand the risks.",
|
48
49
|
)
|
49
50
|
|
@@ -99,7 +100,12 @@ def try_obtain_server_certificates(
|
|
99
100
|
) -> Optional[tuple[bytes, bytes, bytes]]:
|
100
101
|
"""Validate and return the CA cert, server cert, and server private key."""
|
101
102
|
if args.insecure:
|
102
|
-
log(
|
103
|
+
log(
|
104
|
+
WARN,
|
105
|
+
"Option `--insecure` was set. Starting insecure HTTP server with "
|
106
|
+
"unencrypted communication (TLS disabled). Proceed only if you understand "
|
107
|
+
"the risks.",
|
108
|
+
)
|
103
109
|
return None
|
104
110
|
# Check if certificates are provided
|
105
111
|
if args.ssl_certfile and args.ssl_keyfile and args.ssl_ca_certfile:
|
flwr/common/grpc.py
CHANGED
@@ -27,7 +27,7 @@ import grpc
|
|
27
27
|
from .address import is_port_in_use
|
28
28
|
from .logger import log
|
29
29
|
|
30
|
-
GRPC_MAX_MESSAGE_LENGTH: int =
|
30
|
+
GRPC_MAX_MESSAGE_LENGTH: int = 2_147_483_647 # == 2048 * 1024 * 1024 -1 (2GB)
|
31
31
|
|
32
32
|
INVALID_CERTIFICATES_ERR_MSG = """
|
33
33
|
When setting any of root_certificate, certificate, or private_key,
|
flwr/common/telemetry.py
CHANGED
@@ -181,16 +181,6 @@ class EventType(str, Enum):
|
|
181
181
|
RUN_SUPERNODE_ENTER = auto()
|
182
182
|
RUN_SUPERNODE_LEAVE = auto()
|
183
183
|
|
184
|
-
# --- DEPRECATED -------------------------------------------------------------------
|
185
|
-
|
186
|
-
# [DEPRECATED] CLI: `flower-server-app`
|
187
|
-
RUN_SERVER_APP_ENTER = auto()
|
188
|
-
RUN_SERVER_APP_LEAVE = auto()
|
189
|
-
|
190
|
-
# [DEPRECATED] CLI: `flower-client-app`
|
191
|
-
RUN_CLIENT_APP_ENTER = auto()
|
192
|
-
RUN_CLIENT_APP_LEAVE = auto()
|
193
|
-
|
194
184
|
|
195
185
|
# Use the ThreadPoolExecutor with max_workers=1 to have a queue
|
196
186
|
# and also ensure that telemetry calls are not blocking.
|
flwr/server/app.py
CHANGED
@@ -725,7 +725,8 @@ def _add_args_common(parser: argparse.ArgumentParser) -> None:
|
|
725
725
|
"--insecure",
|
726
726
|
action="store_true",
|
727
727
|
help="Run the server without HTTPS, regardless of whether certificate "
|
728
|
-
"paths are provided.
|
728
|
+
"paths are provided. Data transmitted between the gRPC client and server "
|
729
|
+
"is not encrypted. By default, the server runs with HTTPS enabled. "
|
729
730
|
"Use this flag only if you understand the risks.",
|
730
731
|
)
|
731
732
|
parser.add_argument(
|
@@ -212,6 +212,15 @@ class GrpcDriver(Driver):
|
|
212
212
|
messages_list=message_proto_list, run_id=cast(Run, self._run).run_id
|
213
213
|
)
|
214
214
|
)
|
215
|
+
if len([msg_id for msg_id in res.message_ids if msg_id]) != len(
|
216
|
+
list(message_proto_list)
|
217
|
+
):
|
218
|
+
log(
|
219
|
+
WARNING,
|
220
|
+
"Not all messages could be pushed to the SuperLink. The returned "
|
221
|
+
"list has `None` for those messages (the order is preserved as passed "
|
222
|
+
"to `push_messages`). This could be due to a malformed message.",
|
223
|
+
)
|
215
224
|
return list(res.message_ids)
|
216
225
|
|
217
226
|
def pull_messages(self, message_ids: Iterable[str]) -> Iterable[Message]:
|
flwr/server/run_serverapp.py
CHANGED
@@ -15,11 +15,10 @@
|
|
15
15
|
"""Run ServerApp."""
|
16
16
|
|
17
17
|
|
18
|
-
from logging import DEBUG
|
18
|
+
from logging import DEBUG
|
19
19
|
from typing import Optional
|
20
20
|
|
21
|
-
from flwr.common import Context
|
22
|
-
from flwr.common.exit_handlers import register_exit_handlers
|
21
|
+
from flwr.common import Context
|
23
22
|
from flwr.common.logger import log
|
24
23
|
from flwr.common.object_ref import load_app
|
25
24
|
|
@@ -64,13 +63,3 @@ def run(
|
|
64
63
|
|
65
64
|
log(DEBUG, "ServerApp finished running.")
|
66
65
|
return context
|
67
|
-
|
68
|
-
|
69
|
-
def run_server_app() -> None:
|
70
|
-
"""Run Flower server app."""
|
71
|
-
event(EventType.RUN_SERVER_APP_ENTER)
|
72
|
-
log(
|
73
|
-
ERROR,
|
74
|
-
"The command `flower-server-app` has been replaced by `flwr run`.",
|
75
|
-
)
|
76
|
-
register_exit_handlers(event_type=EventType.RUN_SERVER_APP_LEAVE)
|
@@ -23,7 +23,7 @@ from uuid import UUID
|
|
23
23
|
import grpc
|
24
24
|
|
25
25
|
from flwr.common import ConfigsRecord, Message
|
26
|
-
from flwr.common.constant import Status
|
26
|
+
from flwr.common.constant import SUPERLINK_NODE_ID, Status
|
27
27
|
from flwr.common.logger import log
|
28
28
|
from flwr.common.serde import (
|
29
29
|
context_from_proto,
|
@@ -215,11 +215,14 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
215
215
|
messages_list = []
|
216
216
|
while messages_res:
|
217
217
|
msg = messages_res.pop(0)
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
218
|
+
|
219
|
+
# Skip `run_id` check for SuperLink generated replies
|
220
|
+
if msg.metadata.src_node_id != SUPERLINK_NODE_ID:
|
221
|
+
_raise_if(
|
222
|
+
validation_error=request.run_id != msg.metadata.run_id,
|
223
|
+
request_name="PullMessages",
|
224
|
+
detail="`message.metadata` has mismatched `run_id`",
|
225
|
+
)
|
223
226
|
messages_list.append(message_to_proto(msg))
|
224
227
|
|
225
228
|
return PullResMessagesResponse(messages_list=messages_list)
|
flwr/superexec/app.py
CHANGED
@@ -16,26 +16,12 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
import argparse
|
19
|
-
import sys
|
20
|
-
from logging import INFO
|
21
19
|
|
22
|
-
from flwr.common import log
|
23
20
|
from flwr.common.object_ref import load_app, validate
|
24
21
|
|
25
22
|
from .executor import Executor
|
26
23
|
|
27
24
|
|
28
|
-
def run_superexec() -> None:
|
29
|
-
"""Run Flower SuperExec."""
|
30
|
-
log(INFO, "Starting Flower SuperExec")
|
31
|
-
|
32
|
-
sys.exit(
|
33
|
-
"Manually launching the SuperExec is deprecated. Since `flwr 1.13.0` "
|
34
|
-
"the executor service runs in the SuperLink. Launching it manually is not "
|
35
|
-
"recommended."
|
36
|
-
)
|
37
|
-
|
38
|
-
|
39
25
|
def load_executor(
|
40
26
|
args: argparse.Namespace,
|
41
27
|
) -> Executor:
|
{flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/RECORD
RENAMED
@@ -58,15 +58,15 @@ flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=XlJqA4Ix_PloO_zJLhjiN
|
|
58
58
|
flwr/cli/new/templates/app/code/task.sklearn.py.tpl,sha256=SeIIo0rr_6ffn4Qx2xELD18jYXCkcW__NWtYEDXCICM,1843
|
59
59
|
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
|
60
60
|
flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
|
61
|
-
flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=
|
62
|
-
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=
|
63
|
-
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=
|
64
|
-
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=
|
65
|
-
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=
|
66
|
-
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=
|
67
|
-
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=
|
68
|
-
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=
|
69
|
-
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=
|
61
|
+
flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=yJRlxNVsQNponM6WhpgZ0WlOS2QtiR-U00fvQBqhrmg,2666
|
62
|
+
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=VkLWj_38YTnaCVWUoqg7q6Aaa3LECOnqi5aA2M2c_QE,1873
|
63
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=8vW9CjTWAZ7iXH4G4sgViwJBCVCOPlirP7v8EFsghYU,1143
|
64
|
+
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=juNBqFEcD8pbq3GQrigwNTTLa98V6yxWHXASnR60QtA,673
|
65
|
+
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=CSGq5wen4BpbftVDz43mZr9WFE7ffsP_T5etKWehsu8,744
|
66
|
+
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=ParO1hGe_65VJYAHYXdzUgXW3Wv-IWuCq6981sT2E7E,611
|
67
|
+
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=7qIeXECaC8lTlyKgSnE5qZGmVwxC75zRMOfX0OOtFsY,710
|
68
|
+
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=ds40KOWf1RnkJ-_uQCp3QzdIYMMbDsvXhHMboZGlL_o,686
|
69
|
+
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=_q5F8w-oOC-oDIpPTd7ejMhfGtAffKMiXlE5H6B_3KQ,710
|
70
70
|
flwr/cli/run/__init__.py,sha256=cCsKVB0SFzh2b3QmGba6BHckB85xlhjh3mh4pBpACtY,790
|
71
71
|
flwr/cli/run/run.py,sha256=kEOYKin9qPJy8SODxcAvIWk-OskKPsxvcbvhDhf2VD4,8299
|
72
72
|
flwr/cli/stop.py,sha256=E4TGynmYQss5iWJ_fjSdYIW8nrNta2KOiK4sfvHKO_g,4976
|
@@ -74,9 +74,9 @@ flwr/cli/utils.py,sha256=D9XcpxzwkGPNdwX16o0kI-sYnRDMlWYyKNIpz6npRhQ,11236
|
|
74
74
|
flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
|
75
75
|
flwr/client/app.py,sha256=tNnef5wGVfqMiiGiWzAuULyy1QpvCKukiRmNi_a2cQc,34261
|
76
76
|
flwr/client/client.py,sha256=8o58nd9o6ZFcMIaVYPGcV4MSjBG4H0oFgWiv8ZEO3oA,7895
|
77
|
-
flwr/client/client_app.py,sha256=
|
77
|
+
flwr/client/client_app.py,sha256=mRj5AXokCV9WYivgkNEdBPUHXjNr_ZOQ50Dou0REhkw,14481
|
78
78
|
flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
|
79
|
-
flwr/client/clientapp/app.py,sha256=
|
79
|
+
flwr/client/clientapp/app.py,sha256=B3GrIMP8BMvltYf4n4xbtlRR1jEPT5-F93KnBCPuPJM,9069
|
80
80
|
flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
|
81
81
|
flwr/client/clientapp/utils.py,sha256=qqTw9PKPCldGnnbAbMhtS-Qs_GcqADE1eOtVPXeKYAo,4344
|
82
82
|
flwr/client/dpfedavg_numpy_client.py,sha256=4KsEvzavDKyVDU1V0kMqffTwu1lNdUCYQN-i0DTYVN8,7404
|
@@ -107,12 +107,12 @@ flwr/client/numpy_client.py,sha256=chTkL9dOtK_wgUoYtzp5mfDOC1k8xPAd1qPIsB3hcjA,9
|
|
107
107
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
108
108
|
flwr/client/rest_client/connection.py,sha256=c0mHsNXHAsbX4zNelbGd2qrV3vj90FfNE6FsiD6JzuY,12904
|
109
109
|
flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
|
110
|
-
flwr/client/supernode/__init__.py,sha256=
|
111
|
-
flwr/client/supernode/app.py,sha256=
|
110
|
+
flwr/client/supernode/__init__.py,sha256=D5swXxemuRbA2rB_T9B8LwJW-_PucXwmlFQQerwIUv0,793
|
111
|
+
flwr/client/supernode/app.py,sha256=W1VAgvjdSgrKKgjyM04Hx5XIUGxK2Oouuh0LjavZB9E,8975
|
112
112
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
113
113
|
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
114
114
|
flwr/common/address.py,sha256=rRaN1JpiCJnit7ImEqZVxURQ69dPihRoyyWn_3I2wh4,4119
|
115
|
-
flwr/common/args.py,sha256=
|
115
|
+
flwr/common/args.py,sha256=2gGT2a3SPJ0-LTNKnhBsZ-ESIoW9FGpw-9xkUSs8qwk,5417
|
116
116
|
flwr/common/auth_plugin/__init__.py,sha256=1Y8Oj3iB49IHDu9tvDih1J74Ygu7k85V9s2A4WORPyA,887
|
117
117
|
flwr/common/auth_plugin/auth_plugin.py,sha256=dQU5U4uJIA5XqgOJ3PankHWq-uXCaMvO74khaMPGdiU,3938
|
118
118
|
flwr/common/config.py,sha256=SAkG3BztnA6iupXxF3GAIpGmWVVCH0ptyMpC9yjr_14,13965
|
@@ -128,7 +128,7 @@ flwr/common/exit/__init__.py,sha256=-ZOJYLaNnR729a7VzZiFsLiqngzKQh3xc27svYStZ_Q,
|
|
128
128
|
flwr/common/exit/exit.py,sha256=DmZFyksp-w1sFDQekq5Z-qfnr-ivCAv78aQkqj-TDps,3458
|
129
129
|
flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E,3470
|
130
130
|
flwr/common/exit_handlers.py,sha256=yclujry30954o0lI7vtknTajskPCvK8TXw2V3RdldXU,3174
|
131
|
-
flwr/common/grpc.py,sha256=
|
131
|
+
flwr/common/grpc.py,sha256=7sHNP34LcNZv7J1GewJxXh509XTEbYvoHvXL5tQ3tcw,9798
|
132
132
|
flwr/common/logger.py,sha256=Hund1C6bEhMw3GemlzuFK22tXZ27YeHLrFB0b4LP5f8,13041
|
133
133
|
flwr/common/message.py,sha256=rWH_JIPnIo263-pC6Ps6XWmIgakRJA_AMBYwhE0qHcQ,14251
|
134
134
|
flwr/common/object_ref.py,sha256=DXL8NtbN17DSYaR-Zc8WYhaG8rv0_D_cclvP7Sa66So,9134
|
@@ -152,7 +152,7 @@ flwr/common/secure_aggregation/quantization.py,sha256=NE_ltC3Fx5Z3bMKqJHA95wQf2t
|
|
152
152
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
153
153
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=OgYd68YBRaHQYLc-YdExj9CSpwL58bVTaPrdHoAj2AE,3214
|
154
154
|
flwr/common/serde.py,sha256=dgPUMPoKh8r09NERMgfnZKmEiGuKVBje7bSVFwJVZyk,27340
|
155
|
-
flwr/common/telemetry.py,sha256=
|
155
|
+
flwr/common/telemetry.py,sha256=k4JVXNEZSyYF2BuKk10iH70D8RYmQEtFlVr42Ve6lls,8770
|
156
156
|
flwr/common/typing.py,sha256=Prl8_4tKnIl_Kh5UjJGbw1tnld543EkXrX0RWffJpiA,6900
|
157
157
|
flwr/common/version.py,sha256=aNSxLL49RKeLz8sPcZrsTEWtrAeQ0uxu6tjmfba4O60,1325
|
158
158
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
@@ -214,7 +214,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
|
|
214
214
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
215
215
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
216
216
|
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
217
|
-
flwr/server/app.py,sha256=
|
217
|
+
flwr/server/app.py,sha256=5GIzaP5gyQLy6Qi8_ePLaZmyhfa3ukSylWUZ5poMtNc,31086
|
218
218
|
flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
|
219
219
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
220
220
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
@@ -225,10 +225,10 @@ flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_Od
|
|
225
225
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
226
226
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
227
227
|
flwr/server/driver/driver.py,sha256=X072eFWl8Kx-aZbahTkpAc1wwoojr8A4uO2yozwwSbE,5705
|
228
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
228
|
+
flwr/server/driver/grpc_driver.py,sha256=u3kj9Ej5vErlRcdeF_8giqVXWLP0obT405Kjv6vC-Vw,10298
|
229
229
|
flwr/server/driver/inmemory_driver.py,sha256=p6p9RykDfoty94izzD4i11Xp7A8t1KUaHpbKbbVZAdU,6407
|
230
230
|
flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
|
231
|
-
flwr/server/run_serverapp.py,sha256=
|
231
|
+
flwr/server/run_serverapp.py,sha256=tyAYB5UEiUd63VG4XiYBUUiivh77SpIol1cGS4xtYdk,2077
|
232
232
|
flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
|
233
233
|
flwr/server/server_app.py,sha256=Kb0ayKy19awnkslwN9Jx3eBWZJvDeA8VfFBvImmMf_E,9035
|
234
234
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
@@ -262,7 +262,7 @@ flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbC
|
|
262
262
|
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
263
263
|
flwr/server/superlink/driver/__init__.py,sha256=5soEK5QSvxNjmJQ-CGTWROc4alSAeU0e9Ad9RDhsd3E,717
|
264
264
|
flwr/server/superlink/driver/serverappio_grpc.py,sha256=UzHwo6qYZMeOhr7nn1iZbcyDSmwvnq_kpYH0mEAndW0,2173
|
265
|
-
flwr/server/superlink/driver/serverappio_servicer.py,sha256=
|
265
|
+
flwr/server/superlink/driver/serverappio_servicer.py,sha256=Y-L0SiaP1p4yEi6r6MWOMiW10nsu_TlAcj_0miaEYSo,13121
|
266
266
|
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
267
267
|
flwr/server/superlink/ffs/disk_ffs.py,sha256=n_Ah0sQwXGVQ9wj5965nLjdkQQbpoHCljjXKFnwftsU,3297
|
268
268
|
flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
|
@@ -317,15 +317,15 @@ flwr/simulation/ray_transport/utils.py,sha256=wtbQhKQ4jGoiQDLJNQP17m1DSfL22ERhDB
|
|
317
317
|
flwr/simulation/run_simulation.py,sha256=KFpdL_RxE8NHZ68ZdghmFS6rccmWkO_iQ-kLLE1WUn8,20336
|
318
318
|
flwr/simulation/simulationio_connection.py,sha256=lcbEmdjb9RVEF2W5vSbf_J1zlTuv_ZAT_HLox1mqcfY,3494
|
319
319
|
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
320
|
-
flwr/superexec/app.py,sha256=
|
320
|
+
flwr/superexec/app.py,sha256=C0T2LMjuyF__I5V1FKfjtWtbsQPxK_EgL4vuhWIwG8s,1465
|
321
321
|
flwr/superexec/deployment.py,sha256=wZ9G42gGS91knfplswh95MnQ83Fzu-rs6wcuNgDmmvY,6735
|
322
322
|
flwr/superexec/exec_grpc.py,sha256=ttA9qoZzSLF0Mfk1L4hzOkMSNuj5rR58_kKBYwcyrAg,2864
|
323
323
|
flwr/superexec/exec_servicer.py,sha256=4UpzJqPUHkBG2PZNe2lrX7XFVDOL6yw_HcoBHxuXE9A,8349
|
324
324
|
flwr/superexec/exec_user_auth_interceptor.py,sha256=YtvcjrD2hMVmZ3y9wHuGI6FwmG_Y__q112t4fFnypy0,3793
|
325
325
|
flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
|
326
326
|
flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
|
327
|
-
flwr_nightly-1.
|
328
|
-
flwr_nightly-1.
|
329
|
-
flwr_nightly-1.
|
330
|
-
flwr_nightly-1.
|
331
|
-
flwr_nightly-1.
|
327
|
+
flwr_nightly-1.17.0.dev20250311.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
328
|
+
flwr_nightly-1.17.0.dev20250311.dist-info/METADATA,sha256=M4N9VKRlrUXFQAfvVh0EiUex2xAtt0reR7k8Um00mQA,15877
|
329
|
+
flwr_nightly-1.17.0.dev20250311.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
330
|
+
flwr_nightly-1.17.0.dev20250311.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
|
331
|
+
flwr_nightly-1.17.0.dev20250311.dist-info/RECORD,,
|
@@ -1,8 +1,5 @@
|
|
1
1
|
[console_scripts]
|
2
|
-
flower-client-app=flwr.client.supernode:run_client_app
|
3
|
-
flower-server-app=flwr.server.run_serverapp:run_server_app
|
4
2
|
flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
|
5
|
-
flower-superexec=flwr.superexec.app:run_superexec
|
6
3
|
flower-superlink=flwr.server.app:run_superlink
|
7
4
|
flower-supernode=flwr.client.supernode.app:run_supernode
|
8
5
|
flwr=flwr.cli.app:app
|
{flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/LICENSE
RENAMED
File without changes
|
{flwr_nightly-1.16.0.dev20250309.dist-info → flwr_nightly-1.17.0.dev20250311.dist-info}/WHEEL
RENAMED
File without changes
|