flwr-nightly 1.10.0.dev20240612__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 (53) hide show
  1. flwr/cli/build.py +3 -1
  2. flwr/cli/config_utils.py +53 -3
  3. flwr/cli/install.py +35 -20
  4. flwr/cli/run/run.py +39 -2
  5. flwr/client/__init__.py +1 -1
  6. flwr/client/app.py +22 -10
  7. flwr/client/grpc_adapter_client/__init__.py +15 -0
  8. flwr/client/grpc_adapter_client/connection.py +94 -0
  9. flwr/client/grpc_client/connection.py +5 -1
  10. flwr/client/grpc_rere_client/connection.py +8 -1
  11. flwr/client/grpc_rere_client/grpc_adapter.py +133 -0
  12. flwr/client/mod/__init__.py +3 -3
  13. flwr/client/rest_client/connection.py +9 -1
  14. flwr/client/supernode/app.py +140 -40
  15. flwr/common/__init__.py +12 -12
  16. flwr/common/config.py +71 -0
  17. flwr/common/constant.py +15 -0
  18. flwr/common/object_ref.py +39 -5
  19. flwr/common/record/__init__.py +1 -1
  20. flwr/common/telemetry.py +4 -0
  21. flwr/common/typing.py +9 -0
  22. flwr/proto/exec_pb2.py +34 -0
  23. flwr/proto/exec_pb2.pyi +55 -0
  24. flwr/proto/exec_pb2_grpc.py +101 -0
  25. flwr/proto/exec_pb2_grpc.pyi +41 -0
  26. flwr/proto/fab_pb2.py +30 -0
  27. flwr/proto/fab_pb2.pyi +56 -0
  28. flwr/proto/fab_pb2_grpc.py +4 -0
  29. flwr/proto/fab_pb2_grpc.pyi +4 -0
  30. flwr/server/__init__.py +2 -2
  31. flwr/server/app.py +62 -25
  32. flwr/server/run_serverapp.py +4 -2
  33. flwr/server/strategy/__init__.py +2 -2
  34. flwr/server/superlink/fleet/grpc_adapter/__init__.py +15 -0
  35. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +131 -0
  36. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +4 -0
  37. flwr/server/superlink/fleet/message_handler/message_handler.py +3 -3
  38. flwr/server/superlink/fleet/vce/vce_api.py +3 -1
  39. flwr/server/superlink/state/in_memory_state.py +8 -5
  40. flwr/server/superlink/state/sqlite_state.py +6 -3
  41. flwr/server/superlink/state/state.py +5 -4
  42. flwr/simulation/__init__.py +4 -1
  43. flwr/simulation/run_simulation.py +22 -0
  44. flwr/superexec/__init__.py +21 -0
  45. flwr/superexec/app.py +178 -0
  46. flwr/superexec/exec_grpc.py +51 -0
  47. flwr/superexec/exec_servicer.py +65 -0
  48. flwr/superexec/executor.py +54 -0
  49. {flwr_nightly-1.10.0.dev20240612.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/METADATA +1 -1
  50. {flwr_nightly-1.10.0.dev20240612.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/RECORD +53 -34
  51. {flwr_nightly-1.10.0.dev20240612.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/entry_points.txt +1 -0
  52. {flwr_nightly-1.10.0.dev20240612.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/LICENSE +0 -0
  53. {flwr_nightly-1.10.0.dev20240612.dist-info → flwr_nightly-1.10.0.dev20240619.dist-info}/WHEEL +0 -0
@@ -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.10.0.dev20240612
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,10 +1,10 @@
1
1
  flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
2
2
  flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
3
3
  flwr/cli/app.py,sha256=FvzW2iw3iagrTmgsk4zBLjLvGANRsBvIw11dWWs5-6g,1193
4
- flwr/cli/build.py,sha256=HBlOLdUhWbD5Gu97r0WwISDLLOxl7-40RUyW4eVwbEo,4717
5
- flwr/cli/config_utils.py,sha256=9-QnORHRMmY_n2YI1qnlHzjmKFxKvDz4uqF7eIsSwh4,4411
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=amjRGefC3-0OpoSfzq9gcL-6DvBs8-60LkfwAZDvi9Q,6171
7
+ flwr/cli/install.py,sha256=Wz7Hqg2PE9N-w5CnqlH9Zr8mzADN2J7NLcUhgldZLWU,6579
8
8
  flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
9
9
  flwr/cli/new/new.py,sha256=7BWziuEOE15MXX4xNLH-w0-x0ytOEfYn_AUrbaDp13Y,6223
10
10
  flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
@@ -40,23 +40,26 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=wxN6I8uvWZ4MErvTbQJ
40
40
  flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=wFeJuhqnBPQtKCBvnE3ySBpxmbeNdxcsq2Eb_RmSDIg,655
41
41
  flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=zkxLTQRvujF76sIlzNNGPVU7Y9nVCwNBxAx82AOBaJY,654
42
42
  flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
43
- flwr/cli/run/run.py,sha256=Oadt7JsJX549JG-2P1UPdF11vnblLWS8uGvuVx0modA,2687
43
+ flwr/cli/run/run.py,sha256=boAv5Ib9PdscieetxCR2MJ3MPjt5YRMjUZ8cR75P424,3842
44
44
  flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
45
- flwr/client/__init__.py,sha256=tcgMyAW8brnmAIk4NmXkonVjYV3lafQJD4vfZ3OJ6kA,1279
46
- flwr/client/app.py,sha256=QwSlJ7duRor1X7PRqet0rjVD64Nzsw7KKYwfc7vK50Q,23793
45
+ flwr/client/__init__.py,sha256=FWiXcxwJf1nfTFxEiO9rHtwxzA4x809Iu22sDV2qSAA,1279
46
+ flwr/client/app.py,sha256=n4TSijcc2bAyRWu5-TNiTZtI6mMBa18f3BRbNnkYgUM,24386
47
47
  flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
48
48
  flwr/client/client_app.py,sha256=2jyVTzu8pwDtg66z4FjAa_kPzg31Q8-hx-RkDhguIqw,8635
49
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
50
52
  flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
51
- flwr/client/grpc_client/connection.py,sha256=KWbBwuvn1-2wjrAKteydGCZC_7A2zmEjk3DycQWafrA,8993
53
+ flwr/client/grpc_client/connection.py,sha256=NGPFSq98wBXpVXZlei6jlg679nL07GDwyQ4z37AzoGc,9279
52
54
  flwr/client/grpc_rere_client/__init__.py,sha256=avn6W_vHEM_yZEB1S7hCZgnTbXb6ZujqRP_vAzyXu-0,752
53
55
  flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
54
- flwr/client/grpc_rere_client/connection.py,sha256=rYRPUFphUUzNxGj2jVnflcspDiFSzsi-G0xmp5gVQpY,9696
56
+ flwr/client/grpc_rere_client/connection.py,sha256=nEbmqvbPsSyESrwVBRipDFqsOmg4wQM6D0mf9-flMyo,10157
57
+ flwr/client/grpc_rere_client/grpc_adapter.py,sha256=woljH8yr1pyLH4W4Azogyy7Nafn6y9DHBnDCIIVKwCw,4711
55
58
  flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
56
59
  flwr/client/message_handler/__init__.py,sha256=abHvBRJJiiaAMNgeILQbMOa6h8WqMK2BcnvxwQZFpic,719
57
60
  flwr/client/message_handler/message_handler.py,sha256=ml_FlduAJ5pxO31n1tKRrWfQRSxkMgKLbwXXcRsNSos,6553
58
61
  flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
59
- flwr/client/mod/__init__.py,sha256=7ai56tcBxppD_Qn0koE7vmdo-WdU4TDTA0QDE5dhLKE,1159
62
+ flwr/client/mod/__init__.py,sha256=1tAVUU6_XQjOlORVgo4gROPqdjJemPo5mbxrKJyN4Hs,1159
60
63
  flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
61
64
  flwr/client/mod/comms_mods.py,sha256=QzJF7lgbYGnZvY805rkBfDsYCRC0HBHeDkJQ_JXhUZY,2624
62
65
  flwr/client/mod/localdp_mod.py,sha256=SBDhW71vY6lEU_lQNOySLUWypkNwUwuHAtbBErOarpM,4982
@@ -68,13 +71,14 @@ flwr/client/node_state.py,sha256=KTTs_l4I0jBM7IsSsbAGjhfL_yZC3QANbzyvyfZBRDM,177
68
71
  flwr/client/node_state_tests.py,sha256=gPwz0zf2iuDSa11jedkur_u3Xm7lokIDG5ALD2MCvSw,2195
69
72
  flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
70
73
  flwr/client/rest_client/__init__.py,sha256=ThwOnkMdzxo_UuyTI47Q7y9oSpuTgNT2OuFvJCfuDiw,735
71
- flwr/client/rest_client/connection.py,sha256=GvDPX2BdPwhBQGH6LQE50AzUxQvC7bisWK1pk_OR7eE,11567
74
+ flwr/client/rest_client/connection.py,sha256=GmnHoeWuSMv0OWV5GUZweIft8BTextGEY9oxyc7pyYk,11957
72
75
  flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
73
- flwr/client/supernode/app.py,sha256=sc0VD8Il2UI1Lnh4tQwKSQMSsiS30WFrZtVMnz7WpWM,10873
76
+ flwr/client/supernode/app.py,sha256=9jQMyL8116fIcrsoKxPKN5W8lQ7QdSSpF0cR3PUEQ5Y,14486
74
77
  flwr/client/typing.py,sha256=c9EvjlEjasxn1Wqx6bGl6Xg6vM1gMFfmXht-E2i5J-k,1006
75
- flwr/common/__init__.py,sha256=dHOptgKxna78CEQLD5Yu0QIsoSgpIIw5AhIUZCHDWAU,3721
78
+ flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
76
79
  flwr/common/address.py,sha256=iTAN9jtmIGMrWFnx9XZQl45ZEtQJVZZLYPRBSNVARGI,1882
77
- 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
78
82
  flwr/common/context.py,sha256=ounF-mWPPtXGwtae3sg5EhF58ScviOa3MVqxRpGVu-8,1313
79
83
  flwr/common/date.py,sha256=UWhBZj49yX9LD4BmatS_ZFZu_-kweGh0KQJ1djyWWH4,891
80
84
  flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
@@ -84,10 +88,10 @@ flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,
84
88
  flwr/common/grpc.py,sha256=Yx_YFK24cU4U81RpXrdVwEVY_jTy4RE19cHtBxE2XOE,2460
85
89
  flwr/common/logger.py,sha256=bFu4eOychVwwYwaaCtxQ85dmx8gUtvwp6fRk-GefXHk,7107
86
90
  flwr/common/message.py,sha256=M7rwhmO9HgdGlHnNysLJMm_UJFBjqvQbXM0G-bLsi7o,13896
87
- flwr/common/object_ref.py,sha256=KwqgUId6xalfedKcUZiLeRBfoT2J_i92k5FYGXKNkqA,5091
91
+ flwr/common/object_ref.py,sha256=PQR0tztVOkD1nn_uGuNz4bHm7z4fwsosTsUKvWIGF5Y,6506
88
92
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
89
93
  flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
90
- flwr/common/record/__init__.py,sha256=33OaDW2bvaW952DFHH1amHclv4AuDZu385jXjHhXoog,1054
94
+ flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
91
95
  flwr/common/record/configsrecord.py,sha256=VKeFEYa6cneyStqQlUOaKj12by5ZI_NXYR25LOEVeo8,4652
92
96
  flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
93
97
  flwr/common/record/metricsrecord.py,sha256=Yv99oRa3LzFgSfwl903S8sB8rAgr3Sv6i6ovW7pdHsA,3923
@@ -105,8 +109,8 @@ flwr/common/secure_aggregation/quantization.py,sha256=appui7GGrkRPsupF59TkapeV4N
105
109
  flwr/common/secure_aggregation/secaggplus_constants.py,sha256=Fh7-n6pgL4TUnHpNYXo8iW-n5cOGQgQa-c7RcU80tqQ,2183
106
110
  flwr/common/secure_aggregation/secaggplus_utils.py,sha256=87bNZX6CmQekj935R4u3m5hsaEkkfKtGSA-VG2c-O9w,3221
107
111
  flwr/common/serde.py,sha256=Yn83kbSf9vJndTa5ldL4DR_bL_wy_bD4lTlD3ZbB658,22250
108
- flwr/common/telemetry.py,sha256=Q84hW6l6MCtD8sgQI4sUcp-N-zqAo607jyApeXC5RpM,7865
109
- flwr/common/typing.py,sha256=3Wu6Ol1Ja6Gb0WdlcXVEn1EHYJbc4oRRJA81vEegxBo,4382
112
+ flwr/common/telemetry.py,sha256=IGzOp87BYReCj5bEoZS6zDSKH0aXsmhMvhHx8fdC1v0,7948
113
+ flwr/common/typing.py,sha256=q1RtnEtI2jX9VGT12_ECM3euMIcjmwh1Pd1tVrYf6i8,4483
110
114
  flwr/common/version.py,sha256=_RDSMGZPEuGKYViZuXPotDtXMvh4iyDH9XOCO4qtPO8,666
111
115
  flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
112
116
  flwr/proto/driver_pb2.py,sha256=xqEN0UxFAUl1h_S_tP8SQShNYSJt_oSdb1npMn5KfL0,3394
@@ -117,6 +121,14 @@ flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
117
121
  flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
118
122
  flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
119
123
  flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
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
120
132
  flwr/proto/fleet_pb2.py,sha256=sASthuSb5R0v1NH2g6vRDC4BeJUFPAso8bjcihAflo0,4543
121
133
  flwr/proto/fleet_pb2.pyi,sha256=45kQ9YINv3VG0nxWSjCN4SppdepjKW8rRBlxKxz7ud4,7571
122
134
  flwr/proto/fleet_pb2_grpc.py,sha256=4eP1jkEVuckzSxo16yNaOBrHPzxHqQfj2MaNtPql4Wk,10655
@@ -146,8 +158,8 @@ flwr/proto/transport_pb2.pyi,sha256=CZvJRWTU3QWFWLXNFtyLSrSKFatIyMcy-ohzLbQ-G9c,
146
158
  flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
147
159
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
148
160
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- flwr/server/__init__.py,sha256=qS6A16gywlLJSQWIaI41Fy_fWa5NzHi6iyrOfLf2vQc,1575
150
- flwr/server/app.py,sha256=b89N5JW2bRL9T6yp8Lqoqgj4-Ey2h1PPH3hPzvIoxIY,22512
161
+ flwr/server/__init__.py,sha256=PAoUaE5kQ9toC6gS7L68d74AgbRrHHoHt8wNr81CcEw,1575
162
+ flwr/server/app.py,sha256=WABxljYzn9mEaHvnXXBceVkBx2V6lmlFGpl5f0Uue08,23736
151
163
  flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
152
164
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
153
165
  flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
@@ -161,11 +173,11 @@ flwr/server/driver/driver.py,sha256=t9SSSDlo9wT_y2Nl7waGYMTm2VlkvK3_bOb7ggPPlho,
161
173
  flwr/server/driver/grpc_driver.py,sha256=rdjkcAmtRWKeqJw4xDFqULuwVf0G2nLhfbOTrNUvPeY,11832
162
174
  flwr/server/driver/inmemory_driver.py,sha256=XfdLV3mVorTWBfthBkErJDLm8jXZ834IHF3139lTS5o,6490
163
175
  flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
164
- flwr/server/run_serverapp.py,sha256=nKrA9Vhs3OKeY_T4-kFL-41Qhsp5dszW98yfycOCD6c,6887
176
+ flwr/server/run_serverapp.py,sha256=AorePFZCuGm_TwkGFVSwoaLwJjJZ-FwtQP8H4c0O97I,6955
165
177
  flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
166
178
  flwr/server/server_app.py,sha256=Re5Y9ftXlBRJXYHY_8TrNWsjyOUCPC5F_93H0xiZDhI,4400
167
179
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
168
- flwr/server/strategy/__init__.py,sha256=7eVZ3hQEg2BgA_usAeL6tsLp9T6XI1VYYoFy08Xn-ew,2836
180
+ flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
169
181
  flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
170
182
  flwr/server/strategy/bulyan.py,sha256=8GsSVJzRSoSWE2zQUKqC3Z795grdN9xpmc3MSGGXnzM,6532
171
183
  flwr/server/strategy/dp_adaptive_clipping.py,sha256=Et8HuHoZ7g1J1yEsSGc8HTjjbppY_0u70nKcm-GMtbQ,17406
@@ -194,27 +206,29 @@ flwr/server/superlink/driver/__init__.py,sha256=STB1_DASVEg7Cu6L7VYxTzV7UMkgtBkF
194
206
  flwr/server/superlink/driver/driver_grpc.py,sha256=1qSGDs1k_OVPWxp2ofxvQgtYXExrMeC3N_rNPVWH65M,1932
195
207
  flwr/server/superlink/driver/driver_servicer.py,sha256=jzYbnuSCbRIFY3AM1NXii6zpKhrtJisWyFwo-sxmqrA,5056
196
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
197
211
  flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=mgGJGjwT6VU7ovC1gdnnqttjyBPlNIcZnYRqx4K3IBQ,735
198
212
  flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=57b3UL5-baGdLwgCtB0dCUTTSbmmfMAXcXV5bjPZNWQ,5993
199
213
  flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=LSOmabFXAQxKycQOliplKmigbmVwdm-D4CI-hJ0Pav0,6458
200
214
  flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=kuD7R1yB1Ite0sNfvjsrnZu83LWGk8fP-yihE1mjQm0,4887
201
- 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
202
216
  flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=bEJOMWbSlqkw-y5ZHtEXczhoSlAxErcRYffmTMQAV8M,758
203
217
  flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=wuFaEAsuKfAYQKeXbB9Jg0SQaW9gmb_1k6pOPIlXrYY,3434
204
218
  flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
205
219
  flwr/server/superlink/fleet/message_handler/__init__.py,sha256=hEY0l61ojH8Iz30_K1btm1HJ6J49iZJSFUsVYqUTw3A,731
206
- flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=RAfQTcT0xkew0UO-CIB1ssN42MutdKwwfTvU8s-7boQ,3682
220
+ flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=qDlWhCsbXssHTvoMZPjYTGgmOVflszkFmL1oJzVQrDA,3653
207
221
  flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=VKDvDq5H8koOUztpmQacVzGJXPLEEkL1Vmolxt3mvnY,735
208
222
  flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=Sm_pSxpeT1BdkSKou8YwreP7qSpMR5ENEsjwGW1h5VY,7672
209
223
  flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
210
224
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=oBIzmnrSSRvH_H0vRGEGWhWzQQwqe3zn6e13RsNwlIY,1466
211
225
  flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LJsKl7oixVvptcG98Rd9ejJycNWcEVB0ODvSreLGp-A,2260
212
226
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=KCzV-n-czXxIKPwNfuD-JEVCl4-xAJaHe4taGmw9cTQ,6722
213
- 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
214
228
  flwr/server/superlink/state/__init__.py,sha256=ij-7Ms-hyordQdRmGQxY1-nVa4OhixJ0jr7_YDkys0s,1003
215
- flwr/server/superlink/state/in_memory_state.py,sha256=WoIOwgayuCu1DLRkkV6KgBsc28SKzSDxtXwO2a9Phuw,12750
216
- flwr/server/superlink/state/sqlite_state.py,sha256=8xvJgufEbl_ZRAz9VWXykKP3viUZjQNVS7yDY5dildw,28528
217
- 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
218
232
  flwr/server/superlink/state/state_factory.py,sha256=91cSB-KOAFM37z7T098WxTkVeKNaAZ_mTI75snn2_tk,1654
219
233
  flwr/server/superlink/state/utils.py,sha256=qhIjBu5_rqm9GLMB6QS5TIRrMDVs85lmY17BqZ1ccLk,2207
220
234
  flwr/server/typing.py,sha256=2zSG-KuDAgwFPuzgVjTLDaEqJ8gXXGqFR2RD-qIk730,913
@@ -227,15 +241,20 @@ flwr/server/workflow/default_workflows.py,sha256=_GqFCaxtiq3_UVCvZWgJ200QroGSI9q
227
241
  flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
228
242
  flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
229
243
  flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=BRqhlnVe8CYNoUvb_KCfRXay02NTT6a-pCrMaOqAxGc,29038
230
- flwr/simulation/__init__.py,sha256=1SVOWQGPA6dWlUMR_ZeiPBYXURNb1rx9VOi6kSW6zrs,1348
244
+ flwr/simulation/__init__.py,sha256=AvKl_As1sIfyO10pXVxymv8Kim_dx_Grqjzxj7CEpC4,1359
231
245
  flwr/simulation/app.py,sha256=Fjq3krpzx9GUW1oYLHPn_Wq2tzjyqVBa9bxRbtuNVBQ,14380
232
246
  flwr/simulation/ray_transport/__init__.py,sha256=FsaAnzC4cw4DqoouBCix6496k29jACkfeIam55BvW9g,734
233
247
  flwr/simulation/ray_transport/ray_actor.py,sha256=_wv2eP7qxkCZ-6rMyYWnjLrGPBZRxjvTPjaVk8zIaQ4,19367
234
248
  flwr/simulation/ray_transport/ray_client_proxy.py,sha256=oDu4sEPIOu39vrNi-fqDAe10xtNUXMO49bM2RWfRcyw,6738
235
249
  flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
236
- flwr/simulation/run_simulation.py,sha256=Jmc6DyN5UCY1U1PcDvL04NgYmEQ6ufJ1JisjG5yqfY8,15098
237
- flwr_nightly-1.10.0.dev20240612.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
238
- flwr_nightly-1.10.0.dev20240612.dist-info/METADATA,sha256=y6cyp6G3w-a07uF7toQ9YHV4BYbtiUmy4zLYcYrrlP8,15518
239
- flwr_nightly-1.10.0.dev20240612.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
240
- flwr_nightly-1.10.0.dev20240612.dist-info/entry_points.txt,sha256=lnx02_kvueYDnkzBh0sdyjFxAVy0CqrIBJaDALiIXlc,290
241
- flwr_nightly-1.10.0.dev20240612.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,,
@@ -2,6 +2,7 @@
2
2
  flower-client-app=flwr.client:run_client_app
3
3
  flower-server-app=flwr.server:run_server_app
4
4
  flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
5
+ flower-superexec=flwr.superexec:run_superexec
5
6
  flower-superlink=flwr.server:run_superlink
6
7
  flower-supernode=flwr.client:run_supernode
7
8
  flwr=flwr.cli.app:app