flwr-nightly 1.9.0.dev20240531__py3-none-any.whl → 1.10.0.dev20240619__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.

Files changed (80) hide show
  1. flwr/cli/app.py +2 -0
  2. flwr/cli/build.py +4 -15
  3. flwr/cli/config_utils.py +64 -7
  4. flwr/cli/install.py +211 -0
  5. flwr/cli/new/templates/app/pyproject.hf.toml.tpl +1 -1
  6. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  7. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  8. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  9. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
  10. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  11. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  12. flwr/cli/run/run.py +39 -2
  13. flwr/cli/utils.py +14 -0
  14. flwr/client/__init__.py +1 -0
  15. flwr/client/app.py +153 -103
  16. flwr/client/client_app.py +1 -1
  17. flwr/client/grpc_adapter_client/__init__.py +15 -0
  18. flwr/client/grpc_adapter_client/connection.py +94 -0
  19. flwr/client/grpc_client/connection.py +5 -1
  20. flwr/client/grpc_rere_client/client_interceptor.py +1 -1
  21. flwr/client/grpc_rere_client/connection.py +9 -5
  22. flwr/client/grpc_rere_client/grpc_adapter.py +133 -0
  23. flwr/client/mod/__init__.py +4 -4
  24. flwr/client/rest_client/connection.py +10 -3
  25. flwr/client/supernode/app.py +155 -31
  26. flwr/common/__init__.py +12 -12
  27. flwr/common/config.py +71 -0
  28. flwr/common/constant.py +15 -0
  29. flwr/common/object_ref.py +52 -14
  30. flwr/common/record/__init__.py +1 -1
  31. flwr/common/telemetry.py +4 -0
  32. flwr/common/typing.py +9 -0
  33. flwr/proto/driver_pb2.py +20 -19
  34. flwr/proto/driver_pb2_grpc.py +35 -0
  35. flwr/proto/driver_pb2_grpc.pyi +14 -0
  36. flwr/proto/exec_pb2.py +34 -0
  37. flwr/proto/exec_pb2.pyi +55 -0
  38. flwr/proto/exec_pb2_grpc.py +101 -0
  39. flwr/proto/exec_pb2_grpc.pyi +41 -0
  40. flwr/proto/fab_pb2.py +30 -0
  41. flwr/proto/fab_pb2.pyi +56 -0
  42. flwr/proto/fab_pb2_grpc.py +4 -0
  43. flwr/proto/fab_pb2_grpc.pyi +4 -0
  44. flwr/proto/fleet_pb2.py +28 -33
  45. flwr/proto/fleet_pb2.pyi +0 -42
  46. flwr/proto/fleet_pb2_grpc.py +7 -6
  47. flwr/proto/fleet_pb2_grpc.pyi +5 -4
  48. flwr/proto/run_pb2.py +30 -0
  49. flwr/proto/run_pb2.pyi +52 -0
  50. flwr/proto/run_pb2_grpc.py +4 -0
  51. flwr/proto/run_pb2_grpc.pyi +4 -0
  52. flwr/server/__init__.py +2 -6
  53. flwr/server/app.py +94 -214
  54. flwr/server/run_serverapp.py +33 -7
  55. flwr/server/server_app.py +2 -2
  56. flwr/server/strategy/__init__.py +2 -2
  57. flwr/server/superlink/driver/driver_servicer.py +7 -0
  58. flwr/server/superlink/fleet/grpc_adapter/__init__.py +15 -0
  59. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +131 -0
  60. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +4 -0
  61. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +1 -2
  62. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +1 -2
  63. flwr/server/superlink/fleet/message_handler/message_handler.py +8 -6
  64. flwr/server/superlink/fleet/rest_rere/rest_api.py +1 -1
  65. flwr/server/superlink/fleet/vce/vce_api.py +3 -1
  66. flwr/server/superlink/state/in_memory_state.py +8 -5
  67. flwr/server/superlink/state/sqlite_state.py +6 -3
  68. flwr/server/superlink/state/state.py +5 -4
  69. flwr/simulation/__init__.py +4 -1
  70. flwr/simulation/run_simulation.py +22 -0
  71. flwr/superexec/__init__.py +21 -0
  72. flwr/superexec/app.py +178 -0
  73. flwr/superexec/exec_grpc.py +51 -0
  74. flwr/superexec/exec_servicer.py +65 -0
  75. flwr/superexec/executor.py +54 -0
  76. {flwr_nightly-1.9.0.dev20240531.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/METADATA +1 -1
  77. {flwr_nightly-1.9.0.dev20240531.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/RECORD +80 -56
  78. {flwr_nightly-1.9.0.dev20240531.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/entry_points.txt +1 -2
  79. {flwr_nightly-1.9.0.dev20240531.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/LICENSE +0 -0
  80. {flwr_nightly-1.9.0.dev20240531.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/WHEEL +0 -0
@@ -0,0 +1,51 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """SuperExec gRPC API."""
16
+
17
+ from logging import INFO
18
+ from typing import Optional, Tuple
19
+
20
+ import grpc
21
+
22
+ from flwr.common import GRPC_MAX_MESSAGE_LENGTH
23
+ from flwr.common.logger import log
24
+ from flwr.proto.exec_pb2_grpc import add_ExecServicer_to_server
25
+ from flwr.server.superlink.fleet.grpc_bidi.grpc_server import generic_create_grpc_server
26
+
27
+ from .exec_servicer import ExecServicer
28
+ from .executor import Executor
29
+
30
+
31
+ def run_superexec_api_grpc(
32
+ address: str,
33
+ executor: Executor,
34
+ certificates: Optional[Tuple[bytes, bytes, bytes]],
35
+ ) -> grpc.Server:
36
+ """Run SuperExec API (gRPC, request-response)."""
37
+ exec_servicer: grpc.Server = ExecServicer(
38
+ executor=executor,
39
+ )
40
+ superexec_add_servicer_to_server_fn = add_ExecServicer_to_server
41
+ superexec_grpc_server = generic_create_grpc_server(
42
+ servicer_and_add_fn=(exec_servicer, superexec_add_servicer_to_server_fn),
43
+ server_address=address,
44
+ max_message_length=GRPC_MAX_MESSAGE_LENGTH,
45
+ certificates=certificates,
46
+ )
47
+
48
+ log(INFO, "Flower ECE: Starting SuperExec API (gRPC-rere) on %s", address)
49
+ superexec_grpc_server.start()
50
+
51
+ return superexec_grpc_server
@@ -0,0 +1,65 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """SuperExec API servicer."""
16
+
17
+
18
+ from logging import ERROR, INFO
19
+ from typing import Any, Dict, Generator
20
+
21
+ import grpc
22
+
23
+ from flwr.common.logger import log
24
+ from flwr.proto import exec_pb2_grpc # pylint: disable=E0611
25
+ from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
26
+ StartRunRequest,
27
+ StartRunResponse,
28
+ StreamLogsRequest,
29
+ StreamLogsResponse,
30
+ )
31
+
32
+ from .executor import Executor, RunTracker
33
+
34
+
35
+ class ExecServicer(exec_pb2_grpc.ExecServicer):
36
+ """SuperExec API servicer."""
37
+
38
+ def __init__(self, executor: Executor) -> None:
39
+ self.executor = executor
40
+ self.runs: Dict[int, RunTracker] = {}
41
+
42
+ def StartRun(
43
+ self, request: StartRunRequest, context: grpc.ServicerContext
44
+ ) -> StartRunResponse:
45
+ """Create run ID."""
46
+ log(INFO, "ExecServicer.StartRun")
47
+
48
+ run = self.executor.start_run(request.fab_file)
49
+
50
+ if run is None:
51
+ log(ERROR, "Executor failed to start run")
52
+ return StartRunResponse()
53
+
54
+ self.runs[run.run_id] = run
55
+
56
+ return StartRunResponse(run_id=run.run_id)
57
+
58
+ def StreamLogs(
59
+ self, request: StreamLogsRequest, context: grpc.ServicerContext
60
+ ) -> Generator[StreamLogsResponse, Any, None]:
61
+ """Get logs."""
62
+ logs = ["a", "b", "c"]
63
+ while context.is_active():
64
+ for i in range(len(logs)): # pylint: disable=C0200
65
+ yield StreamLogsResponse(log_output=logs[i])
@@ -0,0 +1,54 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """Execute and monitor a Flower run."""
16
+
17
+ from abc import ABC, abstractmethod
18
+ from dataclasses import dataclass
19
+ from subprocess import Popen
20
+ from typing import Optional
21
+
22
+
23
+ @dataclass
24
+ class RunTracker:
25
+ """Track a Flower run (composed of a run_id and the associated process)."""
26
+
27
+ run_id: int
28
+ proc: Popen # type: ignore
29
+
30
+
31
+ class Executor(ABC):
32
+ """Execute and monitor a Flower run."""
33
+
34
+ @abstractmethod
35
+ def start_run(
36
+ self,
37
+ fab_file: bytes,
38
+ ) -> Optional[RunTracker]:
39
+ """Start a run using the given Flower FAB ID and version.
40
+
41
+ This method creates a new run on the SuperLink, returns its run_id
42
+ and also starts the run execution.
43
+
44
+ Parameters
45
+ ----------
46
+ fab_file : bytes
47
+ The Flower App Bundle file bytes.
48
+
49
+ Returns
50
+ -------
51
+ run_id : Optional[RunTracker]
52
+ The run_id and the associated process of the run created by the SuperLink,
53
+ or `None` if it fails.
54
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.9.0.dev20240531
3
+ Version: 1.10.0.dev20240619
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -1,9 +1,10 @@
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=IFu7V_xdexF1T9sUsvgYWVFW5wEPHHcBWHJRPdlX38U,1141
4
- flwr/cli/build.py,sha256=PDuqoyIWo5QdMCRSBg6nFFAF4N1Hf4bFxcR8CK6UhME,5064
5
- flwr/cli/config_utils.py,sha256=kFGSOqYnYbBZPqkfP-OyUtItzvvOiLSSVAIBzQl1i54,4277
3
+ flwr/cli/app.py,sha256=FvzW2iw3iagrTmgsk4zBLjLvGANRsBvIw11dWWs5-6g,1193
4
+ flwr/cli/build.py,sha256=oiFnigccMkI9jjracsslvDJe-w1tomTr579SQd66_-Y,4741
5
+ flwr/cli/config_utils.py,sha256=ugUlqH52yxTPMtKw6q4xv5k2OVWUy89cwyJ5LB2RLgk,6037
6
6
  flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
7
+ flwr/cli/install.py,sha256=Wz7Hqg2PE9N-w5CnqlH9Zr8mzADN2J7NLcUhgldZLWU,6579
7
8
  flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
8
9
  flwr/cli/new/new.py,sha256=7BWziuEOE15MXX4xNLH-w0-x0ytOEfYn_AUrbaDp13Y,6223
9
10
  flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
@@ -31,31 +32,34 @@ flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=u4o3V019EH79szOw2xzVeC5r9
31
32
  flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=y7aVj3F_98-wBnDcbPsCNnFs9BOHTn0y6XIYkByzv7Y,2598
32
33
  flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=NvajdZN-eTyfdqKK0v2MrvWITXw9BjJ3Ri5c1haPJDs,3684
33
34
  flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=cPOUUS07QbblT9PGFucwu9lY1clRA4-W4DQGA7cpcao,1044
34
- flwr/cli/new/templates/app/pyproject.hf.toml.tpl,sha256=zQz3sUmd-Tpa8QF0UwrAKT13CTxfH-qJ1DtkZN6oKuA,759
35
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=o34H5MvQeu4H2nRolbIas9G63mR7nDDL4rqQMlJW6LA,568
36
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=oUtYknyM00vGZSBoxmdJqCeOZahg9mtAQfupgaQPhlI,668
37
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=1cBwKx5eYW6vEcU5gyuVbt2FEFT5fbQ7Lr6t5LGNUuc,606
38
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=yBlpz7WF8m8bLBYsPdD5J93cn6xv8vLHbLNxP1a1Iwg,675
39
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=T0MxHVnW1fnMDdz1EqN1JK6jIc3J0ZmznBQwK1eGvkg,655
40
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=yp4w6LZn2v67AvYRRO9mSm7yfKi14zFYQBl5SbIjEe0,654
35
+ flwr/cli/new/templates/app/pyproject.hf.toml.tpl,sha256=O3-dgH8_knk9uM49IzX06CYC2Ev5xdPuITB40Phvewc,759
36
+ flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=QIhp6_eYYFk9aJd_n-tc_Ar76Se1OP6zSibTbGeHV7w,568
37
+ flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=OJ15G7CmjevBsUCVJ3ixv01VFwL4nkPcKkVGKeVW8ew,668
38
+ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=VYHSqaZzUS8H4jy1Cr1Plyd2kuoNNWoGD3a8UzbOANI,606
39
+ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=wxN6I8uvWZ4MErvTbQJTJOTbY4H_fsYCBXmZURJWLGQ,675
40
+ flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=wFeJuhqnBPQtKCBvnE3ySBpxmbeNdxcsq2Eb_RmSDIg,655
41
+ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=zkxLTQRvujF76sIlzNNGPVU7Y9nVCwNBxAx82AOBaJY,654
41
42
  flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
42
- flwr/cli/run/run.py,sha256=Oadt7JsJX549JG-2P1UPdF11vnblLWS8uGvuVx0modA,2687
43
- flwr/cli/utils.py,sha256=px-M-IlBLu6Ez-Sc9tWhsJRjWurRaZTmxB9ASz8wurk,4119
44
- flwr/client/__init__.py,sha256=CivBxRFjK6gXHN5kUUf9UaZQHa_NHlEM867WWB-H0D8,1268
45
- flwr/client/app.py,sha256=rzfaHiXxrtjwyhHrHb3epRD6NNw07YzL5DoZO6eW7RA,22313
43
+ flwr/cli/run/run.py,sha256=boAv5Ib9PdscieetxCR2MJ3MPjt5YRMjUZ8cR75P424,3842
44
+ flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
45
+ flwr/client/__init__.py,sha256=FWiXcxwJf1nfTFxEiO9rHtwxzA4x809Iu22sDV2qSAA,1279
46
+ flwr/client/app.py,sha256=n4TSijcc2bAyRWu5-TNiTZtI6mMBa18f3BRbNnkYgUM,24386
46
47
  flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
47
- flwr/client/client_app.py,sha256=-Cs0084tLQUoBCeYZdG2KgU7cjp95_ZJ4MfjoaN4Fzk,8636
48
+ flwr/client/client_app.py,sha256=2jyVTzu8pwDtg66z4FjAa_kPzg31Q8-hx-RkDhguIqw,8635
48
49
  flwr/client/dpfedavg_numpy_client.py,sha256=9Tnig4iml2J88HBKNahegjXjbfvIQyBtaIQaqjbeqsA,7435
50
+ flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
51
+ flwr/client/grpc_adapter_client/connection.py,sha256=kUObTsJ_4OwxE4tvIlWwn_iSWk2snjLWMo19tqdXo1s,3841
49
52
  flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
50
- flwr/client/grpc_client/connection.py,sha256=KWbBwuvn1-2wjrAKteydGCZC_7A2zmEjk3DycQWafrA,8993
53
+ flwr/client/grpc_client/connection.py,sha256=NGPFSq98wBXpVXZlei6jlg679nL07GDwyQ4z37AzoGc,9279
51
54
  flwr/client/grpc_rere_client/__init__.py,sha256=avn6W_vHEM_yZEB1S7hCZgnTbXb6ZujqRP_vAzyXu-0,752
52
- flwr/client/grpc_rere_client/client_interceptor.py,sha256=rDBXRVo-d-rflxJ6Kw3eDfBmvChdUHkzRw5eP-bpe6Y,4903
53
- flwr/client/grpc_rere_client/connection.py,sha256=e-e6CQmubzmB4n36MtS_u7_T1daNKl5ZltfLATllM-U,9716
55
+ flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
56
+ flwr/client/grpc_rere_client/connection.py,sha256=nEbmqvbPsSyESrwVBRipDFqsOmg4wQM6D0mf9-flMyo,10157
57
+ flwr/client/grpc_rere_client/grpc_adapter.py,sha256=woljH8yr1pyLH4W4Azogyy7Nafn6y9DHBnDCIIVKwCw,4711
54
58
  flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
55
59
  flwr/client/message_handler/__init__.py,sha256=abHvBRJJiiaAMNgeILQbMOa6h8WqMK2BcnvxwQZFpic,719
56
60
  flwr/client/message_handler/message_handler.py,sha256=ml_FlduAJ5pxO31n1tKRrWfQRSxkMgKLbwXXcRsNSos,6553
57
61
  flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
58
- flwr/client/mod/__init__.py,sha256=apqhs7bslrGgQK91JR56mEcwj5JihL0NF_XKQwqaQuo,1143
62
+ flwr/client/mod/__init__.py,sha256=1tAVUU6_XQjOlORVgo4gROPqdjJemPo5mbxrKJyN4Hs,1159
59
63
  flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
60
64
  flwr/client/mod/comms_mods.py,sha256=QzJF7lgbYGnZvY805rkBfDsYCRC0HBHeDkJQ_JXhUZY,2624
61
65
  flwr/client/mod/localdp_mod.py,sha256=SBDhW71vY6lEU_lQNOySLUWypkNwUwuHAtbBErOarpM,4982
@@ -67,13 +71,14 @@ flwr/client/node_state.py,sha256=KTTs_l4I0jBM7IsSsbAGjhfL_yZC3QANbzyvyfZBRDM,177
67
71
  flwr/client/node_state_tests.py,sha256=gPwz0zf2iuDSa11jedkur_u3Xm7lokIDG5ALD2MCvSw,2195
68
72
  flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
69
73
  flwr/client/rest_client/__init__.py,sha256=ThwOnkMdzxo_UuyTI47Q7y9oSpuTgNT2OuFvJCfuDiw,735
70
- flwr/client/rest_client/connection.py,sha256=MspqM5RjrQe09_2BUEEVGstA5x9Qz_RWdXXraOic3i8,11520
74
+ flwr/client/rest_client/connection.py,sha256=GmnHoeWuSMv0OWV5GUZweIft8BTextGEY9oxyc7pyYk,11957
71
75
  flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
72
- flwr/client/supernode/app.py,sha256=7OGgDnDN67Y_EKrIBUWRCMVjwVr4nl_sdUPUaQd_tOM,9915
76
+ flwr/client/supernode/app.py,sha256=9jQMyL8116fIcrsoKxPKN5W8lQ7QdSSpF0cR3PUEQ5Y,14486
73
77
  flwr/client/typing.py,sha256=c9EvjlEjasxn1Wqx6bGl6Xg6vM1gMFfmXht-E2i5J-k,1006
74
- flwr/common/__init__.py,sha256=dHOptgKxna78CEQLD5Yu0QIsoSgpIIw5AhIUZCHDWAU,3721
78
+ flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
75
79
  flwr/common/address.py,sha256=iTAN9jtmIGMrWFnx9XZQl45ZEtQJVZZLYPRBSNVARGI,1882
76
- flwr/common/constant.py,sha256=GsixlCwohCBlQ6_mTk29HChuyRftgTELTCN06AxrOyc,2424
80
+ flwr/common/config.py,sha256=iXcpC7Eg1YK6C5apOIoWCI-mV92djyvVfcrMraOfDLM,2461
81
+ flwr/common/constant.py,sha256=AqwiQ7vNDoltLeZjGt5Qq1SqkuCkXrxU4wXG6b02m5A,2841
77
82
  flwr/common/context.py,sha256=ounF-mWPPtXGwtae3sg5EhF58ScviOa3MVqxRpGVu-8,1313
78
83
  flwr/common/date.py,sha256=UWhBZj49yX9LD4BmatS_ZFZu_-kweGh0KQJ1djyWWH4,891
79
84
  flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
@@ -83,10 +88,10 @@ flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,
83
88
  flwr/common/grpc.py,sha256=Yx_YFK24cU4U81RpXrdVwEVY_jTy4RE19cHtBxE2XOE,2460
84
89
  flwr/common/logger.py,sha256=bFu4eOychVwwYwaaCtxQ85dmx8gUtvwp6fRk-GefXHk,7107
85
90
  flwr/common/message.py,sha256=M7rwhmO9HgdGlHnNysLJMm_UJFBjqvQbXM0G-bLsi7o,13896
86
- flwr/common/object_ref.py,sha256=ELoUCAFO-vbjJC41CGpa-WBG2SLYe3ErW-d9YCG3zqA,4961
91
+ flwr/common/object_ref.py,sha256=PQR0tztVOkD1nn_uGuNz4bHm7z4fwsosTsUKvWIGF5Y,6506
87
92
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
88
93
  flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
89
- flwr/common/record/__init__.py,sha256=33OaDW2bvaW952DFHH1amHclv4AuDZu385jXjHhXoog,1054
94
+ flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
90
95
  flwr/common/record/configsrecord.py,sha256=VKeFEYa6cneyStqQlUOaKj12by5ZI_NXYR25LOEVeo8,4652
91
96
  flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
92
97
  flwr/common/record/metricsrecord.py,sha256=Yv99oRa3LzFgSfwl903S8sB8rAgr3Sv6i6ovW7pdHsA,3923
@@ -104,22 +109,30 @@ flwr/common/secure_aggregation/quantization.py,sha256=appui7GGrkRPsupF59TkapeV4N
104
109
  flwr/common/secure_aggregation/secaggplus_constants.py,sha256=Fh7-n6pgL4TUnHpNYXo8iW-n5cOGQgQa-c7RcU80tqQ,2183
105
110
  flwr/common/secure_aggregation/secaggplus_utils.py,sha256=87bNZX6CmQekj935R4u3m5hsaEkkfKtGSA-VG2c-O9w,3221
106
111
  flwr/common/serde.py,sha256=Yn83kbSf9vJndTa5ldL4DR_bL_wy_bD4lTlD3ZbB658,22250
107
- flwr/common/telemetry.py,sha256=Q84hW6l6MCtD8sgQI4sUcp-N-zqAo607jyApeXC5RpM,7865
108
- flwr/common/typing.py,sha256=3Wu6Ol1Ja6Gb0WdlcXVEn1EHYJbc4oRRJA81vEegxBo,4382
112
+ flwr/common/telemetry.py,sha256=IGzOp87BYReCj5bEoZS6zDSKH0aXsmhMvhHx8fdC1v0,7948
113
+ flwr/common/typing.py,sha256=q1RtnEtI2jX9VGT12_ECM3euMIcjmwh1Pd1tVrYf6i8,4483
109
114
  flwr/common/version.py,sha256=_RDSMGZPEuGKYViZuXPotDtXMvh4iyDH9XOCO4qtPO8,666
110
115
  flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
111
- flwr/proto/driver_pb2.py,sha256=N5tU8YFOrWBPpNVWRfU6IpnpgNIQjVUQpO8rhFfryYE,3207
116
+ flwr/proto/driver_pb2.py,sha256=xqEN0UxFAUl1h_S_tP8SQShNYSJt_oSdb1npMn5KfL0,3394
112
117
  flwr/proto/driver_pb2.pyi,sha256=uTcjWrMsNojfSYrXaXyYmXaB4E8PL5drYs2MuMgN5R8,5016
113
- flwr/proto/driver_pb2_grpc.py,sha256=qQBRdQUz4k2K4DVO7kSfWHx-62UJ85HaYKnKCr6JcU8,7304
114
- flwr/proto/driver_pb2_grpc.pyi,sha256=NpOM5eCrIPcuWdYrZAayQSDvvFp6cDCVflabhmuvMfo,2022
118
+ flwr/proto/driver_pb2_grpc.py,sha256=lEaiX6MAHC-GzGSh0S6949jrYyBEB0ox6hWQgw1iOdQ,8887
119
+ flwr/proto/driver_pb2_grpc.pyi,sha256=__NCO_mAPMZt3_X_6CUIwWzOm7TmRfghoSs6syEsyAo,2425
115
120
  flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
116
121
  flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
117
122
  flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
118
123
  flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
119
- flwr/proto/fleet_pb2.py,sha256=mKxwomayARq2nQanY3CtnA8ZWqW8NChWsoWeAyGJAOE,5018
120
- flwr/proto/fleet_pb2.pyi,sha256=yibeuFHsm0ygnJmuyI2V9XNvEt9CLT3dTNUOvAItezU,9161
121
- flwr/proto/fleet_pb2_grpc.py,sha256=TNt0ydDAXoe1YF2Pl6aNxlGueeOjn0dQ7fdgGx9wd7U,10605
122
- flwr/proto/fleet_pb2_grpc.pyi,sha256=6flR6x4gB0CZc4YK_MTGeA4zV8Tk_mCcXuxosfDsxGM,2811
124
+ flwr/proto/exec_pb2.py,sha256=eA1VsoMtSAtBI8uWhEiM_xO_5bY9H-TZkrwFbDgzM-8,1909
125
+ flwr/proto/exec_pb2.pyi,sha256=eQ262F1-bvE60BthMh4rQOWKCRw_E4J4FEnHXtabIlc,1929
126
+ flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
127
+ flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
128
+ flwr/proto/fab_pb2.py,sha256=k1L3z4L3pJGRIUmgt609xUe-UAtSKFwT0C7wXnb12IY,1427
129
+ flwr/proto/fab_pb2.pyi,sha256=G2eHjgIAeVAf4TchXg3XPdeUk-h5-OMJnAv7CLyxdGs,1930
130
+ flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
131
+ flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
132
+ flwr/proto/fleet_pb2.py,sha256=sASthuSb5R0v1NH2g6vRDC4BeJUFPAso8bjcihAflo0,4543
133
+ flwr/proto/fleet_pb2.pyi,sha256=45kQ9YINv3VG0nxWSjCN4SppdepjKW8rRBlxKxz7ud4,7571
134
+ flwr/proto/fleet_pb2_grpc.py,sha256=4eP1jkEVuckzSxo16yNaOBrHPzxHqQfj2MaNtPql4Wk,10655
135
+ flwr/proto/fleet_pb2_grpc.pyi,sha256=0OFEMk6rCOrPLcYb74hB0c5fh2dcPzc2opm3NTLCbDE,2829
123
136
  flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM,1843
124
137
  flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
125
138
  flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
@@ -132,6 +145,10 @@ flwr/proto/recordset_pb2.py,sha256=un8L0kvBcgFXQIiQweOseeIJBjlOozUvQY9uTQ42Dqo,6
132
145
  flwr/proto/recordset_pb2.pyi,sha256=NPzCJWAj1xLWzeZ_xZ6uaObQjQfWGnnqlLtn4J-SoFY,14161
133
146
  flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
134
147
  flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
148
+ flwr/proto/run_pb2.py,sha256=4URYh86fdnvlZKslj4vyqssLD9Ngq81LPauMmISn5wg,1470
149
+ flwr/proto/run_pb2.pyi,sha256=gskE1cHfre7n8FEMwSzG7BlFkcDH5JjSx2CrBT5__Dk,1815
150
+ flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
151
+ flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
135
152
  flwr/proto/task_pb2.py,sha256=6-HLTXleiG65fhlLZdvwEW30Bcgm46KO7E1NfLrl4NI,2472
136
153
  flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
137
154
  flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
@@ -141,8 +158,8 @@ flwr/proto/transport_pb2.pyi,sha256=CZvJRWTU3QWFWLXNFtyLSrSKFatIyMcy-ohzLbQ-G9c,
141
158
  flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
142
159
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
143
160
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- flwr/server/__init__.py,sha256=PWyHKu-_KFxGI7oFWSWwqMfTiG_phWECT80iv0saouA,1716
145
- flwr/server/app.py,sha256=aCKA2uYWzkDXrVyeCFvCG_0wGS28NeFXNf1TzOhoJ98,28034
161
+ flwr/server/__init__.py,sha256=PAoUaE5kQ9toC6gS7L68d74AgbRrHHoHt8wNr81CcEw,1575
162
+ flwr/server/app.py,sha256=WABxljYzn9mEaHvnXXBceVkBx2V6lmlFGpl5f0Uue08,23736
146
163
  flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
147
164
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
148
165
  flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
@@ -156,11 +173,11 @@ flwr/server/driver/driver.py,sha256=t9SSSDlo9wT_y2Nl7waGYMTm2VlkvK3_bOb7ggPPlho,
156
173
  flwr/server/driver/grpc_driver.py,sha256=rdjkcAmtRWKeqJw4xDFqULuwVf0G2nLhfbOTrNUvPeY,11832
157
174
  flwr/server/driver/inmemory_driver.py,sha256=XfdLV3mVorTWBfthBkErJDLm8jXZ834IHF3139lTS5o,6490
158
175
  flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
159
- flwr/server/run_serverapp.py,sha256=avLi_yRNE5jD2ql95gzh04BTUbHvzH-N848_mdnnkVk,5972
176
+ flwr/server/run_serverapp.py,sha256=AorePFZCuGm_TwkGFVSwoaLwJjJZ-FwtQP8H4c0O97I,6955
160
177
  flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
161
- flwr/server/server_app.py,sha256=KgAT_HqsfseTLNnfX2ph42PBbVqQ0lFzvYrT90V34y0,4402
178
+ flwr/server/server_app.py,sha256=Re5Y9ftXlBRJXYHY_8TrNWsjyOUCPC5F_93H0xiZDhI,4400
162
179
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
163
- flwr/server/strategy/__init__.py,sha256=7eVZ3hQEg2BgA_usAeL6tsLp9T6XI1VYYoFy08Xn-ew,2836
180
+ flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
164
181
  flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
165
182
  flwr/server/strategy/bulyan.py,sha256=8GsSVJzRSoSWE2zQUKqC3Z795grdN9xpmc3MSGGXnzM,6532
166
183
  flwr/server/strategy/dp_adaptive_clipping.py,sha256=Et8HuHoZ7g1J1yEsSGc8HTjjbppY_0u70nKcm-GMtbQ,17406
@@ -187,29 +204,31 @@ flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5u
187
204
  flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
188
205
  flwr/server/superlink/driver/__init__.py,sha256=STB1_DASVEg7Cu6L7VYxTzV7UMkgtBkFim09Z82Dh8I,712
189
206
  flwr/server/superlink/driver/driver_grpc.py,sha256=1qSGDs1k_OVPWxp2ofxvQgtYXExrMeC3N_rNPVWH65M,1932
190
- flwr/server/superlink/driver/driver_servicer.py,sha256=rWtdVLSluAJhURoLNYjsuUNJR67F5jcqTIpHwYeHIMA,4791
207
+ flwr/server/superlink/driver/driver_servicer.py,sha256=jzYbnuSCbRIFY3AM1NXii6zpKhrtJisWyFwo-sxmqrA,5056
191
208
  flwr/server/superlink/fleet/__init__.py,sha256=C6GCSD5eP5Of6_dIeSe1jx9HnV0icsvWyQ5EKAUHJRU,711
209
+ flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
210
+ flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
192
211
  flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=mgGJGjwT6VU7ovC1gdnnqttjyBPlNIcZnYRqx4K3IBQ,735
193
212
  flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=57b3UL5-baGdLwgCtB0dCUTTSbmmfMAXcXV5bjPZNWQ,5993
194
213
  flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=LSOmabFXAQxKycQOliplKmigbmVwdm-D4CI-hJ0Pav0,6458
195
214
  flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=kuD7R1yB1Ite0sNfvjsrnZu83LWGk8fP-yihE1mjQm0,4887
196
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=_zWknjP7CRjwLDvofzmv1QoSI8Qq1cZC5nNw9nkSS7I,11932
215
+ flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OKvbu-nQRL-n8eZBfmjZa0aysPdAcZWO4zzFXrpgXjI,12095
197
216
  flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=bEJOMWbSlqkw-y5ZHtEXczhoSlAxErcRYffmTMQAV8M,758
198
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=YGn1IPpuX-6NDgaG1UbyREbI9iAyKDimZuNeWxbG6s0,3387
199
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=WvqY_NlUit5cUkv52Ipr_R5p0_KlbqyTtnBHugpb_sM,7691
217
+ flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=wuFaEAsuKfAYQKeXbB9Jg0SQaW9gmb_1k6pOPIlXrYY,3434
218
+ flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
200
219
  flwr/server/superlink/fleet/message_handler/__init__.py,sha256=hEY0l61ojH8Iz30_K1btm1HJ6J49iZJSFUsVYqUTw3A,731
201
- flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=lG3BkiONcikDVowK0An06V7p2SNkwGbWE5hfN2xlsZw,3622
220
+ flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=qDlWhCsbXssHTvoMZPjYTGgmOVflszkFmL1oJzVQrDA,3653
202
221
  flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=VKDvDq5H8koOUztpmQacVzGJXPLEEkL1Vmolxt3mvnY,735
203
- flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=8gNziOjBA8ygTzfVPYiNkg_qxr-T822Q_Lbo9g2tVyk,7621
222
+ flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=Sm_pSxpeT1BdkSKou8YwreP7qSpMR5ENEsjwGW1h5VY,7672
204
223
  flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
205
224
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=oBIzmnrSSRvH_H0vRGEGWhWzQQwqe3zn6e13RsNwlIY,1466
206
225
  flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LJsKl7oixVvptcG98Rd9ejJycNWcEVB0ODvSreLGp-A,2260
207
226
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=KCzV-n-czXxIKPwNfuD-JEVCl4-xAJaHe4taGmw9cTQ,6722
208
- flwr/server/superlink/fleet/vce/vce_api.py,sha256=aH-1h1EhTPCxdiqgH0_t8oDPiXX8VNNLV_BiDvu6kRk,12456
227
+ flwr/server/superlink/fleet/vce/vce_api.py,sha256=o8DqsL4vrq0AiN4qfQkvRH7gFcztkdy1Wr1IkwWaCmY,12534
209
228
  flwr/server/superlink/state/__init__.py,sha256=ij-7Ms-hyordQdRmGQxY1-nVa4OhixJ0jr7_YDkys0s,1003
210
- flwr/server/superlink/state/in_memory_state.py,sha256=WoIOwgayuCu1DLRkkV6KgBsc28SKzSDxtXwO2a9Phuw,12750
211
- flwr/server/superlink/state/sqlite_state.py,sha256=8xvJgufEbl_ZRAz9VWXykKP3viUZjQNVS7yDY5dildw,28528
212
- flwr/server/superlink/state/state.py,sha256=LD3kqwuJdoNHu5O3c9B5V18sFCDX4Y3fHSO7ytlizUg,7989
229
+ flwr/server/superlink/state/in_memory_state.py,sha256=pb_asr8sh9IHPA97yYDTq1RZi8qYpACTzwSg56LMnsM,12827
230
+ flwr/server/superlink/state/sqlite_state.py,sha256=1PBYQGEIaj_67ojFw51mujfaxOFSeA8kPn_irwAX7eE,28612
231
+ flwr/server/superlink/state/state.py,sha256=_2EwLpOxSMEs0IsemuZNTBidTK3hoUt9vYcf7TRyg40,8037
213
232
  flwr/server/superlink/state/state_factory.py,sha256=91cSB-KOAFM37z7T098WxTkVeKNaAZ_mTI75snn2_tk,1654
214
233
  flwr/server/superlink/state/utils.py,sha256=qhIjBu5_rqm9GLMB6QS5TIRrMDVs85lmY17BqZ1ccLk,2207
215
234
  flwr/server/typing.py,sha256=2zSG-KuDAgwFPuzgVjTLDaEqJ8gXXGqFR2RD-qIk730,913
@@ -222,15 +241,20 @@ flwr/server/workflow/default_workflows.py,sha256=_GqFCaxtiq3_UVCvZWgJ200QroGSI9q
222
241
  flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
223
242
  flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
224
243
  flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=BRqhlnVe8CYNoUvb_KCfRXay02NTT6a-pCrMaOqAxGc,29038
225
- flwr/simulation/__init__.py,sha256=1SVOWQGPA6dWlUMR_ZeiPBYXURNb1rx9VOi6kSW6zrs,1348
244
+ flwr/simulation/__init__.py,sha256=AvKl_As1sIfyO10pXVxymv8Kim_dx_Grqjzxj7CEpC4,1359
226
245
  flwr/simulation/app.py,sha256=Fjq3krpzx9GUW1oYLHPn_Wq2tzjyqVBa9bxRbtuNVBQ,14380
227
246
  flwr/simulation/ray_transport/__init__.py,sha256=FsaAnzC4cw4DqoouBCix6496k29jACkfeIam55BvW9g,734
228
247
  flwr/simulation/ray_transport/ray_actor.py,sha256=_wv2eP7qxkCZ-6rMyYWnjLrGPBZRxjvTPjaVk8zIaQ4,19367
229
248
  flwr/simulation/ray_transport/ray_client_proxy.py,sha256=oDu4sEPIOu39vrNi-fqDAe10xtNUXMO49bM2RWfRcyw,6738
230
249
  flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
231
- flwr/simulation/run_simulation.py,sha256=Jmc6DyN5UCY1U1PcDvL04NgYmEQ6ufJ1JisjG5yqfY8,15098
232
- flwr_nightly-1.9.0.dev20240531.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
233
- flwr_nightly-1.9.0.dev20240531.dist-info/METADATA,sha256=jU0PDHU16QVEImyVQDTFfKY-zdVYDL7i83YKe0cMeHQ,15517
234
- flwr_nightly-1.9.0.dev20240531.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
235
- flwr_nightly-1.9.0.dev20240531.dist-info/entry_points.txt,sha256=8JJPfpqMnXz9c5V_FSt07Xwd-wCWbAO3MFUDXQ5ZGsI,378
236
- flwr_nightly-1.9.0.dev20240531.dist-info/RECORD,,
250
+ flwr/simulation/run_simulation.py,sha256=nTw8VG_agsxVyKmlOw-0umVuXJflcdAGqkKOL-Z5VW8,15817
251
+ flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
252
+ flwr/superexec/app.py,sha256=kCCsCo51_peIMmKc4-tmiN5qO29cPqZOqqs-QVH0oA4,6097
253
+ flwr/superexec/exec_grpc.py,sha256=u-rztpOleqSGqgvNE-ZLw1HchNsBHU1-eB3m52GZ0pQ,1852
254
+ flwr/superexec/exec_servicer.py,sha256=qf8CT4RLXnY8omOy75kwfsWmMnfTD42B4ENTh5S-BCY,2120
255
+ flwr/superexec/executor.py,sha256=GouXCY2LiZ-ffsOoZ_z-fh4JwbzMmhTl-gwpWFgGWTY,1688
256
+ flwr_nightly-1.10.0.dev20240619.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
257
+ flwr_nightly-1.10.0.dev20240619.dist-info/METADATA,sha256=Kp4OvrQWjMnwnmMnQXuPfl1qCc1MOfluaH3mbTkMWhQ,15518
258
+ flwr_nightly-1.10.0.dev20240619.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
259
+ flwr_nightly-1.10.0.dev20240619.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
260
+ flwr_nightly-1.10.0.dev20240619.dist-info/RECORD,,
@@ -1,9 +1,8 @@
1
1
  [console_scripts]
2
2
  flower-client-app=flwr.client:run_client_app
3
- flower-driver-api=flwr.server:run_driver_api
4
- flower-fleet-api=flwr.server:run_fleet_api
5
3
  flower-server-app=flwr.server:run_server_app
6
4
  flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
5
+ flower-superexec=flwr.superexec:run_superexec
7
6
  flower-superlink=flwr.server:run_superlink
8
7
  flower-supernode=flwr.client:run_supernode
9
8
  flwr=flwr.cli.app:app