flwr-nightly 1.15.0.dev20250130__py3-none-any.whl → 1.16.0.dev20250201__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
flwr/cli/ls.py CHANGED
@@ -117,7 +117,7 @@ def ls( # pylint: disable=too-many-locals, too-many-branches, R0913, R0917
117
117
  federation, config, federation_config_overrides
118
118
  )
119
119
  exit_if_no_address(federation_config, "ls")
120
-
120
+ channel = None
121
121
  try:
122
122
  if runs and run_id is not None:
123
123
  raise ValueError(
@@ -148,7 +148,8 @@ def ls( # pylint: disable=too-many-locals, too-many-branches, R0913, R0917
148
148
  )
149
149
  raise typer.Exit(code=1) from err
150
150
  finally:
151
- channel.close()
151
+ if channel:
152
+ channel.close()
152
153
  except (typer.Exit, Exception) as err: # pylint: disable=broad-except
153
154
  if suppress_output:
154
155
  restore_output()
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "torch==2.5.1",
14
14
  "torchvision==0.20.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets>=0.5.0",
13
13
  "torch==2.3.1",
14
14
  "trl==0.8.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets>=0.5.0",
13
13
  "torch==2.5.1",
14
14
  "transformers>=4.30.0,<5.0",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "jax==0.4.30",
13
13
  "jaxlib==0.4.30",
14
14
  "scikit-learn==1.6.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "mlx==0.21.1",
14
14
  ]
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "numpy>=2.0.2",
13
13
  ]
14
14
 
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "torch==2.5.1",
14
14
  "torchvision==0.20.1",
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "scikit-learn>=1.6.1",
14
14
  ]
@@ -8,7 +8,7 @@ version = "1.0.0"
8
8
  description = ""
9
9
  license = "Apache-2.0"
10
10
  dependencies = [
11
- "flwr[simulation]>=1.15.0",
11
+ "flwr[simulation]>=1.16.0",
12
12
  "flwr-datasets[vision]>=0.5.0",
13
13
  "tensorflow>=2.11.1,<2.18.0",
14
14
  ]
flwr/cli/stop.py CHANGED
@@ -84,7 +84,7 @@ def stop( # pylint: disable=R0914
84
84
  federation, config, federation_config_overrides
85
85
  )
86
86
  exit_if_no_address(federation_config, "stop")
87
-
87
+ channel = None
88
88
  try:
89
89
  auth_plugin = try_obtain_cli_auth_plugin(app, federation, federation_config)
90
90
  channel = init_channel(app, federation_config, auth_plugin)
@@ -101,7 +101,8 @@ def stop( # pylint: disable=R0914
101
101
  )
102
102
  raise typer.Exit(code=1) from err
103
103
  finally:
104
- channel.close()
104
+ if channel:
105
+ channel.close()
105
106
  except (typer.Exit, Exception) as err: # pylint: disable=broad-except
106
107
  if suppress_output:
107
108
  restore_output()
@@ -41,7 +41,7 @@ from flwr.common.constant import (
41
41
  )
42
42
  from flwr.common.exit import ExitCode, flwr_exit
43
43
  from flwr.common.exit_handlers import register_exit_handlers
44
- from flwr.common.logger import log, warn_deprecated_feature
44
+ from flwr.common.logger import log
45
45
 
46
46
  from ..app import start_client_internal
47
47
  from ..clientapp.utils import get_load_client_app_fn
@@ -50,7 +50,6 @@ from ..clientapp.utils import get_load_client_app_fn
50
50
  def run_supernode() -> None:
51
51
  """Run Flower SuperNode."""
52
52
  args = _parse_args_run_supernode().parse_args()
53
- _warn_deprecated_server_arg(args)
54
53
 
55
54
  log(INFO, "Starting Flower SuperNode")
56
55
 
@@ -109,26 +108,6 @@ def run_client_app() -> None:
109
108
  register_exit_handlers(event_type=EventType.RUN_CLIENT_APP_LEAVE)
110
109
 
111
110
 
112
- def _warn_deprecated_server_arg(args: argparse.Namespace) -> None:
113
- """Warn about the deprecated argument `--server`."""
114
- if args.server != FLEET_API_GRPC_RERE_DEFAULT_ADDRESS:
115
- warn = "Passing flag --server is deprecated. Use --superlink instead."
116
- warn_deprecated_feature(warn)
117
-
118
- if args.superlink != FLEET_API_GRPC_RERE_DEFAULT_ADDRESS:
119
- # if `--superlink` also passed, then
120
- # warn user that this argument overrides what was passed with `--server`
121
- log(
122
- WARN,
123
- "Both `--server` and `--superlink` were passed. "
124
- "`--server` will be ignored. Connecting to the Superlink Fleet API "
125
- "at %s.",
126
- args.superlink,
127
- )
128
- else:
129
- args.superlink = args.server
130
-
131
-
132
111
  def _parse_args_run_supernode() -> argparse.ArgumentParser:
133
112
  """Parse flower-supernode command line arguments."""
134
113
  parser = argparse.ArgumentParser(
@@ -206,15 +185,12 @@ def _parse_args_common(parser: argparse.ArgumentParser) -> None:
206
185
  help="Specifies the path to the PEM-encoded root certificate file for "
207
186
  "establishing secure HTTPS connections.",
208
187
  )
209
- parser.add_argument(
210
- "--server",
211
- default=FLEET_API_GRPC_RERE_DEFAULT_ADDRESS,
212
- help="Server address",
213
- )
214
188
  parser.add_argument(
215
189
  "--superlink",
216
190
  default=FLEET_API_GRPC_RERE_DEFAULT_ADDRESS,
217
- help="SuperLink Fleet API (gRPC-rere) address (IPv4, IPv6, or a domain name)",
191
+ help="SuperLink Fleet API address (IPv4, IPv6, or a domain name). If using the "
192
+ "REST (experimental) transport, ensure your address is in the form "
193
+ "`http://...` or `https://...` when TLS is enabled.",
218
194
  )
219
195
  parser.add_argument(
220
196
  "--max-retries",
flwr/common/args.py CHANGED
@@ -20,13 +20,9 @@ import sys
20
20
  from logging import DEBUG, ERROR, WARN
21
21
  from os.path import isfile
22
22
  from pathlib import Path
23
- from typing import Optional
23
+ from typing import Optional, Union
24
24
 
25
- from flwr.common.constant import (
26
- TRANSPORT_TYPE_GRPC_ADAPTER,
27
- TRANSPORT_TYPE_GRPC_RERE,
28
- TRANSPORT_TYPE_REST,
29
- )
25
+ from flwr.common.constant import TRANSPORT_TYPE_REST
30
26
  from flwr.common.logger import log
31
27
 
32
28
 
@@ -55,9 +51,9 @@ def add_args_flwr_app_common(parser: argparse.ArgumentParser) -> None:
55
51
  def try_obtain_root_certificates(
56
52
  args: argparse.Namespace,
57
53
  grpc_server_address: str,
58
- ) -> Optional[bytes]:
54
+ ) -> Optional[Union[bytes, str]]:
59
55
  """Validate and return the root certificates."""
60
- root_cert_path = args.root_certificates
56
+ root_cert_path: Optional[str] = args.root_certificates
61
57
  if args.insecure:
62
58
  if root_cert_path is not None:
63
59
  sys.exit(
@@ -93,56 +89,38 @@ def try_obtain_root_certificates(
93
89
  grpc_server_address,
94
90
  root_cert_path,
95
91
  )
92
+ if args.transport == TRANSPORT_TYPE_REST:
93
+ return root_cert_path
96
94
  return root_certificates
97
95
 
98
96
 
99
97
  def try_obtain_server_certificates(
100
98
  args: argparse.Namespace,
101
- transport_type: str,
102
99
  ) -> Optional[tuple[bytes, bytes, bytes]]:
103
100
  """Validate and return the CA cert, server cert, and server private key."""
104
101
  if args.insecure:
105
102
  log(WARN, "Option `--insecure` was set. Starting insecure HTTP server.")
106
103
  return None
107
104
  # Check if certificates are provided
108
- if transport_type in [TRANSPORT_TYPE_GRPC_RERE, TRANSPORT_TYPE_GRPC_ADAPTER]:
109
- if args.ssl_certfile and args.ssl_keyfile and args.ssl_ca_certfile:
110
- if not isfile(args.ssl_ca_certfile):
111
- sys.exit("Path argument `--ssl-ca-certfile` does not point to a file.")
112
- if not isfile(args.ssl_certfile):
113
- sys.exit("Path argument `--ssl-certfile` does not point to a file.")
114
- if not isfile(args.ssl_keyfile):
115
- sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
116
- certificates = (
117
- Path(args.ssl_ca_certfile).read_bytes(), # CA certificate
118
- Path(args.ssl_certfile).read_bytes(), # server certificate
119
- Path(args.ssl_keyfile).read_bytes(), # server private key
120
- )
121
- return certificates
122
- if args.ssl_certfile or args.ssl_keyfile or args.ssl_ca_certfile:
123
- sys.exit(
124
- "You need to provide valid file paths to `--ssl-certfile`, "
125
- "`--ssl-keyfile`, and `—-ssl-ca-certfile` to create a secure "
126
- "connection in Fleet API server (gRPC-rere)."
127
- )
128
- if transport_type == TRANSPORT_TYPE_REST:
129
- if args.ssl_certfile and args.ssl_keyfile:
130
- if not isfile(args.ssl_certfile):
131
- sys.exit("Path argument `--ssl-certfile` does not point to a file.")
132
- if not isfile(args.ssl_keyfile):
133
- sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
134
- certificates = (
135
- b"",
136
- Path(args.ssl_certfile).read_bytes(), # server certificate
137
- Path(args.ssl_keyfile).read_bytes(), # server private key
138
- )
139
- return certificates
140
- if args.ssl_certfile or args.ssl_keyfile:
141
- sys.exit(
142
- "You need to provide valid file paths to `--ssl-certfile` "
143
- "and `--ssl-keyfile` to create a secure connection "
144
- "in Fleet API server (REST, experimental)."
145
- )
105
+ if args.ssl_certfile and args.ssl_keyfile and args.ssl_ca_certfile:
106
+ if not isfile(args.ssl_ca_certfile):
107
+ sys.exit("Path argument `--ssl-ca-certfile` does not point to a file.")
108
+ if not isfile(args.ssl_certfile):
109
+ sys.exit("Path argument `--ssl-certfile` does not point to a file.")
110
+ if not isfile(args.ssl_keyfile):
111
+ sys.exit("Path argument `--ssl-keyfile` does not point to a file.")
112
+ certificates = (
113
+ Path(args.ssl_ca_certfile).read_bytes(), # CA certificate
114
+ Path(args.ssl_certfile).read_bytes(), # server certificate
115
+ Path(args.ssl_keyfile).read_bytes(), # server private key
116
+ )
117
+ return certificates
118
+ if args.ssl_certfile or args.ssl_keyfile or args.ssl_ca_certfile:
119
+ sys.exit(
120
+ "You need to provide valid file paths to `--ssl-certfile`, "
121
+ "`--ssl-keyfile`, and `—-ssl-ca-certfile` to create a secure "
122
+ "connection in Fleet API server (gRPC-rere)."
123
+ )
146
124
  log(
147
125
  ERROR,
148
126
  "Certificates are required unless running in insecure mode. "
flwr/common/config.py CHANGED
@@ -23,6 +23,7 @@ from pathlib import Path
23
23
  from typing import IO, Any, Optional, TypeVar, Union, cast, get_args
24
24
 
25
25
  import tomli
26
+ import typer
26
27
 
27
28
  from flwr.common.constant import (
28
29
  APP_DIR,
@@ -233,8 +234,20 @@ def parse_config_args(
233
234
 
234
235
  matches = pattern.findall(config_line)
235
236
  toml_str = "\n".join(f"{k} = {v}" for k, v in matches)
236
- overrides.update(tomli.loads(toml_str))
237
- flat_overrides = flatten_dict(overrides) if flatten else overrides
237
+ try:
238
+ overrides.update(tomli.loads(toml_str))
239
+ flat_overrides = flatten_dict(overrides) if flatten else overrides
240
+ except tomli.TOMLDecodeError as err:
241
+ typer.secho(
242
+ "❌ The provided configuration string is in an invalid format. "
243
+ "The correct format should be, e.g., 'key1=123 key2=false "
244
+ 'key3="string"\', where values must be of type bool, int, '
245
+ "string, or float. Ensure proper formatting with "
246
+ "space-separated key-value pairs.",
247
+ fg=typer.colors.RED,
248
+ bold=True,
249
+ )
250
+ raise typer.Exit(code=1) from err
238
251
 
239
252
  return flat_overrides
240
253
 
flwr/common/object_ref.py CHANGED
@@ -19,13 +19,10 @@ import ast
19
19
  import importlib
20
20
  import sys
21
21
  from importlib.util import find_spec
22
- from logging import WARN
23
22
  from pathlib import Path
24
23
  from threading import Lock
25
24
  from typing import Any, Optional, Union
26
25
 
27
- from .logger import log
28
-
29
26
  OBJECT_REF_HELP_STR = """
30
27
  \n\nThe object reference string should have the form <module>:<attribute>. Valid
31
28
  examples include `client:app` and `project.package.module:wrapper.app`. It must
@@ -171,17 +168,6 @@ def load_app( # pylint: disable= too-many-branches
171
168
  # Import the module
172
169
  if module_str not in sys.modules:
173
170
  module = importlib.import_module(module_str)
174
- # Hack: `tabnet` does not work with `importlib.reload`
175
- elif "tabnet" in sys.modules:
176
- log(
177
- WARN,
178
- "Cannot reload module `%s` from disk due to compatibility issues "
179
- "with the `tabnet` library. The module will be loaded from the "
180
- "cache instead. If you experience issues, consider restarting "
181
- "the application.",
182
- module_str,
183
- )
184
- module = sys.modules[module_str]
185
171
  else:
186
172
  module = sys.modules[module_str]
187
173
  _reload_modules(project_dir)
flwr/server/app.py CHANGED
@@ -265,7 +265,7 @@ def run_superlink() -> None:
265
265
  simulationio_address, _, _ = _format_address(args.simulationio_api_address)
266
266
 
267
267
  # Obtain certificates
268
- certificates = try_obtain_server_certificates(args, args.fleet_api_type)
268
+ certificates = try_obtain_server_certificates(args)
269
269
 
270
270
  # Disable the user auth TLS check if args.disable_oidc_tls_cert_verification is
271
271
  # provided
@@ -353,17 +353,13 @@ def run_superlink() -> None:
353
353
  ) is None:
354
354
  flwr_exit(ExitCode.COMMON_MISSING_EXTRA_REST)
355
355
 
356
- _, ssl_certfile, ssl_keyfile = (
357
- certificates if certificates is not None else (None, None, None)
358
- )
359
-
360
356
  fleet_thread = threading.Thread(
361
357
  target=_run_fleet_api_rest,
362
358
  args=(
363
359
  host,
364
360
  port,
365
- ssl_keyfile,
366
- ssl_certfile,
361
+ args.ssl_keyfile,
362
+ args.ssl_certfile,
367
363
  state_factory,
368
364
  ffs_factory,
369
365
  num_workers,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.15.0.dev20250130
3
+ Version: 1.16.0.dev20250201
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -12,7 +12,7 @@ flwr/cli/install.py,sha256=-RnrYGejN_zyXXp_CoddSQwoQfRTWWyt9WYlxphJzyU,8180
12
12
  flwr/cli/log.py,sha256=vcO-r5EIc127mOQ26uxKVITX-w_Zib7AxSVuuN70_JY,6671
13
13
  flwr/cli/login/__init__.py,sha256=6_9zOzbPOAH72K2wX3-9dXTAbS7Mjpa5sEn2lA6eHHI,800
14
14
  flwr/cli/login/login.py,sha256=iNnNF1bvV0n8Z-vNc89azFNA73JqKZlO1s5OF2atsTc,3917
15
- flwr/cli/ls.py,sha256=5KCHdctN5f5GkCAkbZSC1OuKdhmLzobINpltsdtDtQU,11383
15
+ flwr/cli/ls.py,sha256=cm3NuY1sFq51xVRhUG0MbAfVTrRSjJ1HMIubde80LuY,11433
16
16
  flwr/cli/new/__init__.py,sha256=pOQtPT9W4kCIttcKne5m-FtJbvTqdjTVJxzQ9AUYK8I,790
17
17
  flwr/cli/new/new.py,sha256=scyyKt8mzkc3El1bypgkHjKwVQEc2-q4I50PxriPFdI,9922
18
18
  flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
@@ -58,18 +58,18 @@ flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=XlJqA4Ix_PloO_zJLhjiN
58
58
  flwr/cli/new/templates/app/code/task.sklearn.py.tpl,sha256=SeIIo0rr_6ffn4Qx2xELD18jYXCkcW__NWtYEDXCICM,1843
59
59
  flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
60
60
  flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
61
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=O4BIe8wKupf0r_xqgKuT8DbUUKvbG8bhEmv8x0cdRBo,2666
62
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=j1SG4rIeoSil6EG0SF8PdeBsuLch0Zc-uh_qjmin260,1873
63
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=f5GpZjHDeJvy0yXBq9T4O2TK-T-e4-JQZ2gbCOkH698,1143
64
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=7NScYo-h9BUIwDsMUrmVfOKgdVDKUDSf7mj7yEMHC2M,673
65
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=FfcqHuKmq6uHMEQthhiVDmuv0KzheLqrG8oBfk54hns,744
66
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=roGj5SIPgZhWNwLRiDAxkmc7hO9Nsm94KADs3TdfQ6I,611
67
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=fdj7M8fSaOZVsoIpryHdzYcgL5I0nVWqnZQurj02xLs,710
68
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=35EisD-7h4MmWyRVC6NMqKDO-pS9nUBTNQD8Ax1AmGY,686
69
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=1X_IlLswBnU65nIj7CgpPbhqWCPQRXp5o5SG-kIrX5w,710
61
+ flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=66VcEv65u2o9P0N8Ys2DLA1C7hoviC7ItjRJGGXHYfk,2666
62
+ flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=aMGH_6H4Ki8bCTyfB2tlChCe-_LUPIVqgrRYvPXMGok,1873
63
+ flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=A5NfTb5imtwdAxIg5Og-cZnM8tPpFLqeI_LVJxu49pE,1143
64
+ flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=Sq6WZ2rSVaCh0jVxKekPTTZAhBKhGi-SHELyFwe-Z4E,673
65
+ flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=qDRaAmfibfIhbf43-j1kjJwpVAb-nd9o9N6KfWsyFZw,744
66
+ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=_gOb3yv8XuiYNaOVY0uEO6KNoshFE8ZLvlDgbPxkqS4,611
67
+ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=TNfLYgCA5vVNcmqbV2G2dsHeNjx4dXiDIcD8mNoxUMI,710
68
+ flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=hVII9kdYRx_sbKhQC5WHDvhPhOdO5JW-JO9CNQc-hr0,686
69
+ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=ctdB84ZADY3LH6f88SX-iCSzRTDh_1vjSv-v2Oa5cgo,710
70
70
  flwr/cli/run/__init__.py,sha256=cCsKVB0SFzh2b3QmGba6BHckB85xlhjh3mh4pBpACtY,790
71
71
  flwr/cli/run/run.py,sha256=kEOYKin9qPJy8SODxcAvIWk-OskKPsxvcbvhDhf2VD4,8299
72
- flwr/cli/stop.py,sha256=DBCKg9AhB1WcJsyqfkHKR1_V_yT7D32zqa9QhmX9IAU,4926
72
+ flwr/cli/stop.py,sha256=E4TGynmYQss5iWJ_fjSdYIW8nrNta2KOiK4sfvHKO_g,4976
73
73
  flwr/cli/utils.py,sha256=hd6XUqu4Ty3m0mEtulQb1f_JV-W65fV_1SGAYCe5Vxs,11226
74
74
  flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
75
75
  flwr/client/app.py,sha256=tNnef5wGVfqMiiGiWzAuULyy1QpvCKukiRmNi_a2cQc,34261
@@ -109,14 +109,14 @@ flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3
109
109
  flwr/client/rest_client/connection.py,sha256=9_JDGHkmaiPgk6CmcQId56Ia1ucQfrqcpNOUObdZaZU,13008
110
110
  flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
111
111
  flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
112
- flwr/client/supernode/app.py,sha256=q-hOZUpvxN64Eo4uBe_Om7uMneIE_ux5fyNp7siINxY,10142
112
+ flwr/client/supernode/app.py,sha256=oBbggh56HoieksBkTdDHAJC8VUFbrmGOP0-D9wdcZek,9265
113
113
  flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
114
114
  flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
115
115
  flwr/common/address.py,sha256=9KNYE69WW_QVcyumsux3Qn1wmn4J7f13Y9nHASpvzbA,3018
116
- flwr/common/args.py,sha256=bCvtG0hhh_hVjl9NoWsY_g7kLMIN3jCN7B883HvZ7hg,6223
116
+ flwr/common/args.py,sha256=MgkTUXACuySHyNdxrb7-pK0_R-S2Q7W5MnE3onYUf5I,5183
117
117
  flwr/common/auth_plugin/__init__.py,sha256=1Y8Oj3iB49IHDu9tvDih1J74Ygu7k85V9s2A4WORPyA,887
118
118
  flwr/common/auth_plugin/auth_plugin.py,sha256=wgDorBUB4IkK6twQ8vNawRVz7BDPmKdXZBNLqhU9RSs,3871
119
- flwr/common/config.py,sha256=n6T5Vi6BUFul37GUpKp9Doqnz35phJqSud_G3ySWlIQ,13336
119
+ flwr/common/config.py,sha256=SAkG3BztnA6iupXxF3GAIpGmWVVCH0ptyMpC9yjr_14,13965
120
120
  flwr/common/constant.py,sha256=mw2H-rTFI5Lwv8EK2dlW5RDAynQWeSawcwup2p0vLN4,6419
121
121
  flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
122
122
  flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
@@ -130,7 +130,7 @@ flwr/common/exit_handlers.py,sha256=Dke87CC6d6b6kqkC2mF0I4JsP4mHhlQTFxkS4sKKgyw,
130
130
  flwr/common/grpc.py,sha256=K60AIvIqH0CvkkiqBfw5HoxQfbFOL2DrhKPjbZ8raIE,9786
131
131
  flwr/common/logger.py,sha256=Hund1C6bEhMw3GemlzuFK22tXZ27YeHLrFB0b4LP5f8,13041
132
132
  flwr/common/message.py,sha256=Zv4ID2BLQsbff0F03DI_MeFoHbSqVZAdDD9NcKYv6Zo,13832
133
- flwr/common/object_ref.py,sha256=fIXf8aP5mG6Nuni7dvcKK5Di3zRfRWGs4ljvqIXplds,10115
133
+ flwr/common/object_ref.py,sha256=Mv8OE6f9wmLs_KQWt8aPV5aw-g6fgWDfj28L2b8Jl-Y,9514
134
134
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
135
135
  flwr/common/pyproject.py,sha256=vEAxl800XiJ1JNJDui8vuVV-08msnB6hLt7o95viZl0,1386
136
136
  flwr/common/record/__init__.py,sha256=LUixpq0Z-lMJwCIu1-4u5HfvRPjRMRgoAc6YJQ6UEOs,1055
@@ -217,7 +217,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
217
217
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
218
218
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
219
  flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
220
- flwr/server/app.py,sha256=_WxQwMtaiihPcoZ27b4upnv1zAQN_NT9VMXARuYNFfU,30687
220
+ flwr/server/app.py,sha256=H7TAfGDl4o8OJtM5_jCzveZXuPJjTXMEb4zuiUQyKeI,30535
221
221
  flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
222
222
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
223
223
  flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
@@ -327,8 +327,8 @@ flwr/superexec/exec_servicer.py,sha256=X10ILT-AoGMrB3IgI2mBe9i-QcIVUAl9bucuqVOPY
327
327
  flwr/superexec/exec_user_auth_interceptor.py,sha256=K06OU-l4LnYhTDg071hGJuOaQWEJbZsYi5qxUmmtiG0,3704
328
328
  flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
329
329
  flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
330
- flwr_nightly-1.15.0.dev20250130.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
331
- flwr_nightly-1.15.0.dev20250130.dist-info/METADATA,sha256=dbjtqlBMS612vZE-bOQsxhq7gtEDGtyPWAxDiMqS_LM,15873
332
- flwr_nightly-1.15.0.dev20250130.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
333
- flwr_nightly-1.15.0.dev20250130.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
334
- flwr_nightly-1.15.0.dev20250130.dist-info/RECORD,,
330
+ flwr_nightly-1.16.0.dev20250201.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
331
+ flwr_nightly-1.16.0.dev20250201.dist-info/METADATA,sha256=sZvEKS8wkSWFRGminMpW_2wH1B4OsQY1cm53-2vYfRU,15873
332
+ flwr_nightly-1.16.0.dev20250201.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
333
+ flwr_nightly-1.16.0.dev20250201.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
334
+ flwr_nightly-1.16.0.dev20250201.dist-info/RECORD,,