flwr-nightly 1.19.0.dev20250611__py3-none-any.whl → 1.19.0.dev20250612__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/client/grpc_rere_client/connection.py +47 -29
- flwr/client/grpc_rere_client/grpc_adapter.py +8 -0
- flwr/client/rest_client/connection.py +70 -51
- flwr/common/inflatable.py +24 -0
- flwr/common/serde.py +2 -0
- flwr/common/typing.py +2 -0
- flwr/proto/fleet_pb2.py +12 -16
- flwr/proto/fleet_pb2.pyi +4 -19
- flwr/proto/fleet_pb2_grpc.py +34 -0
- flwr/proto/fleet_pb2_grpc.pyi +13 -0
- flwr/proto/message_pb2.py +15 -9
- flwr/proto/message_pb2.pyi +41 -0
- flwr/proto/run_pb2.py +24 -24
- flwr/proto/run_pb2.pyi +4 -1
- flwr/proto/serverappio_pb2.py +22 -26
- flwr/proto/serverappio_pb2.pyi +4 -19
- flwr/proto/serverappio_pb2_grpc.py +34 -0
- flwr/proto/serverappio_pb2_grpc.pyi +13 -0
- flwr/server/grid/grpc_grid.py +20 -9
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +25 -0
- flwr/server/superlink/fleet/message_handler/message_handler.py +33 -2
- flwr/server/superlink/fleet/rest_rere/rest_api.py +26 -2
- flwr/server/superlink/linkstate/in_memory_linkstate.py +17 -2
- flwr/server/superlink/linkstate/linkstate.py +6 -2
- flwr/server/superlink/linkstate/sqlite_linkstate.py +19 -7
- flwr/server/superlink/serverappio/serverappio_servicer.py +65 -29
- flwr/server/superlink/simulation/simulationio_servicer.py +2 -1
- flwr/server/superlink/utils.py +23 -10
- flwr/supercore/object_store/in_memory_object_store.py +160 -33
- flwr/supercore/object_store/object_store.py +54 -7
- flwr/superexec/deployment.py +6 -2
- flwr/superexec/exec_servicer.py +4 -1
- flwr/superexec/executor.py +4 -0
- flwr/superexec/simulation.py +7 -1
- {flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/METADATA +1 -1
- {flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/RECORD +38 -38
- {flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/entry_points.txt +0 -0
@@ -18,6 +18,8 @@
|
|
18
18
|
import abc
|
19
19
|
from typing import Optional
|
20
20
|
|
21
|
+
from flwr.proto.message_pb2 import ObjectTree # pylint: disable=E0611
|
22
|
+
|
21
23
|
|
22
24
|
class NoObjectInStoreError(Exception):
|
23
25
|
"""Error when trying to access an element in the ObjectStore that does not exist."""
|
@@ -39,20 +41,23 @@ class ObjectStore(abc.ABC):
|
|
39
41
|
"""
|
40
42
|
|
41
43
|
@abc.abstractmethod
|
42
|
-
def preregister(self,
|
44
|
+
def preregister(self, run_id: int, object_tree: ObjectTree) -> list[str]:
|
43
45
|
"""Identify and preregister missing objects in the `ObjectStore`.
|
44
46
|
|
45
47
|
Parameters
|
46
48
|
----------
|
47
|
-
|
48
|
-
|
49
|
-
|
49
|
+
run_id : int
|
50
|
+
The ID of the run for which to preregister objects.
|
51
|
+
object_tree : ObjectTree
|
52
|
+
The object tree containing the IDs of objects to preregister.
|
53
|
+
This tree should contain all objects that are expected to be
|
54
|
+
stored in the `ObjectStore`.
|
50
55
|
|
51
56
|
Returns
|
52
57
|
-------
|
53
58
|
list[str]
|
54
|
-
A list of object IDs that were not
|
55
|
-
|
59
|
+
A list of object IDs that were either not previously preregistered
|
60
|
+
in the `ObjectStore`, or were preregistered but are not yet available.
|
56
61
|
"""
|
57
62
|
|
58
63
|
@abc.abstractmethod
|
@@ -84,12 +89,34 @@ class ObjectStore(abc.ABC):
|
|
84
89
|
|
85
90
|
@abc.abstractmethod
|
86
91
|
def delete(self, object_id: str) -> None:
|
87
|
-
"""Delete an object from the store.
|
92
|
+
"""Delete an object and its unreferenced descendants from the store.
|
93
|
+
|
94
|
+
This method attempts to recursively delete the specified object and its
|
95
|
+
descendants, if they are not referenced by any other object.
|
88
96
|
|
89
97
|
Parameters
|
90
98
|
----------
|
91
99
|
object_id : str
|
92
100
|
The object_id under which the object is stored.
|
101
|
+
|
102
|
+
Notes
|
103
|
+
-----
|
104
|
+
The object of the given object_id will NOT be deleted if it is still referenced
|
105
|
+
by any other object in the store.
|
106
|
+
"""
|
107
|
+
|
108
|
+
@abc.abstractmethod
|
109
|
+
def delete_objects_in_run(self, run_id: int) -> None:
|
110
|
+
"""Delete all objects that were registered in a specific run.
|
111
|
+
|
112
|
+
Parameters
|
113
|
+
----------
|
114
|
+
run_id : int
|
115
|
+
The ID of the run for which to delete objects.
|
116
|
+
|
117
|
+
Notes
|
118
|
+
-----
|
119
|
+
Objects that are still registered in other runs will NOT be deleted.
|
93
120
|
"""
|
94
121
|
|
95
122
|
@abc.abstractmethod
|
@@ -129,6 +156,16 @@ class ObjectStore(abc.ABC):
|
|
129
156
|
A list of object IDs of all descendant objects of the ``Message``.
|
130
157
|
"""
|
131
158
|
|
159
|
+
@abc.abstractmethod
|
160
|
+
def delete_message_descendant_ids(self, msg_object_id: str) -> None:
|
161
|
+
"""Delete the mapping from a ``Message`` object ID to its descendants.
|
162
|
+
|
163
|
+
Parameters
|
164
|
+
----------
|
165
|
+
msg_object_id : str
|
166
|
+
The object ID of the ``Message``.
|
167
|
+
"""
|
168
|
+
|
132
169
|
@abc.abstractmethod
|
133
170
|
def __contains__(self, object_id: str) -> bool:
|
134
171
|
"""Check if an object_id is in the store.
|
@@ -143,3 +180,13 @@ class ObjectStore(abc.ABC):
|
|
143
180
|
bool
|
144
181
|
True if the object_id is in the store, False otherwise.
|
145
182
|
"""
|
183
|
+
|
184
|
+
@abc.abstractmethod
|
185
|
+
def __len__(self) -> int:
|
186
|
+
"""Return the number of objects in the store.
|
187
|
+
|
188
|
+
Returns
|
189
|
+
-------
|
190
|
+
int
|
191
|
+
The number of objects currently stored.
|
192
|
+
"""
|
flwr/superexec/deployment.py
CHANGED
@@ -132,6 +132,7 @@ class DeploymentEngine(Executor):
|
|
132
132
|
self,
|
133
133
|
fab: Fab,
|
134
134
|
override_config: UserConfig,
|
135
|
+
flwr_aid: Optional[str],
|
135
136
|
) -> int:
|
136
137
|
fab_hash = self.ffs.put(fab.content, {})
|
137
138
|
if fab_hash != fab.hash_str:
|
@@ -141,7 +142,7 @@ class DeploymentEngine(Executor):
|
|
141
142
|
fab_id, fab_version = get_fab_metadata(fab.content)
|
142
143
|
|
143
144
|
run_id = self.linkstate.create_run(
|
144
|
-
fab_id, fab_version, fab_hash, override_config, ConfigRecord()
|
145
|
+
fab_id, fab_version, fab_hash, override_config, ConfigRecord(), flwr_aid
|
145
146
|
)
|
146
147
|
return run_id
|
147
148
|
|
@@ -161,6 +162,7 @@ class DeploymentEngine(Executor):
|
|
161
162
|
fab_file: bytes,
|
162
163
|
override_config: UserConfig,
|
163
164
|
federation_options: ConfigRecord,
|
165
|
+
flwr_aid: Optional[str],
|
164
166
|
) -> Optional[int]:
|
165
167
|
"""Start run using the Flower Deployment Engine."""
|
166
168
|
run_id = None
|
@@ -168,7 +170,9 @@ class DeploymentEngine(Executor):
|
|
168
170
|
|
169
171
|
# Call SuperLink to create run
|
170
172
|
run_id = self._create_run(
|
171
|
-
Fab(hashlib.sha256(fab_file).hexdigest(), fab_file),
|
173
|
+
Fab(hashlib.sha256(fab_file).hexdigest(), fab_file),
|
174
|
+
override_config,
|
175
|
+
flwr_aid,
|
172
176
|
)
|
173
177
|
|
174
178
|
# Register context for the Run
|
flwr/superexec/exec_servicer.py
CHANGED
@@ -50,6 +50,7 @@ from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
|
|
50
50
|
from flwr.server.superlink.ffs.ffs_factory import FfsFactory
|
51
51
|
from flwr.server.superlink.linkstate import LinkState, LinkStateFactory
|
52
52
|
|
53
|
+
from .exec_user_auth_interceptor import shared_account_info
|
53
54
|
from .executor import Executor
|
54
55
|
|
55
56
|
|
@@ -75,10 +76,12 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
75
76
|
"""Create run ID."""
|
76
77
|
log(INFO, "ExecServicer.StartRun")
|
77
78
|
|
79
|
+
flwr_aid = shared_account_info.get().flwr_aid if self.auth_plugin else None
|
78
80
|
run_id = self.executor.start_run(
|
79
81
|
request.fab.content,
|
80
82
|
user_config_from_proto(request.override_config),
|
81
83
|
config_record_from_proto(request.federation_options),
|
84
|
+
flwr_aid,
|
82
85
|
)
|
83
86
|
|
84
87
|
if run_id is None:
|
@@ -132,7 +135,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
|
|
132
135
|
|
133
136
|
# Handle `flwr ls --runs`
|
134
137
|
if not request.HasField("run_id"):
|
135
|
-
return _create_list_runs_response(state.get_run_ids(), state)
|
138
|
+
return _create_list_runs_response(state.get_run_ids(None), state)
|
136
139
|
# Handle `flwr ls --run-id <run_id>`
|
137
140
|
return _create_list_runs_response({request.run_id}, state)
|
138
141
|
|
flwr/superexec/executor.py
CHANGED
@@ -74,6 +74,7 @@ class Executor(ABC):
|
|
74
74
|
fab_file: bytes,
|
75
75
|
override_config: UserConfig,
|
76
76
|
federation_options: ConfigRecord,
|
77
|
+
flwr_aid: Optional[str],
|
77
78
|
) -> Optional[int]:
|
78
79
|
"""Start a run using the given Flower FAB ID and version.
|
79
80
|
|
@@ -88,6 +89,9 @@ class Executor(ABC):
|
|
88
89
|
The config overrides dict sent by the user (using `flwr run`).
|
89
90
|
federation_options: ConfigRecord
|
90
91
|
The federation options sent by the user (using `flwr run`).
|
92
|
+
flwr_aid : Optional[str]
|
93
|
+
The Flower Account ID of the user starting the run, if authentication is
|
94
|
+
enabled.
|
91
95
|
|
92
96
|
Returns
|
93
97
|
-------
|
flwr/superexec/simulation.py
CHANGED
@@ -77,6 +77,7 @@ class SimulationEngine(Executor):
|
|
77
77
|
fab_file: bytes,
|
78
78
|
override_config: UserConfig,
|
79
79
|
federation_options: ConfigRecord,
|
80
|
+
flwr_aid: Optional[str],
|
80
81
|
) -> Optional[int]:
|
81
82
|
"""Start run using the Flower Simulation Engine."""
|
82
83
|
try:
|
@@ -96,7 +97,12 @@ class SimulationEngine(Executor):
|
|
96
97
|
fab_id, fab_version = get_fab_metadata(fab.content)
|
97
98
|
|
98
99
|
run_id = self.linkstate.create_run(
|
99
|
-
fab_id,
|
100
|
+
fab_id,
|
101
|
+
fab_version,
|
102
|
+
fab_hash,
|
103
|
+
override_config,
|
104
|
+
federation_options,
|
105
|
+
flwr_aid,
|
100
106
|
)
|
101
107
|
|
102
108
|
# Create an empty context for the Run
|
{flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.19.0.
|
3
|
+
Version: 1.19.0.dev20250612
|
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
|
{flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/RECORD
RENAMED
@@ -84,8 +84,8 @@ flwr/client/grpc_adapter_client/__init__.py,sha256=RQWP5mFPROLHKgombiRvPXVWSoVrQ
|
|
84
84
|
flwr/client/grpc_adapter_client/connection.py,sha256=aj5tTYyE8z2hQLXPPydsJiz8gBDIWLUhfWvqYkAL1L4,3966
|
85
85
|
flwr/client/grpc_rere_client/__init__.py,sha256=i7iS0Lt8B7q0E2L72e4F_YrKm6ClRKnd71PNA6PW2O0,752
|
86
86
|
flwr/client/grpc_rere_client/client_interceptor.py,sha256=zFaVHw6AxeNO-7eCKKb-RxrPa7zbM5Z-2-1Efc4adQY,2451
|
87
|
-
flwr/client/grpc_rere_client/connection.py,sha256=
|
88
|
-
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=
|
87
|
+
flwr/client/grpc_rere_client/connection.py,sha256=dyRBkTVUNhlMmLaoJUz9U4lWnAb7QjYRmGfOzaE0CbA,14402
|
88
|
+
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=dLGB5GriszAmtgvuFGuz_F7rIwpzLfDxhJ7T3Un-Ce0,6694
|
89
89
|
flwr/client/message_handler/__init__.py,sha256=0lyljDVqre3WljiZbPcwCCf8GiIaSVI_yo_ylEyPwSE,719
|
90
90
|
flwr/client/message_handler/message_handler.py,sha256=X9SXX6et97Lw9_DGD93HKsEBGNjXClcFgc_5aLK0oiU,6541
|
91
91
|
flwr/client/mod/__init__.py,sha256=AtV4Y5UGuYqJdTg7bJ--KtfOZUYLGDPMy616LvtP5W4,1151
|
@@ -98,7 +98,7 @@ flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=aKqjZCrikF73y3E-7h40
|
|
98
98
|
flwr/client/mod/utils.py,sha256=FUgD2TfcWqSeF6jUKZ4i6Ke56U4Nrv85AeVb93s6R9g,1201
|
99
99
|
flwr/client/numpy_client.py,sha256=Qq6ghsIAop2slKqAfgiI5NiHJ4LIxGmrik3Ror4_XVc,9581
|
100
100
|
flwr/client/rest_client/__init__.py,sha256=MBiuK62hj439m9rtwSwI184Hth6Tt5GbmpNMyl3zkZY,735
|
101
|
-
flwr/client/rest_client/connection.py,sha256=
|
101
|
+
flwr/client/rest_client/connection.py,sha256=yxWuuh9A7CVzHDoAcBOQOUmCoT0kXSTGZ8zyD8YZGuo,17033
|
102
102
|
flwr/client/run_info_store.py,sha256=MaJ3UQ-07hWtK67wnWu0zR29jrk0fsfgJX506dvEOfE,4042
|
103
103
|
flwr/client/typing.py,sha256=Jw3rawDzI_-ZDcRmEQcs5gZModY7oeQlEeltYsdOhlU,1048
|
104
104
|
flwr/clientapp/__init__.py,sha256=zGW4z49Ojzoi1hDiRC7kyhLjijUilc6fqHhtM_ATRVA,719
|
@@ -122,7 +122,7 @@ flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E
|
|
122
122
|
flwr/common/exit_handlers.py,sha256=IaqJ60fXZuu7McaRYnoYKtlbH9t4Yl9goNExKqtmQbs,4304
|
123
123
|
flwr/common/grpc.py,sha256=manTaHaPiyYngUq1ErZvvV2B2GxlXUUUGRy3jc3TBIQ,9798
|
124
124
|
flwr/common/heartbeat.py,sha256=SyEpNDnmJ0lni0cWO67rcoJVKasCLmkNHm3dKLeNrLU,5749
|
125
|
-
flwr/common/inflatable.py,sha256=
|
125
|
+
flwr/common/inflatable.py,sha256=GDL9oBKs16_yyVdlH6kBf493O5xll_h9V7XB5Mpx1Hc,9524
|
126
126
|
flwr/common/inflatable_grpc_utils.py,sha256=ZpwtgF1tGD6NwQkCidbhbeBPDBZ1Nx9eGMHQ04eNEE8,3554
|
127
127
|
flwr/common/inflatable_rest_utils.py,sha256=KiZd06XRiXcl_WewOrag0JTvUQt5kZ74UIsQ3FCAXGc,3580
|
128
128
|
flwr/common/inflatable_utils.py,sha256=-GTdgR1zLS9WtXrbOGJMpaoyVEL8KmoQ2yF4HeLxTI0,12406
|
@@ -149,10 +149,10 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=TrggOlizlny3V2KS7-3
|
|
149
149
|
flwr/common/secure_aggregation/quantization.py,sha256=ssFZpiRyj9ltIh0Ai3vGkDqWFO4SoqgoD1mDU9XqMEM,2400
|
150
150
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=dGYhWOBMMDJcQH4_tQNC8-Efqm-ecEUNN9ANz59UnCk,2182
|
151
151
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=E_xU-Zd45daO1em7M6C2wOjFXVtJf-6tl7fp-7xq1wo,3214
|
152
|
-
flwr/common/serde.py,sha256=
|
152
|
+
flwr/common/serde.py,sha256=ZJ89Eq-t3-MK_Np1G27Db-eXUhKigp3gSkgQt5E6vaA,23088
|
153
153
|
flwr/common/serde_utils.py,sha256=krx2C_W31KpfmDqnDCtULoTkT8WKweWTJ7FHYWtF1r4,5815
|
154
154
|
flwr/common/telemetry.py,sha256=jF47v0SbnBd43XamHtl3wKxs3knFUY2p77cm_2lzZ8M,8762
|
155
|
-
flwr/common/typing.py,sha256=
|
155
|
+
flwr/common/typing.py,sha256=B8z50fv8K0H4F5m8XRPBoWy-qqbNMyQXBAaaSuzfbnY,6936
|
156
156
|
flwr/common/version.py,sha256=7GAGzPn73Mkh09qhrjbmjZQtcqVhBuzhFBaK4Mk4VRk,1325
|
157
157
|
flwr/compat/__init__.py,sha256=gbfDQKKKMZzi3GswyVRgyLdDlHiWj3wU6dg7y6m5O_s,752
|
158
158
|
flwr/compat/client/__init__.py,sha256=qpbo0lcxdNL4qy5KHqiGm8OLxSxkYgI_-dLh5rwhtcI,746
|
@@ -180,10 +180,10 @@ flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
|
|
180
180
|
flwr/proto/fab_pb2.pyi,sha256=AMXpiDK0fo3nZWjxsC2E4otSaVjyQbU7iiWKrsSZavs,2395
|
181
181
|
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
182
182
|
flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
183
|
-
flwr/proto/fleet_pb2.py,sha256=
|
184
|
-
flwr/proto/fleet_pb2.pyi,sha256=
|
185
|
-
flwr/proto/fleet_pb2_grpc.py,sha256=
|
186
|
-
flwr/proto/fleet_pb2_grpc.pyi,sha256=
|
183
|
+
flwr/proto/fleet_pb2.py,sha256=bXqfcyKYFaXYt3V1XMe600xdXb66swYPa6hByEA05e0,6131
|
184
|
+
flwr/proto/fleet_pb2.pyi,sha256=1zAv5BD0-iXNVvd6EXQIxRei_axG7k_RdXeiCwneT-U,9241
|
185
|
+
flwr/proto/fleet_pb2_grpc.py,sha256=NmzrDYxyM3MQNh3vwYczQNuFimZz3prU6ke3E-fKk_g,17539
|
186
|
+
flwr/proto/fleet_pb2_grpc.pyi,sha256=PDERhzOrBCMAytTLS65Qck8A45bTIYni7Lotq6_I0sM,4721
|
187
187
|
flwr/proto/grpcadapter_pb2.py,sha256=PJ8DtfeV29g_y4Z3aNZlSZocLqSxeLmTsYCdOZDYCiE,1843
|
188
188
|
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
189
189
|
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
@@ -196,8 +196,8 @@ flwr/proto/log_pb2.py,sha256=iKaS3MVn1BS4xHu8uGPFCOi1KWtvVx-H9V4jCUIJghs,1393
|
|
196
196
|
flwr/proto/log_pb2.pyi,sha256=ipuhgo40sAHTcRzCsGI1HwIstr5q0THPNk_cf62YyME,1448
|
197
197
|
flwr/proto/log_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
198
198
|
flwr/proto/log_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
199
|
-
flwr/proto/message_pb2.py,sha256=
|
200
|
-
flwr/proto/message_pb2.pyi,sha256=
|
199
|
+
flwr/proto/message_pb2.py,sha256=giymevXYEUdpIO-3A0XKsmRabXW1xSz0sIo5oOlbQ8Y,5198
|
200
|
+
flwr/proto/message_pb2.pyi,sha256=EzXZHy2mtabofrd_ZgKSI6M4QH-soIaRZIZBPwBGPv0,11260
|
201
201
|
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
202
202
|
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
203
203
|
flwr/proto/node_pb2.py,sha256=BzZfAWIX7lV62bZr9f7x16lUZcpg-EImxnwxQXgCbYg,1045
|
@@ -208,14 +208,14 @@ flwr/proto/recorddict_pb2.py,sha256=eVkcnxMTFa3rvknRNiFuJ8z8xxPqgw7bV04aFiTe1j4,
|
|
208
208
|
flwr/proto/recorddict_pb2.pyi,sha256=xHRSK_GWlIynXDQxWNNmmidsj4OjZzVYqosRB6EonmE,14544
|
209
209
|
flwr/proto/recorddict_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
210
210
|
flwr/proto/recorddict_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
211
|
-
flwr/proto/run_pb2.py,sha256=
|
212
|
-
flwr/proto/run_pb2.pyi,sha256=
|
211
|
+
flwr/proto/run_pb2.py,sha256=76pAp3ugvpsUyx34ehvMTe-o-J2pTTvb1OskDmsAcag,4768
|
212
|
+
flwr/proto/run_pb2.pyi,sha256=7hWfS3DzrrrKn5ZXRYL1x1rz9u1ZZd68Sz5kinRBDCk,9542
|
213
213
|
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
214
214
|
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
215
|
-
flwr/proto/serverappio_pb2.py,sha256=
|
216
|
-
flwr/proto/serverappio_pb2.pyi,sha256=
|
217
|
-
flwr/proto/serverappio_pb2_grpc.py,sha256=
|
218
|
-
flwr/proto/serverappio_pb2_grpc.pyi,sha256=
|
215
|
+
flwr/proto/serverappio_pb2.py,sha256=ugZZ0zZulDKuL7BZbAMptyMAozmJv888tee0ZrteOB0,6608
|
216
|
+
flwr/proto/serverappio_pb2.pyi,sha256=YxIhMPaF9fhBCR6P0AX3t5yM03B15HuwudDPHktMwTk,8914
|
217
|
+
flwr/proto/serverappio_pb2_grpc.py,sha256=kUPYPzA8ozjkTp-KVTeTWB_viTj-OJiX-lErH7b5kVc,24374
|
218
|
+
flwr/proto/serverappio_pb2_grpc.pyi,sha256=xecgtw0jIrNHMeJkG_cjuIglFM9NFRv1XPLEX7GIdck,6711
|
219
219
|
flwr/proto/simulationio_pb2.py,sha256=sAJX72z-IttVGxyU3PFnG8AFuA-pV7itvBoxz-hOudE,3342
|
220
220
|
flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
|
221
221
|
flwr/proto/simulationio_pb2_grpc.py,sha256=HuGbhOwV_A5GTbvmd5XTm6lSm9fWUgKcxq9OKhgmBT0,12999
|
@@ -238,7 +238,7 @@ flwr/server/criterion.py,sha256=G4e-6B48Pc7d5rmGVUpIzNKb6UF88O3VmTRuUltgjzM,1061
|
|
238
238
|
flwr/server/fleet_event_log_interceptor.py,sha256=ifV4gUB_hSg7QPLIrAyDpjciqZBOKb0L0abZno3GTwA,3780
|
239
239
|
flwr/server/grid/__init__.py,sha256=aWZHezoR2UGMJISB_gPMCm2N_2GSbm97A3lAp7ruhRQ,888
|
240
240
|
flwr/server/grid/grid.py,sha256=naGCYt5J6dnmUvrcGkdNyKPe3MBd-0awGm1ALmgahqY,6625
|
241
|
-
flwr/server/grid/grpc_grid.py,sha256=
|
241
|
+
flwr/server/grid/grpc_grid.py,sha256=F1AtbNxhHZL0-Rlwvynm7eUzOm8J55ENZ2-YQ21lAg4,13519
|
242
242
|
flwr/server/grid/inmemory_grid.py,sha256=RjejYT-d-hHuTs1KSs_5wvOdAWKLus8w5_UAcnGt4iw,6168
|
243
243
|
flwr/server/history.py,sha256=cCkFhBN4GoHsYYNk5GG1Y089eKJh2DH_ZJbYPwLaGyk,5026
|
244
244
|
flwr/server/run_serverapp.py,sha256=v0p6jXj2dFxlRUdoEeF1mnaFd9XRQi6dZCflPY6d3qI,2063
|
@@ -286,30 +286,30 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=KouR9PUcrPmMtoLooF4O
|
|
286
286
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=iSf0mbBAlig7G6subQwBSVjcUCgSihONKdZ1RmQPTOk,4887
|
287
287
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=OsS-6GgCIzMMZDVu5Y-OKjynHVUrpdc_5OrtuB-IbU0,5174
|
288
288
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=ahDJJ1e-lDxBpeBMgPk7YZt2wB38_QltcpOC0gLbpFs,758
|
289
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
289
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=Ug-EqW6dSvxMVbjBVGcrfeMudBp5INZkFZUBNhJioRI,8694
|
290
290
|
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=DrHubsaLgJCwCeeJPYogQTiP0xYqjxwnT9rh7OP7BoU,6984
|
291
291
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=fHsRV0KvJ8HtgSA4_YBsEzuhJLjO8p6xx4aCY2oE1p4,731
|
292
|
-
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=
|
292
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=NhQzO1_eGusDfBiq5lPVs-b0nisjbY8Z5Zr5sFBmYeY,8853
|
293
293
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=Lzc93nA7tDqoy-zRUaPG316oqFiZX1HUCL5ELaXY_xw,735
|
294
|
-
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=
|
294
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=j3UdI_xG00t_WDPr4Zu6QlnkTu5R1ZTCg5_fLOCFG5o,9317
|
295
295
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=XOKbAWOzlCqEOQ3M2cBYkH7HKA7PxlbCJMunt-ty-DY,784
|
296
296
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=PPH89Yqd1XKm-sRJN6R0WQlKT_b4v54Kzl2yzHAFzM8,1437
|
297
297
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=-wDHjgAy5mrfEgXj0GxkJI7lhEbgSUyPwmNAf9ZcDzc,2193
|
298
298
|
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=Hx9hxL7lju1_VJoAwkhBOGerZ3628u0P1zgkPhGWRPY,7154
|
299
299
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=xSjQbBYHmUTinw7Q_-UxqR7qt07kqj9FCSpPYRsUKf8,12909
|
300
300
|
flwr/server/superlink/linkstate/__init__.py,sha256=OtsgvDTnZLU3k0sUbkHbqoVwW6ql2FDmb6uT6DbNkZo,1064
|
301
|
-
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=
|
302
|
-
flwr/server/superlink/linkstate/linkstate.py,sha256=
|
301
|
+
flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=gGA1qo-h_Rvvdv99qg112CjD8PmI_0kMjAxo4ER2piE,26350
|
302
|
+
flwr/server/superlink/linkstate/linkstate.py,sha256=JZHshn7NnUHr_hvHqO593YWwuCQVJm7InXor60DRcX0,13238
|
303
303
|
flwr/server/superlink/linkstate/linkstate_factory.py,sha256=8RlosqSpKOoD_vhUUQPY0jtE3A84GeF96Z7sWNkRRcA,2069
|
304
|
-
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=
|
304
|
+
flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=E699Ak0jMF3N7i1SIeFRutjorg51Fd7qBqaPX_gkWU0,43687
|
305
305
|
flwr/server/superlink/linkstate/utils.py,sha256=IeLh7iGRCHU5MEWOl7iriaSE4L__8GWOa2OleXadK5M,15444
|
306
306
|
flwr/server/superlink/serverappio/__init__.py,sha256=Fy4zJuoccZe5mZSEIpOmQvU6YeXFBa1M4eZuXXmJcn8,717
|
307
307
|
flwr/server/superlink/serverappio/serverappio_grpc.py,sha256=6-FUUt0GiLcBPljj8bBrUNeAITUoDQOLzaMihKo52hg,2326
|
308
|
-
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=
|
308
|
+
flwr/server/superlink/serverappio/serverappio_servicer.py,sha256=LFt_Wu2OOmbNQWZrLW6GoQFdvZ60bupF4c7lvLF7kDw,18617
|
309
309
|
flwr/server/superlink/simulation/__init__.py,sha256=Ry8DrNaZCMcQXvUc4FoCN2m3dvUQgWjasfp015o3Ec4,718
|
310
310
|
flwr/server/superlink/simulation/simulationio_grpc.py,sha256=0l0F-UjYEk6W7HZmI28PbJQLFxSi_vBHRkdchgdaSMQ,2224
|
311
|
-
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=
|
312
|
-
flwr/server/superlink/utils.py,sha256=
|
311
|
+
flwr/server/superlink/simulation/simulationio_servicer.py,sha256=8jACbVPe7YPLaR0hbpEofBBwWjc-uQPhf2FU1eNOtsw,7743
|
312
|
+
flwr/server/superlink/utils.py,sha256=SHx612HNv704oRqii3Q1SPtbRdn0AQQi1z-Rqg9moLk,3898
|
313
313
|
flwr/server/typing.py,sha256=LvO6gq7H6TAWhA9JFx0WyqHxU7FycyvhSsLjBLPgpts,1011
|
314
314
|
flwr/server/utils/__init__.py,sha256=U4gM84-uUFddarODDQkO6SjNUuGhFcsHJZMjSEbezkU,884
|
315
315
|
flwr/server/utils/tensorboard.py,sha256=3z3MeF0cu_U6ghNgRd0UQ5bunyDQKxCLpIpEdGMoCJ0,5466
|
@@ -332,18 +332,18 @@ flwr/simulation/run_simulation.py,sha256=Nvw_6hI71aE2nU95_tt1F9VSo3OJWrvA97e3XZu
|
|
332
332
|
flwr/simulation/simulationio_connection.py,sha256=mzS1C6EEREwQDPceDo30anAasmTDLb9qqV2tXlBhOUA,3494
|
333
333
|
flwr/supercore/__init__.py,sha256=pqkFoow_E6UhbBlhmoD1gmTH-33yJRhBsIZqxRPFZ7U,755
|
334
334
|
flwr/supercore/object_store/__init__.py,sha256=cdfPAmjINY6iOp8oI_LdcVh2simg469Mkdl4LLV4kHI,911
|
335
|
-
flwr/supercore/object_store/in_memory_object_store.py,sha256=
|
336
|
-
flwr/supercore/object_store/object_store.py,sha256=
|
335
|
+
flwr/supercore/object_store/in_memory_object_store.py,sha256=oflJcOuVNgx9A-B2da4VHDb1qj_Jub9wKFOrUBgtz_U,9630
|
336
|
+
flwr/supercore/object_store/object_store.py,sha256=VlZz-yzoWZtITbnYD8vwLZbFosv7vgr1XVNzByObeY0,5853
|
337
337
|
flwr/supercore/object_store/object_store_factory.py,sha256=QVwE2ywi7vsj2iKfvWWnNw3N_I7Rz91NUt2RpcbJ7iM,1527
|
338
338
|
flwr/superexec/__init__.py,sha256=YFqER0IJc1XEWfsX6AxZ9LSRq0sawPYrNYki-brvTIc,715
|
339
339
|
flwr/superexec/app.py,sha256=U2jjOHb2LGWoU7vrl9_czTzre9O2mPxu3CPGUZ86sK4,1465
|
340
|
-
flwr/superexec/deployment.py,sha256=
|
340
|
+
flwr/superexec/deployment.py,sha256=aDTRCM2V9iVS_gvwTSGaRIPGkm2Ro-CxFYin-Mba0P8,6853
|
341
341
|
flwr/superexec/exec_event_log_interceptor.py,sha256=7aBjZ4lkpOIyWut0s394OpMePr16g_Te594s-9aDM9Q,5774
|
342
342
|
flwr/superexec/exec_grpc.py,sha256=LS-CrwBayHQAvJz-zmzV5JsaEC49VumsS25nC0NgYXg,3364
|
343
|
-
flwr/superexec/exec_servicer.py,sha256=
|
343
|
+
flwr/superexec/exec_servicer.py,sha256=5bhBzEMwsWxJozSXONcRYqHp2OVwIUMhKFtIxmaF4c8,8494
|
344
344
|
flwr/superexec/exec_user_auth_interceptor.py,sha256=HpGHTcDKzB7XUiQHXgntNVFYL-VfP9Wj5tEVc04VOOw,5820
|
345
|
-
flwr/superexec/executor.py,sha256=
|
346
|
-
flwr/superexec/simulation.py,sha256=
|
345
|
+
flwr/superexec/executor.py,sha256=6kazVVypj-jtfeaHsqGElOv7FCrfqeQotYxVx1m4y84,3284
|
346
|
+
flwr/superexec/simulation.py,sha256=2iRVsC2dGLuqIAvwsznt_qE3u9A-yuPsj9q94Oit_As,4212
|
347
347
|
flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
348
348
|
flwr/supernode/__init__.py,sha256=KgeCaVvXWrU3rptNR1y0oBp4YtXbAcrnCcJAiOoWkI4,707
|
349
349
|
flwr/supernode/cli/__init__.py,sha256=JuEMr0-s9zv-PEWKuLB9tj1ocNfroSyNJ-oyv7ati9A,887
|
@@ -359,7 +359,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
|
|
359
359
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=vJyOjO2FXZ2URbnthmdsgs6948wbYfdq1L1V8Um-Lr8,895
|
360
360
|
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=LmzkxtNQBn5vVrHc0Bhq2WqaK6-LM2v4kfLBN0PiNNM,8522
|
361
361
|
flwr/supernode/start_client_internal.py,sha256=AkJ1FsBK6EpK7cmIGcae5WZazPhU71gileiSQogTZ-k,18164
|
362
|
-
flwr_nightly-1.19.0.
|
363
|
-
flwr_nightly-1.19.0.
|
364
|
-
flwr_nightly-1.19.0.
|
365
|
-
flwr_nightly-1.19.0.
|
362
|
+
flwr_nightly-1.19.0.dev20250612.dist-info/METADATA,sha256=XKojy0erL7FqHBslIYb56XNVEdor9P2F0mKQRV81t7U,15910
|
363
|
+
flwr_nightly-1.19.0.dev20250612.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
364
|
+
flwr_nightly-1.19.0.dev20250612.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
|
365
|
+
flwr_nightly-1.19.0.dev20250612.dist-info/RECORD,,
|
{flwr_nightly-1.19.0.dev20250611.dist-info → flwr_nightly-1.19.0.dev20250612.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|