flwr-nightly 1.15.0.dev20250129__py3-none-any.whl → 1.15.2.dev20250214__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.
Files changed (68) hide show
  1. flwr/cli/auth_plugin/oidc_cli_plugin.py +2 -2
  2. flwr/cli/ls.py +3 -2
  3. flwr/cli/new/templates/app/README.baseline.md.tpl +4 -4
  4. flwr/cli/new/templates/app/README.md.tpl +3 -2
  5. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +4 -4
  6. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +2 -2
  7. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +4 -4
  8. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +2 -2
  9. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +2 -2
  10. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +2 -2
  11. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +2 -2
  12. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +3 -3
  13. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  14. flwr/cli/stop.py +3 -2
  15. flwr/cli/utils.py +3 -3
  16. flwr/client/supernode/app.py +4 -28
  17. flwr/common/args.py +25 -47
  18. flwr/common/config.py +15 -2
  19. flwr/common/constant.py +9 -7
  20. flwr/common/exit_handlers.py +17 -29
  21. flwr/common/logger.py +10 -5
  22. flwr/common/object_ref.py +0 -14
  23. flwr/proto/clientappio_pb2.py +3 -13
  24. flwr/proto/clientappio_pb2_grpc.py +12 -63
  25. flwr/proto/error_pb2.py +3 -13
  26. flwr/proto/error_pb2_grpc.py +0 -20
  27. flwr/proto/exec_pb2.py +5 -15
  28. flwr/proto/exec_pb2_grpc.py +24 -105
  29. flwr/proto/fab_pb2.py +3 -13
  30. flwr/proto/fab_pb2_grpc.py +0 -20
  31. flwr/proto/fleet_pb2.py +4 -14
  32. flwr/proto/fleet_pb2_grpc.py +28 -119
  33. flwr/proto/grpcadapter_pb2.py +4 -14
  34. flwr/proto/grpcadapter_pb2_grpc.py +4 -35
  35. flwr/proto/log_pb2.py +3 -13
  36. flwr/proto/log_pb2_grpc.py +0 -20
  37. flwr/proto/message_pb2.py +5 -15
  38. flwr/proto/message_pb2_grpc.py +0 -20
  39. flwr/proto/node_pb2.py +3 -13
  40. flwr/proto/node_pb2_grpc.py +0 -20
  41. flwr/proto/recordset_pb2.py +8 -18
  42. flwr/proto/recordset_pb2_grpc.py +0 -20
  43. flwr/proto/run_pb2.py +6 -16
  44. flwr/proto/run_pb2_grpc.py +0 -20
  45. flwr/proto/serverappio_pb2.py +26 -45
  46. flwr/proto/serverappio_pb2.pyi +0 -62
  47. flwr/proto/serverappio_pb2_grpc.py +47 -264
  48. flwr/proto/serverappio_pb2_grpc.pyi +7 -27
  49. flwr/proto/simulationio_pb2.py +3 -13
  50. flwr/proto/simulationio_pb2_grpc.py +24 -105
  51. flwr/proto/task_pb2.py +9 -19
  52. flwr/proto/task_pb2.pyi +1 -4
  53. flwr/proto/task_pb2_grpc.py +0 -20
  54. flwr/proto/transport_pb2.py +10 -20
  55. flwr/proto/transport_pb2_grpc.py +4 -35
  56. flwr/server/app.py +5 -9
  57. flwr/server/driver/inmemory_driver.py +0 -1
  58. flwr/server/superlink/driver/serverappio_servicer.py +1 -99
  59. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +17 -4
  60. flwr/server/superlink/fleet/message_handler/message_handler.py +0 -4
  61. flwr/server/superlink/fleet/vce/vce_api.py +0 -1
  62. flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -6
  63. flwr/server/utils/validator.py +0 -3
  64. {flwr_nightly-1.15.0.dev20250129.dist-info → flwr_nightly-1.15.2.dev20250214.dist-info}/METADATA +4 -4
  65. {flwr_nightly-1.15.0.dev20250129.dist-info → flwr_nightly-1.15.2.dev20250214.dist-info}/RECORD +68 -68
  66. {flwr_nightly-1.15.0.dev20250129.dist-info → flwr_nightly-1.15.2.dev20250214.dist-info}/LICENSE +0 -0
  67. {flwr_nightly-1.15.0.dev20250129.dist-info → flwr_nightly-1.15.2.dev20250214.dist-info}/WHEEL +0 -0
  68. {flwr_nightly-1.15.0.dev20250129.dist-info → flwr_nightly-1.15.2.dev20250214.dist-info}/entry_points.txt +0 -0
@@ -25,6 +25,7 @@ from flwr.common import now
25
25
  from flwr.common.constant import (
26
26
  PUBLIC_KEY_HEADER,
27
27
  SIGNATURE_HEADER,
28
+ SYSTEM_TIME_TOLERANCE,
28
29
  TIMESTAMP_HEADER,
29
30
  TIMESTAMP_TOLERANCE,
30
31
  )
@@ -38,10 +39,15 @@ from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
38
39
  )
39
40
  from flwr.server.superlink.linkstate import LinkStateFactory
40
41
 
42
+ MIN_TIMESTAMP_DIFF = -SYSTEM_TIME_TOLERANCE
43
+ MAX_TIMESTAMP_DIFF = TIMESTAMP_TOLERANCE + SYSTEM_TIME_TOLERANCE
41
44
 
42
- def _unary_unary_rpc_terminator(message: str) -> grpc.RpcMethodHandler:
45
+
46
+ def _unary_unary_rpc_terminator(
47
+ message: str, code: Any = grpc.StatusCode.UNAUTHENTICATED
48
+ ) -> grpc.RpcMethodHandler:
43
49
  def terminate(_request: GrpcMessage, context: grpc.ServicerContext) -> GrpcMessage:
44
- context.abort(grpc.StatusCode.UNAUTHENTICATED, message)
50
+ context.abort(code, message)
45
51
  raise RuntimeError("Should not reach this point") # Make mypy happy
46
52
 
47
53
  return grpc.unary_unary_rpc_method_handler(terminate)
@@ -64,7 +70,7 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
64
70
  self.state_factory = state_factory
65
71
  self.auto_auth = auto_auth
66
72
 
67
- def intercept_service(
73
+ def intercept_service( # pylint: disable=too-many-return-statements
68
74
  self,
69
75
  continuation: Callable[[Any], Any],
70
76
  handler_call_details: grpc.HandlerCallDetails,
@@ -75,6 +81,13 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
75
81
  metadata sent by the node. Continue RPC call if node is authenticated, else,
76
82
  terminate RPC call by setting context to abort.
77
83
  """
84
+ # Filter out non-Fleet service calls
85
+ if not handler_call_details.method.startswith("/flwr.proto.Fleet/"):
86
+ return _unary_unary_rpc_terminator(
87
+ "This request should be sent to a different service.",
88
+ grpc.StatusCode.FAILED_PRECONDITION,
89
+ )
90
+
78
91
  state = self.state_factory.state()
79
92
  metadata_dict = dict(handler_call_details.invocation_metadata)
80
93
 
@@ -100,7 +113,7 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
100
113
  current = now()
101
114
  time_diff = current - datetime.datetime.fromisoformat(timestamp_iso)
102
115
  # Abort the RPC call if the timestamp is too old or in the future
103
- if not 0 < time_diff.total_seconds() < TIMESTAMP_TOLERANCE:
116
+ if not MIN_TIMESTAMP_DIFF < time_diff.total_seconds() < MAX_TIMESTAMP_DIFF:
104
117
  return _unary_unary_rpc_terminator("Invalid timestamp")
105
118
 
106
119
  # Continue the RPC call
@@ -15,7 +15,6 @@
15
15
  """Fleet API message handlers."""
16
16
 
17
17
 
18
- import time
19
18
  from typing import Optional
20
19
  from uuid import UUID
21
20
 
@@ -122,9 +121,6 @@ def push_messages(
122
121
  if abort_msg:
123
122
  raise InvalidRunStatusException(abort_msg)
124
123
 
125
- # Set pushed_at (timestamp in seconds)
126
- task_res.task.pushed_at = time.time()
127
-
128
124
  # Store TaskRes in State
129
125
  message_id: Optional[UUID] = state.store_task_res(task_res=task_res)
130
126
 
@@ -140,7 +140,6 @@ def worker(
140
140
  # Convert to TaskRes
141
141
  task_res = message_to_taskres(out_mssg)
142
142
  # Store TaskRes in state
143
- task_res.task.pushed_at = time.time()
144
143
  taskres_queue.put(task_res)
145
144
 
146
145
 
@@ -126,7 +126,6 @@ CREATE TABLE IF NOT EXISTS task_ins(
126
126
  consumer_node_id INTEGER,
127
127
  created_at REAL,
128
128
  delivered_at TEXT,
129
- pushed_at REAL,
130
129
  ttl REAL,
131
130
  ancestry TEXT,
132
131
  task_type TEXT,
@@ -144,7 +143,6 @@ CREATE TABLE IF NOT EXISTS task_res(
144
143
  consumer_node_id INTEGER,
145
144
  created_at REAL,
146
145
  delivered_at TEXT,
147
- pushed_at REAL,
148
146
  ttl REAL,
149
147
  ancestry TEXT,
150
148
  task_type TEXT,
@@ -1053,7 +1051,6 @@ def task_ins_to_dict(task_msg: TaskIns) -> dict[str, Any]:
1053
1051
  "consumer_node_id": task_msg.task.consumer.node_id,
1054
1052
  "created_at": task_msg.task.created_at,
1055
1053
  "delivered_at": task_msg.task.delivered_at,
1056
- "pushed_at": task_msg.task.pushed_at,
1057
1054
  "ttl": task_msg.task.ttl,
1058
1055
  "ancestry": ",".join(task_msg.task.ancestry),
1059
1056
  "task_type": task_msg.task.task_type,
@@ -1072,7 +1069,6 @@ def task_res_to_dict(task_msg: TaskRes) -> dict[str, Any]:
1072
1069
  "consumer_node_id": task_msg.task.consumer.node_id,
1073
1070
  "created_at": task_msg.task.created_at,
1074
1071
  "delivered_at": task_msg.task.delivered_at,
1075
- "pushed_at": task_msg.task.pushed_at,
1076
1072
  "ttl": task_msg.task.ttl,
1077
1073
  "ancestry": ",".join(task_msg.task.ancestry),
1078
1074
  "task_type": task_msg.task.task_type,
@@ -1099,7 +1095,6 @@ def dict_to_task_ins(task_dict: dict[str, Any]) -> TaskIns:
1099
1095
  ),
1100
1096
  created_at=task_dict["created_at"],
1101
1097
  delivered_at=task_dict["delivered_at"],
1102
- pushed_at=task_dict["pushed_at"],
1103
1098
  ttl=task_dict["ttl"],
1104
1099
  ancestry=task_dict["ancestry"].split(","),
1105
1100
  task_type=task_dict["task_type"],
@@ -1127,7 +1122,6 @@ def dict_to_task_res(task_dict: dict[str, Any]) -> TaskRes:
1127
1122
  ),
1128
1123
  created_at=task_dict["created_at"],
1129
1124
  delivered_at=task_dict["delivered_at"],
1130
- pushed_at=task_dict["pushed_at"],
1131
1125
  ttl=task_dict["ttl"],
1132
1126
  ancestry=task_dict["ancestry"].split(","),
1133
1127
  task_type=task_dict["task_type"],
@@ -45,9 +45,6 @@ def validate_task_ins_or_res(tasks_ins_res: Union[TaskIns, TaskRes]) -> list[str
45
45
  validation_errors.append("`delivered_at` must be an empty str")
46
46
  if tasks_ins_res.task.ttl <= 0:
47
47
  validation_errors.append("`ttl` must be higher than zero")
48
- if tasks_ins_res.task.pushed_at < 1711497600.0:
49
- # unix timestamp of 27 March 2024 00h:00m:00s UTC
50
- validation_errors.append("`pushed_at` is not a recent timestamp")
51
48
 
52
49
  # Verify TTL and created_at time
53
50
  current_time = time.time()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.15.0.dev20250129
3
+ Version: 1.15.2.dev20250214
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -33,14 +33,14 @@ Classifier: Typing :: Typed
33
33
  Provides-Extra: rest
34
34
  Provides-Extra: simulation
35
35
  Requires-Dist: cryptography (>=43.0.1,<44.0.0)
36
- Requires-Dist: grpcio (>=1.69.0,<2.0.0)
36
+ Requires-Dist: grpcio (>=1.62.3,<2.0.0,!=1.65.0)
37
37
  Requires-Dist: iterators (>=0.0.2,<0.0.3)
38
38
  Requires-Dist: numpy (>=1.26.0,<3.0.0)
39
39
  Requires-Dist: pathspec (>=0.12.1,<0.13.0)
40
- Requires-Dist: protobuf (>=5.29.3,<6.0.0)
40
+ Requires-Dist: protobuf (>=4.21.6,<5.0.0)
41
41
  Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
42
42
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
43
- Requires-Dist: ray (==2.10.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "simulation")
43
+ Requires-Dist: ray (==2.31.0) ; (python_version >= "3.9" and python_version < "3.13") and (extra == "simulation")
44
44
  Requires-Dist: requests (>=2.31.0,<3.0.0)
45
45
  Requires-Dist: rich (>=13.5.0,<14.0.0)
46
46
  Requires-Dist: starlette (>=0.45.2,<0.46.0) ; extra == "rest"
@@ -2,7 +2,7 @@ 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=UeXrW5gxrUnFViDjAMIxGNZZKwu3a1oAj83v53IWIWM,1382
4
4
  flwr/cli/auth_plugin/__init__.py,sha256=FyaoqPzcxlBTFfJ2sBRC5USwQLmAhFr5KuBwfMO4bmo,1052
5
- flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=nooDDWO_3bWYqi_KBrsO3YteDIIuvTZD30XymbvRPlA,5374
5
+ flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=gIhW6Jg9QAo-jL43LYPpw_kn7pdUZZae0s0H8dEgjLM,5384
6
6
  flwr/cli/build.py,sha256=4P70i_FnUs0P21aTwjTXtFQSAfY-C04hUDF-2npfJdo,6345
7
7
  flwr/cli/cli_user_auth_interceptor.py,sha256=aZepPA298s-HjGmkJGMvI_uZe72O5aLC3jri-ilG53o,3126
8
8
  flwr/cli/config_utils.py,sha256=LelRR960I36n1IPw7BIu79fKoOh0JePA58kAtoXSTH0,7518
@@ -12,15 +12,15 @@ 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
19
19
  flwr/cli/new/templates/app/.gitignore.tpl,sha256=HZJcGQoxp7aUzaPg8Uqch3kNrIESwr9yjimDxJYgXVY,3104
20
20
  flwr/cli/new/templates/app/LICENSE.tpl,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
21
- flwr/cli/new/templates/app/README.baseline.md.tpl,sha256=4dg2aBS-NIleVyDlxsG8m65Af6LIJ-pZA5ICjGFU5XA,9641
21
+ flwr/cli/new/templates/app/README.baseline.md.tpl,sha256=oClo5eR0iLuPzBT7uS3ikhNRAnySz_lhkHFElixKyJM,9640
22
22
  flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=QSG51uifue2KVZz2ZNw8kmOStS7svC2AQ2gTa5E7Bhs,3326
23
- flwr/cli/new/templates/app/README.md.tpl,sha256=6HBXeD0PBLAnx1IYWGsXzLmDn52jPEk0SF24omhhczE,949
23
+ flwr/cli/new/templates/app/README.md.tpl,sha256=qZ6XHeCdSoDwtJqgcyi-ChgOCLMwQ3E42rcY-9qhlUY,1392
24
24
  flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
25
25
  flwr/cli/new/templates/app/code/__init__.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
26
26
  flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
@@ -58,19 +58,19 @@ 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=5-xGWgb1s0c4E5KXfQqWzVziJXIsUp1cGwZEsMEI31Q,2666
62
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=-XdX44M9o6dl-EDBLtHLQejFGQlwQnjATgmEpA8cuq4,1873
63
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=QPxFT3_7RSUVwy8jjT6SeWmV9dl2FQ26gUhdp8O7CpI,1143
64
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=cFFgI0zzzyThm38iXy9OLBkPpZz8mOP1qSagBJvwxGQ,673
65
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=1qeTW-GHMAWr-vuMAJ-eijco9IIsftdBeqNH7g8x3Zw,744
66
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=nU-ij9nPXxmPgE2SGapXnRfghye8g_Fo1_ub5XpaKAE,612
67
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=PA_dEtWkY6Wf3Ektc9DvSKE81er3yDntf_VTtC1nDHc,710
68
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=d7TwWH-QJN0j-9rs9zHnng_bHeHV7mk138KXqdv5BoE,686
69
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=r0SZnvoR5a5mEWKJIvQ3rW8C6-2DkhaC8A1fTA0avm0,710
61
+ flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=KaRdKS6Um_7_BwaC2JyPVssvO0XoqugXr3uScQW_gmQ,2666
62
+ flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=V0ARllDsjHQU7PkgsPk2wQKmcWkbiTYNnDzrQaH8PX8,1873
63
+ flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=-br1AywMPM2TdOKwooz_jotI4iUoqLMmDkdVIV5txYM,1143
64
+ flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=p8v65ymJtY50uh8kSyzAOYN34mvf2oQti2yN8d4T_gM,673
65
+ flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=faz_lde3WU4HAJK_3h2SDR8Kejsv9P1jUHQQKyKdyZM,744
66
+ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=xP-U8w8_qim3BS5pTa9QYj38H2DfdcY24mKOdZRqkus,611
67
+ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=wLYfJlglT6k3Q5t3PGC43H5eVNouDnEqwK19KHUEj8o,710
68
+ flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=9p0NzvIHoM0ZvlDUpa1lBMwIY_kpigmNCM7-5r3xWcg,686
69
+ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=C_kmVlZ-kqzcBJfMzsimE0voz1UbJMQqO_hfZQjMmg0,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
73
- flwr/cli/utils.py,sha256=MODJi_r7NmGWSqNmqHjJS_4Zj_uhSnNg68YoSs1vAuw,11220
72
+ flwr/cli/stop.py,sha256=E4TGynmYQss5iWJ_fjSdYIW8nrNta2KOiK4sfvHKO_g,4976
73
+ flwr/cli/utils.py,sha256=D9XcpxzwkGPNdwX16o0kI-sYnRDMlWYyKNIpz6npRhQ,11236
74
74
  flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
75
75
  flwr/client/app.py,sha256=tNnef5wGVfqMiiGiWzAuULyy1QpvCKukiRmNi_a2cQc,34261
76
76
  flwr/client/client.py,sha256=8o58nd9o6ZFcMIaVYPGcV4MSjBG4H0oFgWiv8ZEO3oA,7895
@@ -109,15 +109,15 @@ 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
120
- flwr/common/constant.py,sha256=mw2H-rTFI5Lwv8EK2dlW5RDAynQWeSawcwup2p0vLN4,6419
119
+ flwr/common/config.py,sha256=SAkG3BztnA6iupXxF3GAIpGmWVVCH0ptyMpC9yjr_14,13965
120
+ flwr/common/constant.py,sha256=AdNCrHi4sgMCecdX7hHWxMFz3y9pWsjSGU25mA4OJyE,6619
121
121
  flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
122
122
  flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
123
123
  flwr/common/differential_privacy.py,sha256=YA01NqjddKNAEVmf7hXmOVxOjhekgzvJudk3mBGq-2k,6148
@@ -126,11 +126,11 @@ flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
126
126
  flwr/common/exit/__init__.py,sha256=-ZOJYLaNnR729a7VzZiFsLiqngzKQh3xc27svYStZ_Q,826
127
127
  flwr/common/exit/exit.py,sha256=DmZFyksp-w1sFDQekq5Z-qfnr-ivCAv78aQkqj-TDps,3458
128
128
  flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E,3470
129
- flwr/common/exit_handlers.py,sha256=Dke87CC6d6b6kqkC2mF0I4JsP4mHhlQTFxkS4sKKgyw,3308
129
+ flwr/common/exit_handlers.py,sha256=yclujry30954o0lI7vtknTajskPCvK8TXw2V3RdldXU,3174
130
130
  flwr/common/grpc.py,sha256=K60AIvIqH0CvkkiqBfw5HoxQfbFOL2DrhKPjbZ8raIE,9786
131
- flwr/common/logger.py,sha256=xgS-oEN6U54vEYoWdX0U0ymqMfndhK0-ePiGtmjHdmU,12852
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
@@ -155,69 +155,69 @@ flwr/common/telemetry.py,sha256=APKVubU_zJNrE-M_rip6S6Fsu41DxY3tAjFWNOgTmC0,9086
155
155
  flwr/common/typing.py,sha256=IMgs_7nDJWn8Eb7y16Hl4HC3imQV7_Hdla1IFs3B5u8,6382
156
156
  flwr/common/version.py,sha256=aNSxLL49RKeLz8sPcZrsTEWtrAeQ0uxu6tjmfba4O60,1325
157
157
  flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
158
- flwr/proto/clientappio_pb2.py,sha256=C42q8Efr7jDexSAUBs8RlDggBCylu615Lh0si8habX0,3954
158
+ flwr/proto/clientappio_pb2.py,sha256=aroQDv0D2GquQ5Ujqml7n7l6ObZoXqMvDa0XVO-_8Cc,3703
159
159
  flwr/proto/clientappio_pb2.pyi,sha256=iL6pOPmnot5wP3aXGiDfiUpp-eJIkysyju0ebPehS8Y,5670
160
- flwr/proto/clientappio_pb2_grpc.py,sha256=dHaaQB535Fvneec3gwXOTPTQ-l495GUkBS3qq-5WpCI,7452
160
+ flwr/proto/clientappio_pb2_grpc.py,sha256=G35GhZ3iEOL8N6tu7Kn_ip4QUx4O2HveXngHAuU2YEM,6112
161
161
  flwr/proto/clientappio_pb2_grpc.pyi,sha256=cybktpMPaIMwrItd8hQaQDnRv4zNu_wgRddSqR9REyI,1822
162
- flwr/proto/error_pb2.py,sha256=yU22xOnidohZg2dAI4RPdCb04UVu-3B4NfujLPCRauA,1329
162
+ flwr/proto/error_pb2.py,sha256=PQVWrfjVPo88ql_KgV9nCxyQNCcV9PVfmcw7sOzTMro,1084
163
163
  flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
164
- flwr/proto/error_pb2_grpc.py,sha256=8-n4DqTGZuhUUcYLjPcv-d3C19n8fFBIL3RQCy5E4OE,897
164
+ flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
165
165
  flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
166
- flwr/proto/exec_pb2.py,sha256=mYfDOApEuXaaC-hF6HBgbvxhHpp_VoXqwF6tAbRCiXk,5922
166
+ flwr/proto/exec_pb2.py,sha256=HYvEJ1LtRMpEtUFoo4cgl33QQ8fNisOOEZQlJbTrvTk,5664
167
167
  flwr/proto/exec_pb2.pyi,sha256=2vbzq2OOYM5GI-Tug4eVM5J6xvNvSFtR8m3MsP-i-Q4,9477
168
- flwr/proto/exec_pb2_grpc.py,sha256=3nGc21zqZ_vWda_k1Vzx8hMlZ2sNSweNkjm7ABDfls0,12278
168
+ flwr/proto/exec_pb2_grpc.py,sha256=-bdLqjsqQxK9R8LIiZaKlLKH2NmjR50EaGKTPPTwFhI,10445
169
169
  flwr/proto/exec_pb2_grpc.pyi,sha256=M5k-FzeLWxal7zt28LJfzMWWRxmNknTC2BzHRRMa1sQ,2914
170
- flwr/proto/fab_pb2.py,sha256=Q2-yT---MrRdzxVddy_xxQUtBIkrPU-odQ3qYaOfBwc,1870
170
+ flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
171
171
  flwr/proto/fab_pb2.pyi,sha256=AMXpiDK0fo3nZWjxsC2E4otSaVjyQbU7iiWKrsSZavs,2395
172
- flwr/proto/fab_pb2_grpc.py,sha256=VO-wNfkShf9z8sb8T4UUq2Pp2jKb8pjnexaSkWh2Xp4,895
172
+ flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
173
173
  flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
174
- flwr/proto/fleet_pb2.py,sha256=SMaSOshdZ65iFU5LpR2T0hl3_1KZ6OuFbTyP9wcBeg4,5070
174
+ flwr/proto/fleet_pb2.py,sha256=mICXsWQuShwkN-9PcksCINE0HwiqZ2343h5_tL6V6A4,4818
175
175
  flwr/proto/fleet_pb2.pyi,sha256=wmDweUv8CLErbPXXrvhUAbUH9JBR9z39y7hOSplXAD4,7895
176
- flwr/proto/fleet_pb2_grpc.py,sha256=tCQRfdm1kz9w1RbqnfLhOkr59Mo5V0jNCmBRDpXdg_4,14264
176
+ flwr/proto/fleet_pb2_grpc.py,sha256=7YoeSCjEfZ-sIVs9CMduH55IaCHin2VZBaxJt9n7acY,12260
177
177
  flwr/proto/fleet_pb2_grpc.pyi,sha256=y9XDpCUW626CnNvAjwzeorEN2thVlJ7OF1LeUnUPIwo,3240
178
- flwr/proto/grpcadapter_pb2.py,sha256=sPB1FbcNIjw5plvQqhd_vynO0-59n9U7G882l6o1z6Y,2101
178
+ flwr/proto/grpcadapter_pb2.py,sha256=PJ8DtfeV29g_y4Z3aNZlSZocLqSxeLmTsYCdOZDYCiE,1843
179
179
  flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
180
- flwr/proto/grpcadapter_pb2_grpc.py,sha256=BLQLCtfra5qGlwyN9VeWpmYKhfxe8POfhYKhrPnhYso,3636
180
+ flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
181
181
  flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
182
- flwr/proto/log_pb2.py,sha256=Zwxi_yx3brrbsPKUpBtktlx97qFi76pFUp5w7vm6_Ok,1636
182
+ flwr/proto/log_pb2.py,sha256=iKaS3MVn1BS4xHu8uGPFCOi1KWtvVx-H9V4jCUIJghs,1393
183
183
  flwr/proto/log_pb2.pyi,sha256=ipuhgo40sAHTcRzCsGI1HwIstr5q0THPNk_cf62YyME,1448
184
- flwr/proto/log_pb2_grpc.py,sha256=jYx0lak15BvbWFkYwcYmAJ17sckFCOHzuDALz43cY5c,895
184
+ flwr/proto/log_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
185
185
  flwr/proto/log_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
186
- flwr/proto/message_pb2.py,sha256=4Diw__FXmNzdjczd3eptVqxDzhMlywx3gcGcmkeS3QY,3450
186
+ flwr/proto/message_pb2.py,sha256=QpHsdMqMUTj30jdLARagAc90UvqpRI7xbtXVE_nw9RM,3189
187
187
  flwr/proto/message_pb2.pyi,sha256=kAFVgSi8j6ZYzkCQ9MkbrpUtVKgZsTYVIoQmcMB6BX0,5735
188
- flwr/proto/message_pb2_grpc.py,sha256=YThZncIoEfLjcVtXqQLRfzOBejIcRcz5_vUrJwgwPow,899
188
+ flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
189
189
  flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
190
- flwr/proto/node_pb2.py,sha256=W9RpawvpAKNLwTzYKNuttVVcIIUS7L8BMMsNTz1yVRI,1289
190
+ flwr/proto/node_pb2.py,sha256=BzZfAWIX7lV62bZr9f7x16lUZcpg-EImxnwxQXgCbYg,1045
191
191
  flwr/proto/node_pb2.pyi,sha256=CPMeIPzUeI5-Csw9sHktV9UBH4GbqiGuYzGQQKftm6Q,616
192
- flwr/proto/node_pb2_grpc.py,sha256=wYepoRvqFZ3T91_QVEozdgW6Ur4Vc9QET326eWAbIwI,896
192
+ flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
193
193
  flwr/proto/node_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
194
- flwr/proto/recordset_pb2.py,sha256=gW4TQJO-XxvttG2vQ0P--veL3kMJA4A1WJCbtJo4Ym0,6651
194
+ flwr/proto/recordset_pb2.py,sha256=DndSkDNEYjdoOaHopgohRGP8lQtmal8yx_Re1wXfuOM,6367
195
195
  flwr/proto/recordset_pb2.pyi,sha256=ypFNvroU4aIlnN0D6W4XAsOfm0UzTfXhxxL1v7u__Ac,15370
196
- flwr/proto/recordset_pb2_grpc.py,sha256=3mSlNzYC2WmM7Veq58NG_z5PSZYrYxuJB-O_kZoZCDk,901
196
+ flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
197
197
  flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
198
- flwr/proto/run_pb2.py,sha256=98ScUqBB5nQCaVnTGIvmK6qvanztkpVL7_Ac0Nb-7xQ,6007
198
+ flwr/proto/run_pb2.py,sha256=_IvmIi3uttPIALjMYExAoUXw7P_rt3I-at_s0yNTIJY,5743
199
199
  flwr/proto/run_pb2.pyi,sha256=i6TEwphuFH94_kT2hZWb_RjndLuphkPrT3C2VP-NnVs,11739
200
- flwr/proto/run_pb2_grpc.py,sha256=X_9bUyS0nKHTHNGeVxBHuD-LOp8-fi1v9O7gMNyb4Q4,895
200
+ flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
201
201
  flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
202
- flwr/proto/serverappio_pb2.py,sha256=7nM9VyIfc1LEpfM0skhcRqL-CzDaqvB_nVhjGxfuwR4,6370
203
- flwr/proto/serverappio_pb2.pyi,sha256=Ibe5Qw1F2zA0pCCoO4teCUvn7yvju1HZLuugpm1KLDM,9401
204
- flwr/proto/serverappio_pb2_grpc.py,sha256=XBGxTLE95hydMffSmity2jR8ZTs_Ygo_WiEI54UF7TM,25506
205
- flwr/proto/serverappio_pb2_grpc.pyi,sha256=_7gnTIDL1vO3shpuu32VXPLW1bPPb6tKSo3qXZqjOw4,6004
206
- flwr/proto/simulationio_pb2.py,sha256=NsEQUcWnyQMz21LPGW53S7BxThmWsjr54STZNLNKonU,3369
202
+ flwr/proto/serverappio_pb2.py,sha256=WijK7rejbb7h6GVK0pTf81Ey5Ltf7A_S7aKlUJWlny4,4908
203
+ flwr/proto/serverappio_pb2.pyi,sha256=8Q81UXbBCArSXnma6-rXUE_vKneCowZjY4W4JmLaH0c,6450
204
+ flwr/proto/serverappio_pb2_grpc.py,sha256=gwc2TbZShtSnR6RYu8d-3UtS6KecwnThYpO2JA4YZ6M,19130
205
+ flwr/proto/serverappio_pb2_grpc.pyi,sha256=_pxplIFYZcuLTs9oA1RcZrCFEsh-33f4yBfhp8UL6f0,5268
206
+ flwr/proto/simulationio_pb2.py,sha256=GOOmivAJPLQ6mPXrfKS8CyYeE6Kk-Q5mInLz5pyZSsU,3117
207
207
  flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
208
- flwr/proto/simulationio_pb2_grpc.py,sha256=KtWe5eXigmfXv3DNoRBgbzfb1QtDCWwo_1uWbDXeT3E,13081
208
+ flwr/proto/simulationio_pb2_grpc.py,sha256=9I3yAfJaeMuG-qH_5Ge45eFOftsIOmL9b8E_xHmcvKw,11232
209
209
  flwr/proto/simulationio_pb2_grpc.pyi,sha256=YHvKtyo7UdbBgdhoN0ndzZeB5vIC3JuR5PAJLrl-OKM,3206
210
- flwr/proto/task_pb2.py,sha256=AuAV3J4s-nlXTG_sCdyH5kXpGLfSG70L6eXNUyPoYmc,2605
211
- flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
212
- flwr/proto/task_pb2_grpc.py,sha256=6W5Fjm-05u4N41fHwhwauBIqyRAU68mjoj7yEku8ufo,896
210
+ flwr/proto/task_pb2.py,sha256=pFKpq2QSvmFQOEpv2bgCG9jPAVauIHXQ9p5ASW-Z6lE,2322
211
+ flwr/proto/task_pb2.pyi,sha256=PZXt-QkD-hFzTlgNVVx6SGvgbTCweBfisivEi_HfDWc,4183
212
+ flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
213
213
  flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
214
- flwr/proto/transport_pb2.py,sha256=xqDF2oI0PzAndH17O80SQkyOT_QF9m7CQ0166He7UDQ,10122
214
+ flwr/proto/transport_pb2.py,sha256=P-jX_tUyk_8xFe-vIUUSfZlHGtk2Ou3A8eXdBKkp5AY,9824
215
215
  flwr/proto/transport_pb2.pyi,sha256=ipHQ03eFBqsxtAuAVefZ2lVr04BZ4YifJCS2eauNmy8,21627
216
- flwr/proto/transport_pb2_grpc.py,sha256=Nvn7oxzm1g1fPiGCGhyKxILDZHYG0CcgjySTzxq-q7s,3600
216
+ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
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=CVj7lDAYJ4GYnBvAIa0R3A8JV5Dt-ATxDOrLxafLFV8,30545
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
@@ -229,7 +229,7 @@ flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
229
229
  flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
230
230
  flwr/server/driver/driver.py,sha256=u_fMfqLYTroTafGCNwKPHI4lttRL-Z5CqeT3_FHSq-Q,5701
231
231
  flwr/server/driver/grpc_driver.py,sha256=3mSws0l83fWD4aq9-MmHFnIfyf4REoAXUkWfyJDHros,9864
232
- flwr/server/driver/inmemory_driver.py,sha256=b1U1PrB_Vpn--vav8SX-sn0THD9BTlV9UFIpuWTWLro,6665
232
+ flwr/server/driver/inmemory_driver.py,sha256=7ZtWDDJa8xupPAHNaDdCE2DOIOIYgrffmJMdKjs3wdA,6616
233
233
  flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
234
234
  flwr/server/run_serverapp.py,sha256=vIPhvJx0i5sEZO4IKM6ruCXmx4ncat76rh0B4KhdhhM,2446
235
235
  flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
@@ -265,7 +265,7 @@ flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbC
265
265
  flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
266
266
  flwr/server/superlink/driver/__init__.py,sha256=5soEK5QSvxNjmJQ-CGTWROc4alSAeU0e9Ad9RDhsd3E,717
267
267
  flwr/server/superlink/driver/serverappio_grpc.py,sha256=UzHwo6qYZMeOhr7nn1iZbcyDSmwvnq_kpYH0mEAndW0,2173
268
- flwr/server/superlink/driver/serverappio_servicer.py,sha256=ewnalJl6FqHZh1K51UzWnq0QCfpxIW2NYjG52OlPf1c,16432
268
+ flwr/server/superlink/driver/serverappio_servicer.py,sha256=Ld_d4ygbvJ7YmsIA8O9oD3E4tBKDY7MlpQzBjDUyvi0,13116
269
269
  flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
270
270
  flwr/server/superlink/ffs/disk_ffs.py,sha256=n_Ah0sQwXGVQ9wj5965nLjdkQQbpoHCljjXKFnwftsU,3297
271
271
  flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
@@ -280,21 +280,21 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4E
280
280
  flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=mxPxyEF0IW0vV41Bqk1zfKOdRDEvXPwzJyMiRMg7nTI,5173
281
281
  flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
282
282
  flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=syWWZgsU3PHvIuvSoJxUTbEdkOtyV6psXAbRowNE_yY,5533
283
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=A41vZaK7QHXaZsKy9Uvqe_fqynOkbW8xYjTJBjbPP4w,6452
283
+ flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=KPgAcnYsKPPI7_iYNSnqGbyv4tsqZuBqrTiREwVBJiM,6984
284
284
  flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
285
- flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=DM53K4yLOmzXikTe6i6KJ0v8IvlJKDifvFEV09GFKhI,5510
285
+ flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=QpLo3E-viPQ1Ia4isRM21htCfU3QH0P4wqMfXAtX8Hk,5412
286
286
  flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
287
287
  flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=L7sg9Uyp7l1bViYNWjnpaDvcG_j7FYKWC1XL-8bMpsg,6710
288
288
  flwr/server/superlink/fleet/vce/__init__.py,sha256=TZJsKTpYO_djv2EXx9Ji62I8TA0JiZF8jvRyJRZkAes,784
289
289
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=cGgal5qpd0_MwEdIqjJbHHSIgGa6GSPoI5_byUwtG_k,1437
290
290
  flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0QIvVP5O-RQxKQlUGNUj974,2194
291
291
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=jsUkFEVQTnrucK1jNQ_cUM8YwL7W4MQNA1GAf8ibRdg,7156
292
- flwr/server/superlink/fleet/vce/vce_api.py,sha256=WTnUILr1OHS8LfjXQUA3FyWJYdJgdqpFAybyJUD-1Xo,13025
292
+ flwr/server/superlink/fleet/vce/vce_api.py,sha256=iXNSAJ7f8Sg1hOrVuRTGRkLdSWeFIpNWbusoOTc4I8I,12971
293
293
  flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
294
294
  flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=4ahMj7TLe-GO2ctyeZ2BBRkviGv27s6x1NS_ETRJHP8,20514
295
295
  flwr/server/superlink/linkstate/linkstate.py,sha256=LWA5zRwN829GDAeSo5kmkzsMu0SkXa9qg4aG_0QN0uk,12159
296
296
  flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
297
- flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=E07w0_eCoOnZOBbdh3I3PN5k5tqt4LrEnYAuiMOF0I0,40398
297
+ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=YEXk_3avSF9T9sk5xxYwNeljLZ-qzg1zIAJOlkkmsX0,40146
298
298
  flwr/server/superlink/linkstate/utils.py,sha256=EpRehwI4NeEW3oINICPWP9STK49N0aszd5s5jtle7DQ,13602
299
299
  flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
300
300
  flwr/server/superlink/simulation/simulationio_grpc.py,sha256=8aUrZZLdvprKUfLLqFID4aItus9beU6m1qLQYIPB7k0,2224
@@ -303,7 +303,7 @@ flwr/server/superlink/utils.py,sha256=KVb3K_g2vYfu9TnftcN0ewmev133WZcjuEePMm8d7G
303
303
  flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
304
304
  flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
305
305
  flwr/server/utils/tensorboard.py,sha256=gEBD8w_5uaIfp5aw5RYH66lYZpd_SfkObHQ7eDd9MUk,5466
306
- flwr/server/utils/validator.py,sha256=SpoKWDlVfFI5aJr2jXWfwJjBc5OZUMMacQbOxj6wPdI,4603
306
+ flwr/server/utils/validator.py,sha256=BQ56tDrrOOG52q3RVeeCODz-oEBxu4L19wbfkBPdCqw,4419
307
307
  flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
308
308
  flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
309
309
  flwr/server/workflow/default_workflows.py,sha256=UMC9JgdomKwxql5G0OV4AeRXWI-bMClaLAOn5OrZMnw,14073
@@ -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.dev20250129.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
331
- flwr_nightly-1.15.0.dev20250129.dist-info/METADATA,sha256=yfW_B81uq7vAhgMljZTUikcjy12hk04sFloMNJHY_z8,15864
332
- flwr_nightly-1.15.0.dev20250129.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
333
- flwr_nightly-1.15.0.dev20250129.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
334
- flwr_nightly-1.15.0.dev20250129.dist-info/RECORD,,
330
+ flwr_nightly-1.15.2.dev20250214.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
331
+ flwr_nightly-1.15.2.dev20250214.dist-info/METADATA,sha256=wzTSnImyVoIq3yRELxxOkJoOzNAAIt1v9sqfR0Os_7k,15873
332
+ flwr_nightly-1.15.2.dev20250214.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
333
+ flwr_nightly-1.15.2.dev20250214.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
334
+ flwr_nightly-1.15.2.dev20250214.dist-info/RECORD,,