flwr-nightly 1.10.0.dev20240708__py3-none-any.whl → 1.10.0.dev20240709__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of flwr-nightly might be problematic. Click here for more details.

flwr/client/node_state.py CHANGED
@@ -32,7 +32,7 @@ class NodeState:
32
32
  """Register new run context for this node."""
33
33
  if run_id not in self.run_contexts:
34
34
  self.run_contexts[run_id] = Context(
35
- state=RecordSet(), partition_id=self._partition_id
35
+ state=RecordSet(), run_config={}, partition_id=self._partition_id
36
36
  )
37
37
 
38
38
  def retrieve_context(self, run_id: int) -> Context:
flwr/common/context.py CHANGED
@@ -34,6 +34,10 @@ class Context:
34
34
  executing mods. It can also be used as a memory to access
35
35
  at different points during the lifecycle of this entity (e.g. across
36
36
  multiple rounds)
37
+ run_config : Dict[str, str]
38
+ A config (key/value mapping) held by the entity in a given run and that will
39
+ stay local. It can be used at any point during the lifecycle of this entity
40
+ (e.g. across multiple rounds)
37
41
  partition_id : Optional[int] (default: None)
38
42
  An index that specifies the data partition that the ClientApp using this Context
39
43
  object should make use of. Setting this attribute is better suited for
@@ -47,8 +51,9 @@ class Context:
47
51
  def __init__(
48
52
  self,
49
53
  state: RecordSet,
54
+ run_config: Dict[str, str],
50
55
  partition_id: Optional[int] = None,
51
56
  ) -> None:
52
57
  self.state = state
58
+ self.run_config = run_config
53
59
  self.partition_id = partition_id
54
- self.run_config = {}
@@ -52,4 +52,4 @@ class LegacyContext(Context):
52
52
  self.strategy = strategy
53
53
  self.client_manager = client_manager
54
54
  self.history = History()
55
- super().__init__(state)
55
+ super().__init__(state, run_config={})
@@ -19,10 +19,15 @@ import argparse
19
19
  import sys
20
20
  from logging import DEBUG, INFO, WARN
21
21
  from pathlib import Path
22
- from typing import Optional
22
+ from typing import Dict, Optional
23
23
 
24
24
  from flwr.common import Context, EventType, RecordSet, event
25
- from flwr.common.config import get_flwr_dir, get_project_config, get_project_dir
25
+ from flwr.common.config import (
26
+ get_flwr_dir,
27
+ get_fused_config,
28
+ get_project_config,
29
+ get_project_dir,
30
+ )
26
31
  from flwr.common.logger import log, update_console_handler, warn_deprecated_feature
27
32
  from flwr.common.object_ref import load_app
28
33
  from flwr.proto.driver_pb2 import ( # pylint: disable=E0611
@@ -40,6 +45,7 @@ ADDRESS_DRIVER_API = "0.0.0.0:9091"
40
45
  def run(
41
46
  driver: Driver,
42
47
  server_app_dir: str,
48
+ server_app_run_config: Dict[str, str],
43
49
  server_app_attr: Optional[str] = None,
44
50
  loaded_server_app: Optional[ServerApp] = None,
45
51
  ) -> None:
@@ -72,7 +78,7 @@ def run(
72
78
  server_app = _load()
73
79
 
74
80
  # Initialize Context
75
- context = Context(state=RecordSet())
81
+ context = Context(state=RecordSet(), run_config=server_app_run_config)
76
82
 
77
83
  # Call ServerApp
78
84
  server_app(driver=driver, context=context)
@@ -169,6 +175,8 @@ def run_server_app() -> None: # pylint: disable=too-many-branches
169
175
  # Overwrite driver._run_id
170
176
  driver._run_id = res.run_id # pylint: disable=W0212
171
177
 
178
+ server_app_run_config = {}
179
+
172
180
  # Dynamically obtain ServerApp path based on run_id
173
181
  if args.run_id is not None:
174
182
  # User provided `--run-id`, but not `server-app`
@@ -177,6 +185,7 @@ def run_server_app() -> None: # pylint: disable=too-many-branches
177
185
  server_app_dir = str(get_project_dir(run_.fab_id, run_.fab_version, flwr_dir))
178
186
  config = get_project_config(server_app_dir)
179
187
  server_app_attr = config["flower"]["components"]["serverapp"]
188
+ server_app_run_config = get_fused_config(run_, flwr_dir)
180
189
  else:
181
190
  # User provided `server-app`, but not `--run-id`
182
191
  server_app_dir = str(Path(args.dir).absolute())
@@ -190,7 +199,12 @@ def run_server_app() -> None: # pylint: disable=too-many-branches
190
199
  )
191
200
 
192
201
  # Run the ServerApp with the Driver
193
- run(driver=driver, server_app_dir=server_app_dir, server_app_attr=server_app_attr)
202
+ run(
203
+ driver=driver,
204
+ server_app_dir=server_app_dir,
205
+ server_app_run_config=server_app_run_config,
206
+ server_app_attr=server_app_attr,
207
+ )
194
208
 
195
209
  # Clean up
196
210
  driver.close()
flwr/server/server_app.py CHANGED
@@ -80,7 +80,7 @@ class ServerApp:
80
80
  return
81
81
 
82
82
  # New execution mode
83
- context = Context(state=RecordSet())
83
+ context = Context(state=RecordSet(), run_config={})
84
84
  self._main(driver, context)
85
85
 
86
86
  def main(self) -> Callable[[ServerAppCallable], ServerAppCallable]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.10.0.dev20240708
3
+ Version: 1.10.0.dev20240709
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -77,7 +77,7 @@ flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4R
77
77
  flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
78
78
  flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
79
79
  flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
80
- flwr/client/node_state.py,sha256=z4ol2a20wvspTkn53q24Gnt-1csZRR8JjWnk4A_-Agk,1922
80
+ flwr/client/node_state.py,sha256=f_zZaoSCLUVwbJDqQGZbRvQkEK82UlhSVtgtCKFVM3s,1937
81
81
  flwr/client/node_state_tests.py,sha256=fadnOTT3VAuzzs_UAbOukcuyx-oQPv2lBq92qTuUecw,2212
82
82
  flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
83
83
  flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
@@ -89,7 +89,7 @@ flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
89
89
  flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
90
90
  flwr/common/config.py,sha256=GTmXfeCi6Xt1CTUzg8TUshOHVv2vP8X8e6uCcLBWoX4,5024
91
91
  flwr/common/constant.py,sha256=qNmxEV3_pOO7MeTAA9qwIh4KoCPStcX3Gm8GRPIRx_4,2890
92
- flwr/common/context.py,sha256=uJ9lr-XIjFmp24vBAAOcwxXKGVZIaUzjOMD0G56V4h8,1887
92
+ flwr/common/context.py,sha256=dd37Q_0rngvGTzIwQ2M50jfhGGV0vV2-uGlL-gC4Y_Y,2170
93
93
  flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
94
94
  flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
95
95
  flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
@@ -180,16 +180,16 @@ flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw
180
180
  flwr/server/compat/app.py,sha256=u0elxfiLjGouCMQIy5KnCpeCHdc3s0qvojUm8unInIs,3421
181
181
  flwr/server/compat/app_utils.py,sha256=B9pec7LnYACzowXKZTZNu3SNS-fSaHfefwvRyAQa4Nc,3456
182
182
  flwr/server/compat/driver_client_proxy.py,sha256=BxTDo7i89VAG2tuF4x7zogSVn2bXPMr0H2H0lERzW9c,5444
183
- flwr/server/compat/legacy_context.py,sha256=D2s7PvQoDnTexuRmf1uG9Von7GUj4Qqyr7qLklSlKAM,1766
183
+ flwr/server/compat/legacy_context.py,sha256=3T_vON4qXt31To0dd9ygULvxL9l1hmDSED6ZqBiLhxI,1781
184
184
  flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
185
185
  flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
186
186
  flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
187
187
  flwr/server/driver/grpc_driver.py,sha256=4Azmzq4RWzcLbOqBBEF-I78krWVWZ6bT0U42S25zMvY,9659
188
188
  flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
189
189
  flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
190
- flwr/server/run_serverapp.py,sha256=d4kFybZBiPqUkPKusU_Nmzq6nPzds6nwt67BvndDlGQ,9142
190
+ flwr/server/run_serverapp.py,sha256=s8KyWbANv9kyj8_tJoDiLkUj9D6QrPWfC5M_xDCOtYU,9445
191
191
  flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
192
- flwr/server/server_app.py,sha256=Re5Y9ftXlBRJXYHY_8TrNWsjyOUCPC5F_93H0xiZDhI,4400
192
+ flwr/server/server_app.py,sha256=WdsLcMsdi_pKk2y9fKkaWqT3CgCPX55-C8qhkDXCet8,4415
193
193
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
194
194
  flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
195
195
  flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
@@ -268,8 +268,8 @@ flwr/superexec/deployment.py,sha256=xv5iQWuaMeeL0XE5KMLWq3gRU4lvsGu1-_oPIXi5x9E,
268
268
  flwr/superexec/exec_grpc.py,sha256=u-rztpOleqSGqgvNE-ZLw1HchNsBHU1-eB3m52GZ0pQ,1852
269
269
  flwr/superexec/exec_servicer.py,sha256=4R1f_9v0vly_bXpIYaXAeV1tO5LAy1AYygGGGNZmlQk,2194
270
270
  flwr/superexec/executor.py,sha256=TMQMMf-vv0htlv6v-eEBI67J1WL3Yz7dp_Fm1lgMEyU,1718
271
- flwr_nightly-1.10.0.dev20240708.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
272
- flwr_nightly-1.10.0.dev20240708.dist-info/METADATA,sha256=PTCizQrpDKKp9_ZqsxqP7APWdLMwsRk31PKfU-8QKgk,15614
273
- flwr_nightly-1.10.0.dev20240708.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
274
- flwr_nightly-1.10.0.dev20240708.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
275
- flwr_nightly-1.10.0.dev20240708.dist-info/RECORD,,
271
+ flwr_nightly-1.10.0.dev20240709.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
272
+ flwr_nightly-1.10.0.dev20240709.dist-info/METADATA,sha256=SwIZJql7j8ya90gfL7UYMaHCGdWj2T7e-vDFYW6rlvs,15614
273
+ flwr_nightly-1.10.0.dev20240709.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
274
+ flwr_nightly-1.10.0.dev20240709.dist-info/entry_points.txt,sha256=7qBQcA-bDGDxnJmLd9FYqglFQubjCNqyg9M8a-lukps,336
275
+ flwr_nightly-1.10.0.dev20240709.dist-info/RECORD,,