flwr-nightly 1.13.0.dev20241111__py3-none-any.whl → 1.14.0.dev20241126__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/app.py +2 -0
  2. flwr/cli/install.py +0 -16
  3. flwr/cli/ls.py +228 -0
  4. flwr/cli/new/new.py +23 -13
  5. flwr/cli/new/templates/app/README.md.tpl +11 -0
  6. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  7. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  8. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  9. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  10. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  11. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  12. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
  13. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  14. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  15. flwr/cli/run/run.py +4 -2
  16. flwr/client/app.py +50 -14
  17. flwr/client/clientapp/app.py +40 -23
  18. flwr/client/grpc_rere_client/connection.py +7 -12
  19. flwr/client/rest_client/connection.py +4 -14
  20. flwr/client/supernode/app.py +31 -53
  21. flwr/common/args.py +85 -16
  22. flwr/common/constant.py +24 -6
  23. flwr/common/date.py +18 -0
  24. flwr/common/grpc.py +4 -1
  25. flwr/common/serde.py +10 -0
  26. flwr/common/typing.py +31 -10
  27. flwr/proto/exec_pb2.py +22 -13
  28. flwr/proto/exec_pb2.pyi +44 -0
  29. flwr/proto/exec_pb2_grpc.py +34 -0
  30. flwr/proto/exec_pb2_grpc.pyi +13 -0
  31. flwr/proto/run_pb2.py +30 -30
  32. flwr/proto/run_pb2.pyi +18 -1
  33. flwr/server/app.py +47 -77
  34. flwr/server/driver/grpc_driver.py +66 -16
  35. flwr/server/run_serverapp.py +8 -238
  36. flwr/server/serverapp/app.py +49 -29
  37. flwr/server/superlink/fleet/rest_rere/rest_api.py +10 -9
  38. flwr/server/superlink/linkstate/in_memory_linkstate.py +71 -46
  39. flwr/server/superlink/linkstate/linkstate.py +19 -5
  40. flwr/server/superlink/linkstate/sqlite_linkstate.py +81 -113
  41. flwr/server/superlink/linkstate/utils.py +193 -3
  42. flwr/simulation/app.py +52 -91
  43. flwr/simulation/legacy_app.py +21 -1
  44. flwr/simulation/run_simulation.py +7 -18
  45. flwr/simulation/simulationio_connection.py +2 -2
  46. flwr/superexec/deployment.py +12 -6
  47. flwr/superexec/exec_servicer.py +31 -2
  48. flwr/superexec/simulation.py +11 -46
  49. {flwr_nightly-1.13.0.dev20241111.dist-info → flwr_nightly-1.14.0.dev20241126.dist-info}/METADATA +5 -4
  50. {flwr_nightly-1.13.0.dev20241111.dist-info → flwr_nightly-1.14.0.dev20241126.dist-info}/RECORD +53 -52
  51. {flwr_nightly-1.13.0.dev20241111.dist-info → flwr_nightly-1.14.0.dev20241126.dist-info}/LICENSE +0 -0
  52. {flwr_nightly-1.13.0.dev20241111.dist-info → flwr_nightly-1.14.0.dev20241126.dist-info}/WHEEL +0 -0
  53. {flwr_nightly-1.13.0.dev20241111.dist-info → flwr_nightly-1.14.0.dev20241126.dist-info}/entry_points.txt +0 -0
@@ -21,6 +21,7 @@ from typing import Optional
21
21
 
22
22
  from typing_extensions import override
23
23
 
24
+ from flwr.cli.config_utils import get_fab_metadata
24
25
  from flwr.common import ConfigsRecord, Context, RecordSet
25
26
  from flwr.common.logger import log
26
27
  from flwr.common.typing import Fab, UserConfig
@@ -32,21 +33,11 @@ from .executor import Executor
32
33
 
33
34
 
34
35
  class SimulationEngine(Executor):
35
- """Simulation engine executor.
36
-
37
- Parameters
38
- ----------
39
- num_supernodes: Opitonal[str] (default: None)
40
- Total number of nodes to involve in the simulation.
41
- """
36
+ """Simulation engine executor."""
42
37
 
43
38
  def __init__(
44
39
  self,
45
- num_supernodes: Optional[int] = None,
46
- verbose: Optional[bool] = False,
47
40
  ) -> None:
48
- self.num_supernodes = num_supernodes
49
- self.verbose = verbose
50
41
  self.linkstate_factory: Optional[LinkStateFactory] = None
51
42
  self.ffs_factory: Optional[FfsFactory] = None
52
43
 
@@ -77,40 +68,7 @@ class SimulationEngine(Executor):
77
68
  self,
78
69
  config: UserConfig,
79
70
  ) -> None:
80
- """Set executor config arguments.
81
-
82
- Parameters
83
- ----------
84
- config : UserConfig
85
- A dictionary for configuration values.
86
- Supported configuration key/value pairs:
87
- - "num-supernodes": int
88
- Number of nodes to register for the simulation.
89
- - "verbose": bool
90
- Set verbosity of logs.
91
- """
92
- if num_supernodes := config.get("num-supernodes"):
93
- if not isinstance(num_supernodes, int):
94
- raise ValueError("The `num-supernodes` value should be of type `int`.")
95
- self.num_supernodes = num_supernodes
96
- elif self.num_supernodes is None:
97
- log(
98
- ERROR,
99
- "To start a run with the simulation plugin, please specify "
100
- "the number of SuperNodes. This can be done by using the "
101
- "`--executor-config` argument when launching the SuperExec.",
102
- )
103
- raise ValueError(
104
- "`num-supernodes` must not be `None`, it must be a valid "
105
- "positive integer."
106
- )
107
-
108
- if verbose := config.get("verbose"):
109
- if not isinstance(verbose, bool):
110
- raise ValueError(
111
- "The `verbose` value must be a string `true` or `false`."
112
- )
113
- self.verbose = verbose
71
+ """Set executor config arguments."""
114
72
 
115
73
  # pylint: disable=too-many-locals
116
74
  @override
@@ -122,6 +80,12 @@ class SimulationEngine(Executor):
122
80
  ) -> Optional[int]:
123
81
  """Start run using the Flower Simulation Engine."""
124
82
  try:
83
+ # Check that num-supernodes is set
84
+ if "num-supernodes" not in federation_options:
85
+ raise ValueError(
86
+ "Federation options doesn't contain key `num-supernodes`."
87
+ )
88
+
125
89
  # Create run
126
90
  fab = Fab(hashlib.sha256(fab_file).hexdigest(), fab_file)
127
91
  fab_hash = self.ffs.put(fab.content, {})
@@ -129,9 +93,10 @@ class SimulationEngine(Executor):
129
93
  raise RuntimeError(
130
94
  f"FAB ({fab.hash_str}) hash from request doesn't match contents"
131
95
  )
96
+ fab_id, fab_version = get_fab_metadata(fab.content)
132
97
 
133
98
  run_id = self.linkstate.create_run(
134
- None, None, fab_hash, override_config, federation_options
99
+ fab_id, fab_version, fab_hash, override_config, federation_options
135
100
  )
136
101
 
137
102
  # Create an empty context for the Run
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.13.0.dev20241111
4
- Summary: Flower: A Friendly Federated Learning Framework
3
+ Version: 1.14.0.dev20241126
4
+ Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
7
7
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -41,6 +41,7 @@ Requires-Dist: protobuf (>=4.25.2,<5.0.0)
41
41
  Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
42
42
  Requires-Dist: ray (==2.10.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "simulation")
43
43
  Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
44
+ Requires-Dist: rich (>=13.5.0,<14.0.0)
44
45
  Requires-Dist: starlette (>=0.31.0,<0.32.0) ; extra == "rest"
45
46
  Requires-Dist: tomli (>=2.0.1,<3.0.0)
46
47
  Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
@@ -50,7 +51,7 @@ Project-URL: Documentation, https://flower.ai
50
51
  Project-URL: Repository, https://github.com/adap/flower
51
52
  Description-Content-Type: text/markdown
52
53
 
53
- # Flower: A Friendly Federated Learning Framework
54
+ # Flower: A Friendly Federated AI Framework
54
55
 
55
56
  <p align="center">
56
57
  <a href="https://flower.ai/">
@@ -73,7 +74,7 @@ Description-Content-Type: text/markdown
73
74
  [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-flwr-blue)](https://hub.docker.com/u/flwr)
74
75
  [![Slack](https://img.shields.io/badge/Chat-Slack-red)](https://flower.ai/join-slack)
75
76
 
76
- Flower (`flwr`) is a framework for building federated learning systems. The
77
+ Flower (`flwr`) is a framework for building federated AI systems. The
77
78
  design of Flower is based on a few guiding principles:
78
79
 
79
80
  - **Customizable**: Federated learning systems vary wildly from one use case to
@@ -1,19 +1,20 @@
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=_HDs7HS12Dp7NXIyVrkPs1SKJq3x-XvVZd6y1lvyud4,1255
3
+ flwr/cli/app.py,sha256=h1RCGBUtiL1JTC6yoihlOlB-k4imJ0ToS8uG4haFiyU,1292
4
4
  flwr/cli/build.py,sha256=k2M0aIY2q5WB_yXQ22Woxt1zb6m-Z1wNwmhWMxEm5Dw,6344
5
5
  flwr/cli/config_utils.py,sha256=n-xNkQG_0POz5UUHyE00lthNaOjuS6IYU9Thzb_BThs,11431
6
6
  flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
7
- flwr/cli/install.py,sha256=7Dx8zrn49mTktxGOToBhGx8hzsHOViDasMJ43ooKPXc,8646
7
+ flwr/cli/install.py,sha256=kmD2dW-9B7645GAQx5es1o2W11gRHQ2Fg2E31SLomrg,8179
8
8
  flwr/cli/log.py,sha256=WlAuxZdTUYZ5bRKkm0jLWrOxHTS0TlSA5BeDtO9xF3k,6659
9
+ flwr/cli/ls.py,sha256=aOQTDaRMYuh8O7Wm1CjbSvEXhwq-25QRRDbq-v5UaXY,7703
9
10
  flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
10
- flwr/cli/new/new.py,sha256=uSiG7aXQzPDnikv2YcjQ86OOLqint0hNWCI0fSQD0jI,9634
11
+ flwr/cli/new/new.py,sha256=xgzObnhNpnGvjVs6wTj6BlJ9X-avPhRX3DuwWnk9ED0,9903
11
12
  flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
12
13
  flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
13
14
  flwr/cli/new/templates/app/LICENSE.tpl,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
14
15
  flwr/cli/new/templates/app/README.baseline.md.tpl,sha256=4dg2aBS-NIleVyDlxsG8m65Af6LIJ-pZA5ICjGFU5XA,9641
15
16
  flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=QSG51uifue2KVZz2ZNw8kmOStS7svC2AQ2gTa5E7Bhs,3326
16
- flwr/cli/new/templates/app/README.md.tpl,sha256=t7w4YFZEcJOxAnuJmNPw5-fDdIJu7PfLd8gFJDiBwwo,436
17
+ flwr/cli/new/templates/app/README.md.tpl,sha256=6HBXeD0PBLAnx1IYWGsXzLmDn52jPEk0SF24omhhczE,949
17
18
  flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
18
19
  flwr/cli/new/templates/app/code/__init__.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
19
20
  flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
@@ -51,24 +52,24 @@ flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=XlJqA4Ix_PloO_zJLhjiN
51
52
  flwr/cli/new/templates/app/code/task.sklearn.py.tpl,sha256=SeIIo0rr_6ffn4Qx2xELD18jYXCkcW__NWtYEDXCICM,1843
52
53
  flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
53
54
  flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
54
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=8zSefvfRhuVo_ZLEDbIlLMQJa-dr2iIRhAgqwaaKMYk,2666
55
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=erfZhYcdU1KAXG4AVXCMP2pUMdZI8mcgijArJDrpwIs,1873
56
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=foFjtZ8lI67RLAMxShdoph29i9IAT4jS0lW1wH3sWFQ,1143
57
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=hna-BiIVZvUtTb8-ptaGAHBXJrvVPqnh44NYt4dA_hk,673
58
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=GiRhllAQnMfH3mP4Cr9qpa1qvGwzbcULCa-QDVEbLOY,765
59
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=89B4qMlOI4MrRyzKRzB2ORHJIkyvGx7IeoFnY_TAfVc,612
60
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=LUsQsEVhCgGzKEBB5IewKjZOKtcsq9fUQW-7_NJpgwk,710
61
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=BiZPOKEoGiZOuxSHQY_nQHj3KH7wH7QAiVmpxGutOgk,686
62
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=6R_bIGyPvXlCtLABF8fHLmGBNlIptG8QrYM69_Fy_nk,710
55
+ flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=su1WcJ0KkWar8op-6QB03gw4NVu6AxTcjAR2PdbPGiw,2666
56
+ flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=TkzINYGgDHi-hJJKF8XGGIOUcFaxj09LEEsibLKs0jY,1873
57
+ flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=GndNKPk2j63HmcoDb0PkUuLWajMHw5fD28q18a7EtiU,1143
58
+ flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=1kauOcIjXJWZT0ONXYxPZpO1qdnjK_2c1S-Fymxzy54,673
59
+ flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=pzsL4mG5WxbgHa5JZgJN_ty3MkWb4OZBs7qTr1xmMgw,765
60
+ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=qMu1YXahxEqslcGyiGoG6uSzBX8XkH4Vp36cg4-K8aA,612
61
+ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=Fgw-KjFS7F9y9YDzrfXrx5gyp8_2t_TlaThT3Ug9ow4,710
62
+ flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=TcaTNCrJY98V-CcgzHiN_Wx4FeleV24Idh0AeJrM7ec,686
63
+ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=ObRYYJhgeOWMmBasda1x0UOIhwZKpTtaNon9jazmgOI,710
63
64
  flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
64
- flwr/cli/run/run.py,sha256=TQm7M0a-oSeNXPCsn75qYrkGB0IPbk0HulcYk1gwmR0,6293
65
+ flwr/cli/run/run.py,sha256=t4fBBc3Fq_-Ay5KA8zfkil5NVQOOJOMIN1Nto7Suwy4,6284
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=zpYl6I6_1-5BEv93IqGIBX_FDpEvOSYFhDidWjq0K8U,32975
68
+ flwr/client/app.py,sha256=3AKrJduvki_1ATvKCQV4T9_1qZuarVVTtpnsq6_cWw0,34384
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=0JavWMbSYM2IIXUZ5SfHNeV1lgCJs4sYJhoOKf8g9JE,8020
72
+ flwr/client/clientapp/app.py,sha256=BQJMhCgkj72bfzpinJjJGRlFlZKYuIcZEGrtkfU_os0,8806
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=RALwGBVQGudzNhQvLaaTNrwxABWeghzQO7FpFmUM9is,11156
82
+ flwr/client/grpc_rere_client/connection.py,sha256=1qJB9XAlOl8m2MrvujAjo8y6WGu10IK2rkLXg_sj7BQ,11115
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,23 +99,23 @@ 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=k-RqgUFqidACAGlMFPIUM8aawXI5h2LvKUri2OAK7Bg,12817
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=JN24tRBHLbFJ0KeCTA8eS24KUJHCl9J2xGwWjyPQ7Vg,12239
105
+ flwr/client/supernode/app.py,sha256=CWVSrrZ6YbQ1PcoXQqWZiYKjKcwcE3bB-4Wl-oIG5co,11482
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
- flwr/common/args.py,sha256=SxcXl8UyYqhvz4Mv6cse3gDziznOc1BwDAvmhQY5Dx4,3105
109
+ flwr/common/args.py,sha256=-KeQ6AZw1-G4Ifhsg4qlRnWhGH1m_OzUgxH7Z4j_0ns,6222
109
110
  flwr/common/config.py,sha256=qC1QvGAGr4faBtg3Y5dWhfyK5FggyWUMjPqg-Rx_FW4,8083
110
- flwr/common/constant.py,sha256=D7MNLl1u-P7tJAMdT67xIujSeCibc2QzqtFoqCagoco,4731
111
+ flwr/common/constant.py,sha256=f8P1oB5VqqvV14ymdlOFDhPNuuy6TWtiG0CI7lFw-F8,5522
111
112
  flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
112
- flwr/common/date.py,sha256=uTvLmCkd3uVQuD4MviPHnIXMGyheL16mEI_UlOsv_R8,894
113
+ flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
113
114
  flwr/common/differential_privacy.py,sha256=XwcJ3rWr8S8BZUocc76vLSJAXIf6OHnWkBV6-xlIRuw,6106
114
115
  flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
115
116
  flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
116
117
  flwr/common/exit_handlers.py,sha256=MracJaBeoCOC7TaXK9zCJQxhrMSx9ZtczK237qvhBpU,2806
117
- flwr/common/grpc.py,sha256=6Yi28JjAll19nxYJlOT9B03RN8dvJZP9zUoR3RSmxoY,2487
118
+ flwr/common/grpc.py,sha256=AIPMAHsvcTlduaYKCgnoBnst1A7RZEgGqh0Ulm7qfJ0,2621
118
119
  flwr/common/logger.py,sha256=q_PKjfgUEH-yrjPSIvzzaKocWBqEOaILAmfKOOyEcDE,11197
119
120
  flwr/common/message.py,sha256=4O1m0OWXBAYZz05gKgEtnoJ94J1gjo7hCNHyUXThxRo,13831
120
121
  flwr/common/object_ref.py,sha256=DavEkh-IJv_s0VeLsJvSZS5k-Ix_k1UcNXbldfNFXxM,9859
@@ -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=_z7-2XC-ecfEPzv2wEjJMTp9YH5FJqgQrTBZneDmhzA,30630
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=gk9B685P9_TctGOU0wxTlCRTxHbeaESn5TZiR9v6S0E,5104
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=e6a-KKc5o7bI5BpdfxmZR-nIj2_RMcIBUVOUnaUU_vA,2976
162
- flwr/proto/exec_pb2.pyi,sha256=bz1Ld0GmofBRrkr04ustaRToCAWx1AWShxjhJYiwAo0,3906
163
- flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
164
- flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
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=RDTp7PlvPT-1p0uUYpaQUk4bw1mYr7lktuKA7uRPfrg,5516
194
- flwr/proto/run_pb2.pyi,sha256=M9Zdokby10jr_sBlNIFBYad97Dre0sz5AB7JI4b9OgY,10903
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=Ie-p9hNtuYUog0lfYZNLtkHDdsntnxAxQ7X3clG1how,30446
216
+ flwr/server/app.py,sha256=Ah9tYbRIPI88xim29LS7F_PkrUNgRKx4v6Mggy50dE4,28905
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=4_bJGbeiLV2FTrJseClnsFf2TgitwjwYNO_5sm2FltY,9533
227
+ flwr/server/driver/grpc_driver.py,sha256=aTeQVYjyp19LGUa-a5iKdQRFijLzut2bXj1h8YovdIM,11397
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=zvH7XEJt0WpTeDTTf-67VvugCRuaItMm7klSOcbhFIU,10559
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=2Lmd4XAfp0QPnSHv6R8Q8OMCZ0OavWK-19fHV6VCT1U,7041
235
+ flwr/server/serverapp/app.py,sha256=wYs5H8TU7egSB32DzDnJCUHmcli201e7MlWmhkOgn30,7693
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=ob_LZopJPOtesWeE5MJkIJdFOi1G7C7T8SdOyf8Q5xE,6360
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=BvjS1Bf99MqSU4URrK5GEuCVWzeIky0XRxg6p7T0rnI,21341
290
- flwr/server/superlink/linkstate/linkstate.py,sha256=dE82L6FTOiUqdQY1SejQwzrA0N5AwsoWw7Fm4TXfdTs,11861
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=IjnTMY_CC8bBVN_v8du5d4eKO1ycjD_z-QqweVUwxy8,44828
293
- flwr/server/superlink/linkstate/utils.py,sha256=emryyCNnsSodqhxuxJ3vBLglwHZ_eIA_rawdL7dDVCA,6204
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=ZgvMToxXhcFwujfnJVzITlWxIKXdVITBSLWgPkDs8VU,10717
309
- flwr/simulation/legacy_app.py,sha256=9-D9wr7VmfXBjlAnzWxDe8d9z-TKT5_uVl1YoEmNZwE,15149
309
+ flwr/simulation/app.py,sha256=IKUVaO3hQf6KOfvxCXKRNYJIF_Pwz2YPF2jzyMS_zcU,9379
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=BoG0lwaixe3g-xL4RZPl_6P47PKj2TiPHsDUtcNztkk,20247
315
- flwr/simulation/simulationio_connection.py,sha256=Uqtm2pRuZqEM8SxKS2TdBgsMUABSabhVIx9zzCPb_qc,3195
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=C-NNclLE9OVJST6VRemtXv5N_vOoZeb77AQcMptCP6M,6511
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=zNcdPkqLXgJIANKvE9uGIzgxocIs31WAj1YDnwqI6jo,3958
321
+ flwr/superexec/exec_servicer.py,sha256=M3R3q5rg2kYz-gFN-nmiXkvjels4QbieEA0K5wks0kQ,4972
321
322
  flwr/superexec/executor.py,sha256=zH3_53il6Jh0ZscIVEB9f4GNnXMeBbCGyCoBCxLgiG0,3114
322
- flwr/superexec/simulation.py,sha256=NDFMDRidvp3Gz2MlgcWzkTrFHNAFfS94fTAdX_g7WzY,5370
323
- flwr_nightly-1.13.0.dev20241111.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
324
- flwr_nightly-1.13.0.dev20241111.dist-info/METADATA,sha256=86gCv8IxhC_Tjoumkub-b98bBkqSjuTZRl0lf2_YShs,15658
325
- flwr_nightly-1.13.0.dev20241111.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
326
- flwr_nightly-1.13.0.dev20241111.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
327
- flwr_nightly-1.13.0.dev20241111.dist-info/RECORD,,
323
+ flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
324
+ flwr_nightly-1.14.0.dev20241126.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
325
+ flwr_nightly-1.14.0.dev20241126.dist-info/METADATA,sha256=W12Hf5W8vZkLN1Ss9yckjRrIDXRTfxaBlUxaR_0O8_s,15679
326
+ flwr_nightly-1.14.0.dev20241126.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
327
+ flwr_nightly-1.14.0.dev20241126.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
328
+ flwr_nightly-1.14.0.dev20241126.dist-info/RECORD,,