flwr-nightly 1.26.0.dev20260203__py3-none-any.whl → 1.26.0.dev20260204__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.
@@ -31,7 +31,7 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
31
31
  from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
32
32
 
33
33
 
34
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\x94\n\n\x0bServerAppIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x62\x06proto3')
34
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xd1\t\n\x0bServerAppIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x62\x06proto3')
35
35
 
36
36
  _globals = globals()
37
37
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -43,5 +43,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
43
43
  _globals['_GETNODESRESPONSE']._serialized_start=246
44
44
  _globals['_GETNODESRESPONSE']._serialized_end=297
45
45
  _globals['_SERVERAPPIO']._serialized_start=300
46
- _globals['_SERVERAPPIO']._serialized_end=1600
46
+ _globals['_SERVERAPPIO']._serialized_end=1533
47
47
  # @@protoc_insertion_point(module_scope)
@@ -4,7 +4,6 @@ import grpc
4
4
  import warnings
5
5
 
6
6
  from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
7
- from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
8
7
  from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
9
8
  from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
10
9
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
@@ -110,11 +109,6 @@ class ServerAppIoStub(object):
110
109
  request_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.SerializeToString,
111
110
  response_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.FromString,
112
111
  _registered_method=True)
113
- self.GetFab = channel.unary_unary(
114
- '/flwr.proto.ServerAppIo/GetFab',
115
- request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
116
- response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
117
- _registered_method=True)
118
112
 
119
113
 
120
114
  class ServerAppIoServicer(object):
@@ -238,13 +232,6 @@ class ServerAppIoServicer(object):
238
232
  context.set_details('Method not implemented!')
239
233
  raise NotImplementedError('Method not implemented!')
240
234
 
241
- def GetFab(self, request, context):
242
- """Get FAB
243
- """
244
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
245
- context.set_details('Method not implemented!')
246
- raise NotImplementedError('Method not implemented!')
247
-
248
235
 
249
236
  def add_ServerAppIoServicer_to_server(servicer, server):
250
237
  rpc_method_handlers = {
@@ -318,11 +305,6 @@ def add_ServerAppIoServicer_to_server(servicer, server):
318
305
  request_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.FromString,
319
306
  response_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.SerializeToString,
320
307
  ),
321
- 'GetFab': grpc.unary_unary_rpc_method_handler(
322
- servicer.GetFab,
323
- request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
324
- response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
325
- ),
326
308
  }
327
309
  generic_handler = grpc.method_handlers_generic_handler(
328
310
  'flwr.proto.ServerAppIo', rpc_method_handlers)
@@ -711,30 +693,3 @@ class ServerAppIo(object):
711
693
  timeout,
712
694
  metadata,
713
695
  _registered_method=True)
714
-
715
- @staticmethod
716
- def GetFab(request,
717
- target,
718
- options=(),
719
- channel_credentials=None,
720
- call_credentials=None,
721
- insecure=False,
722
- compression=None,
723
- wait_for_ready=None,
724
- timeout=None,
725
- metadata=None):
726
- return grpc.experimental.unary_unary(
727
- request,
728
- target,
729
- '/flwr.proto.ServerAppIo/GetFab',
730
- flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
731
- flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
732
- options,
733
- channel_credentials,
734
- insecure,
735
- call_credentials,
736
- compression,
737
- wait_for_ready,
738
- timeout,
739
- metadata,
740
- _registered_method=True)
@@ -20,7 +20,6 @@ limitations under the License.
20
20
  import abc
21
21
  import collections.abc
22
22
  import flwr.proto.appio_pb2
23
- import flwr.proto.fab_pb2
24
23
  import flwr.proto.heartbeat_pb2
25
24
  import flwr.proto.log_pb2
26
25
  import flwr.proto.message_pb2
@@ -148,12 +147,6 @@ class ServerAppIoStub:
148
147
  ]
149
148
  """Return a set of nodes"""
150
149
 
151
- GetFab: grpc.UnaryUnaryMultiCallable[
152
- flwr.proto.fab_pb2.GetFabRequest,
153
- flwr.proto.fab_pb2.GetFabResponse,
154
- ]
155
- """Get FAB"""
156
-
157
150
  class ServerAppIoAsyncStub:
158
151
  ListAppsToLaunch: grpc.aio.UnaryUnaryMultiCallable[
159
152
  flwr.proto.appio_pb2.ListAppsToLaunchRequest,
@@ -264,12 +257,6 @@ class ServerAppIoAsyncStub:
264
257
  ]
265
258
  """Return a set of nodes"""
266
259
 
267
- GetFab: grpc.aio.UnaryUnaryMultiCallable[
268
- flwr.proto.fab_pb2.GetFabRequest,
269
- flwr.proto.fab_pb2.GetFabResponse,
270
- ]
271
- """Get FAB"""
272
-
273
260
  class ServerAppIoServicer(metaclass=abc.ABCMeta):
274
261
  @abc.abstractmethod
275
262
  def ListAppsToLaunch(
@@ -408,12 +395,4 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
408
395
  ) -> typing.Union[flwr.proto.serverappio_pb2.GetNodesResponse, collections.abc.Awaitable[flwr.proto.serverappio_pb2.GetNodesResponse]]:
409
396
  """Return a set of nodes"""
410
397
 
411
- @abc.abstractmethod
412
- def GetFab(
413
- self,
414
- request: flwr.proto.fab_pb2.GetFabRequest,
415
- context: _ServicerContext,
416
- ) -> typing.Union[flwr.proto.fab_pb2.GetFabResponse, collections.abc.Awaitable[flwr.proto.fab_pb2.GetFabResponse]]:
417
- """Get FAB"""
418
-
419
398
  def add_ServerAppIoServicer_to_server(servicer: ServerAppIoServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
@@ -54,7 +54,6 @@ from flwr.proto.appio_pb2 import ( # pylint: disable=E0611
54
54
  RequestTokenRequest,
55
55
  RequestTokenResponse,
56
56
  )
57
- from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
58
57
  from flwr.proto.heartbeat_pb2 import ( # pylint: disable=E0611
59
58
  SendAppHeartbeatRequest,
60
59
  SendAppHeartbeatResponse,
@@ -85,7 +84,7 @@ from flwr.proto.serverappio_pb2 import ( # pylint: disable=E0611
85
84
  from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
86
85
  from flwr.server.superlink.utils import abort_if
87
86
  from flwr.server.utils.validator import validate_message
88
- from flwr.supercore.ffs import Ffs, FfsFactory
87
+ from flwr.supercore.ffs import FfsFactory
89
88
  from flwr.supercore.object_store import NoObjectInStoreError, ObjectStoreFactory
90
89
 
91
90
 
@@ -312,19 +311,6 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
312
311
 
313
312
  return GetRunResponse(run=run_to_proto(run))
314
313
 
315
- def GetFab(
316
- self, request: GetFabRequest, context: grpc.ServicerContext
317
- ) -> GetFabResponse:
318
- """Get FAB from Ffs."""
319
- log(DEBUG, "ServerAppIoServicer.GetFab")
320
-
321
- ffs: Ffs = self.ffs_factory.ffs()
322
- if result := ffs.get(request.hash_str):
323
- fab = Fab(request.hash_str, result[0], result[1])
324
- return GetFabResponse(fab=fab_to_proto(fab))
325
-
326
- raise ValueError(f"Found no FAB with hash: {request.hash_str}")
327
-
328
314
  def PullAppInputs(
329
315
  self, request: PullAppInputsRequest, context: grpc.ServicerContext
330
316
  ) -> PullAppInputsResponse:
@@ -73,6 +73,7 @@ SYSTEM_MESSAGE_TYPE = "system"
73
73
 
74
74
  # SQLite PRAGMA settings for optimal performance and correctness
75
75
  SQLITE_PRAGMAS = (
76
+ ("busy_timeout", "5000"), # Retry lock acquisition for up to 5s before SQLITE_BUSY
76
77
  ("journal_mode", "WAL"), # Enable Write-Ahead Logging for better concurrency
77
78
  ("synchronous", "NORMAL"),
78
79
  ("foreign_keys", "ON"),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.26.0.dev20260203
3
+ Version: 1.26.0.dev20260204
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  License: Apache-2.0
6
6
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -187,10 +187,10 @@ flwr/proto/run_pb2.py,sha256=0HsPXXNxKq0uefBY3gJOBvu9gQGZ-FhKaGhJiAwMKgU,4146
187
187
  flwr/proto/run_pb2.pyi,sha256=m6YeVUE2LnljsF_1FTpJWpxPEKw8RB_X1HuRFvijHG0,8689
188
188
  flwr/proto/run_pb2_grpc.py,sha256=l5u1Ww6JxVLVN784Z2OQbkQ-tAf5yYGh6QbNDc4F5II,895
189
189
  flwr/proto/run_pb2_grpc.pyi,sha256=fMwjLr-QCljWBa8uk0fvMCytnrF1-IzFLCbezqEmvdU,1071
190
- flwr/proto/serverappio_pb2.py,sha256=g4NlMFE4F3u0FXSmNJNGOe2nFRAaRRH8oEak6FSqeX8,3940
190
+ flwr/proto/serverappio_pb2.py,sha256=Df4l7tMVEt4gIR_Vg9ttIMau6rDwU5NFJPZeRqCN4C4,3847
191
191
  flwr/proto/serverappio_pb2.pyi,sha256=KpVM8B_O0M3RFJ-DtnNlQapJs4V-7pHcdEb2G3ECbhE,1998
192
- flwr/proto/serverappio_pb2_grpc.py,sha256=CNLkE1rVU5TaJHC7XoWYwONyPcDwCq5t6sezceCZbIg,30319
193
- flwr/proto/serverappio_pb2_grpc.pyi,sha256=-vpa_s5oGrT2aXE4zmIdDXXGxJ7ZSfcs8pIeOGvX7yE,15557
192
+ flwr/proto/serverappio_pb2_grpc.py,sha256=EVMV7JdjrTJhgg7NmcLdEGleBFZlYCNT_6ed1DZkuVo,28565
193
+ flwr/proto/serverappio_pb2_grpc.pyi,sha256=AHoGbatng1p72_epB9k3k5-gL8ENr8wtaUOm82ogvuM,14940
194
194
  flwr/proto/simulationio_pb2.py,sha256=b7B2VXAwKcfgKPulDmOBQs0RvEWKnWbGuTwF4GvMnn8,2681
195
195
  flwr/proto/simulationio_pb2.pyi,sha256=OsUGEduv1iJCew8C4cMz87Y5uQAhHDmxNyVfwA4kXd8,824
196
196
  flwr/proto/simulationio_pb2_grpc.py,sha256=JVJ_u2RR64amAnacdH6op6eOW7CT0RAzZbRBfqPLBQk,19201
@@ -276,7 +276,7 @@ flwr/server/superlink/linkstate/sql_linkstate.py,sha256=ziZvpEQBVV9GSxjHiS0fAyaY
276
276
  flwr/server/superlink/linkstate/utils.py,sha256=IA1mKKhGVBPoD61VXKFa8dZ_prnfuyWIuKAeeHPLmuE,16000
277
277
  flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
278
278
  flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=2NFPynJMpYpT9C98Fr4n0QrTTjWBWbeUzlHcc6pg2kY,2279
279
- flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=sEdA8lQzNEKMdpvvwzCsJJWHdlkPI1omCs6XyAWKES0,19586
279
+ flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=Ki2DGKbyhIxPXslP6YDhS0wdeBnKZ7T9zxh7qmXwH1Y,19021
280
280
  flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
281
281
  flwr/server/superlink/simulation/simulationio_grpc.py,sha256=fHFW8SOR4iyfBxQeYOXWwqUStGsv0P4EAIVkBk69BN4,2174
282
282
  flwr/server/superlink/simulation/simulationio_servicer.py,sha256=QghTkyaNrSR41HMwQPtWAqhv6kWqdoj44tuto1K5x6A,9558
@@ -328,7 +328,7 @@ flwr/supercore/address.py,sha256=SgM_pazKsw1Avo5nms0WWgIZFUGS349O0gOP7N3bFW4,331
328
328
  flwr/supercore/app_utils.py,sha256=P558DOr5a4UPyOdRCxbDQueQF-L-kSc6qzouPPuqj0U,1773
329
329
  flwr/supercore/cli/__init__.py,sha256=EDl2aO-fuQfxSbL-T1W9RAfA2N0hpWHmqX_GSwblJbQ,845
330
330
  flwr/supercore/cli/flower_superexec.py,sha256=IQIGzxgaeLNMNzGXGemfYK3lp8God5bTkXpVkbeP_ig,6109
331
- flwr/supercore/constant.py,sha256=Hn87UDdFZBhVq2kbGziPoV2veozYZlJ3R_Unjmr7ekY,3008
331
+ flwr/supercore/constant.py,sha256=HSjxmgQsKC44EeaOZQ659DaZj8SDIEJ7XOGUKX122jU,3096
332
332
  flwr/supercore/corestate/__init__.py,sha256=Vau6-L_JG5QzNqtCTa9xCKGGljc09wY8avZmIjSJemg,774
333
333
  flwr/supercore/corestate/corestate.py,sha256=EZg4gPXqVOXwS7t0tlPfedajoWj5T80oeDBNxpV2y2I,2874
334
334
  flwr/supercore/corestate/in_memory_corestate.py,sha256=9qa6RuRZfCp6vs-ARYdiZjCL31VOAAxw0a_VkBXR5zY,5116
@@ -408,7 +408,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
408
408
  flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
409
409
  flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=5TOp0SelGqiWzRHfhYpoKzUd7EuVTqt5_PXvnUy7_Ok,11615
410
410
  flwr/supernode/start_client_internal.py,sha256=3MkeDiWZr-SsvACuuAxJi8nYw6GYNKOO6q8b36E3R9k,26250
411
- flwr_nightly-1.26.0.dev20260203.dist-info/METADATA,sha256=HtDC4Sl-9R0f1NwHCNuXm4dulzTEou5G11nh6ximGBw,14447
412
- flwr_nightly-1.26.0.dev20260203.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
413
- flwr_nightly-1.26.0.dev20260203.dist-info/entry_points.txt,sha256=hxHD2ixb_vJFDOlZV-zB4Ao32_BQlL34ftsDh1GXv14,420
414
- flwr_nightly-1.26.0.dev20260203.dist-info/RECORD,,
411
+ flwr_nightly-1.26.0.dev20260204.dist-info/METADATA,sha256=e3WZONWWxLHHRCHLnL2DXp_JOdwVUs4HAK28LUNqSYE,14447
412
+ flwr_nightly-1.26.0.dev20260204.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
413
+ flwr_nightly-1.26.0.dev20260204.dist-info/entry_points.txt,sha256=hxHD2ixb_vJFDOlZV-zB4Ao32_BQlL34ftsDh1GXv14,420
414
+ flwr_nightly-1.26.0.dev20260204.dist-info/RECORD,,