flwr-nightly 1.16.0.dev20250210__py3-none-any.whl → 1.16.0.dev20250213__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- flwr/cli/new/templates/app/README.baseline.md.tpl +4 -4
- flwr/cli/new/templates/app/README.md.tpl +1 -1
- flwr/proto/task_pb2.py +6 -6
- flwr/proto/task_pb2.pyi +1 -4
- flwr/server/driver/inmemory_driver.py +0 -1
- flwr/server/superlink/driver/serverappio_servicer.py +1 -5
- flwr/server/superlink/fleet/message_handler/message_handler.py +0 -4
- flwr/server/superlink/fleet/vce/vce_api.py +0 -1
- flwr/server/superlink/linkstate/sqlite_linkstate.py +0 -6
- flwr/server/utils/validator.py +0 -3
- {flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/METADATA +2 -2
- {flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/RECORD +15 -15
- {flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/entry_points.txt +0 -0
@@ -13,7 +13,7 @@ dataset: [dataset1, dataset2] # TODO: list of datasets you include in your basel
|
|
13
13
|
|
14
14
|
> [!IMPORTANT]
|
15
15
|
> To help having all baselines similarly formatted and structured, we have included two scripts in `baselines/dev` that when run will format your code and run some tests checking if it's formatted.
|
16
|
-
> These checks use standard packages such as `isort`, `black`, `pylint` and others. You as a baseline creator will need to install additional
|
16
|
+
> These checks use standard packages such as `isort`, `black`, `pylint` and others. You as a baseline creator will need to install additional packages. These are already specified in the `pyproject.toml` of
|
17
17
|
> your baseline. Follow these steps:
|
18
18
|
|
19
19
|
```bash
|
@@ -66,9 +66,9 @@ cd .. # so you are in the `flower/baselines` directory
|
|
66
66
|
|
67
67
|
## About this baseline
|
68
68
|
|
69
|
-
**What’s implemented:** :warning: *_Concisely describe what experiment(s) (e.g. Figure 1, Table 2, etc) in the publication can be replicated by running the code. Please only use a few sentences. ”_*
|
69
|
+
**What’s implemented:** :warning: *_Concisely describe what experiment(s) (e.g. Figure 1, Table 2, etc.) in the publication can be replicated by running the code. Please only use a few sentences. ”_*
|
70
70
|
|
71
|
-
**Datasets:** :warning: *_List the datasets you used (if you used a medium to large dataset, >10GB please also include the sizes of the dataset). We highly recommend using [FlowerDatasets](https://flower.ai/docs/datasets/index.html) to download and partition your dataset. If you have other ways to download the data, you can also use `FlowerDatasets` to
|
71
|
+
**Datasets:** :warning: *_List the datasets you used (if you used a medium to large dataset, >10GB please also include the sizes of the dataset). We highly recommend using [FlowerDatasets](https://flower.ai/docs/datasets/index.html) to download and partition your dataset. If you have other ways to download the data, you can also use `FlowerDatasets` to partition it._*
|
72
72
|
|
73
73
|
**Hardware Setup:** :warning: *_Give some details about the hardware (e.g. a server with 8x V100 32GB and 256GB of RAM) you used to run the experiments for this baseline. Indicate how long it took to run the experiments. Someone out there might not have access to the same resources you have so, could you list the absolute minimum hardware needed to run the experiment in a reasonable amount of time ? (e.g. minimum is 1x 16GB GPU otherwise a client model can’t be trained with a sufficiently large batch size). Could you test this works too?_*
|
74
74
|
|
@@ -122,6 +122,6 @@ flwr run . --run-config learning-rate=0.1,coefficient=0.123
|
|
122
122
|
flwr run . --run-config <my-big-experiment-config>.toml
|
123
123
|
```
|
124
124
|
|
125
|
-
:warning: _It is preferable to show a single
|
125
|
+
:warning: _It is preferable to show a single command (or multiple commands if they belong to the same experiment) and then a table/plot with the expected results, instead of showing all the commands first and then all the results/plots._
|
126
126
|
:warning: _If you present plots or other figures, please include either a Jupyter notebook showing how to create them or include a utility function that can be called after the experiments finish running._
|
127
127
|
:warning: If you include plots or figures, save them in `.png` format and place them in a new directory named `_static` at the same level as your `README.md`.
|
@@ -18,7 +18,7 @@ Refer to the [How to Run Simulations](https://flower.ai/docs/framework/how-to-ru
|
|
18
18
|
|
19
19
|
## Run with the Deployment Engine
|
20
20
|
|
21
|
-
Follow this [how-to guide](https://flower.ai/docs/framework/how-to-run-flower-with-deployment-engine.html) to run the same app in this example but with Flower's Deployment Engine. After that, you might be
|
21
|
+
Follow this [how-to guide](https://flower.ai/docs/framework/how-to-run-flower-with-deployment-engine.html) to run the same app in this example but with Flower's Deployment Engine. After that, you might be interested in setting up [secure TLS-enabled communications](https://flower.ai/docs/framework/how-to-enable-tls-connections.html) and [SuperNode authentication](https://flower.ai/docs/framework/how-to-authenticate-supernodes.html) in your federation.
|
22
22
|
|
23
23
|
You can run Flower on Docker too! Check out the [Flower with Docker](https://flower.ai/docs/framework/docker/index.html) documentation.
|
24
24
|
|
flwr/proto/task_pb2.py
CHANGED
@@ -17,7 +17,7 @@ from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
|
|
17
17
|
from flwr.proto import error_pb2 as flwr_dot_proto_dot_error__pb2
|
18
18
|
|
19
19
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x16\x66lwr/proto/error.proto\"\
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/recordset.proto\x1a\x16\x66lwr/proto/error.proto\"\xf6\x01\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x06 \x01(\x01\x12\x10\n\x08\x61ncestry\x18\x07 \x03(\t\x12\x11\n\ttask_type\x18\x08 \x01(\t\x12(\n\trecordset\x18\t \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\n \x01(\x0b\x32\x11.flwr.proto.Error\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Taskb\x06proto3')
|
21
21
|
|
22
22
|
_globals = globals()
|
23
23
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -25,9 +25,9 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _glob
|
|
25
25
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
26
26
|
DESCRIPTOR._options = None
|
27
27
|
_globals['_TASK']._serialized_start=113
|
28
|
-
_globals['_TASK']._serialized_end=
|
29
|
-
_globals['_TASKINS']._serialized_start=
|
30
|
-
_globals['_TASKINS']._serialized_end=
|
31
|
-
_globals['_TASKRES']._serialized_start=
|
32
|
-
_globals['_TASKRES']._serialized_end=
|
28
|
+
_globals['_TASK']._serialized_end=359
|
29
|
+
_globals['_TASKINS']._serialized_start=361
|
30
|
+
_globals['_TASKINS']._serialized_end=453
|
31
|
+
_globals['_TASKRES']._serialized_start=455
|
32
|
+
_globals['_TASKRES']._serialized_end=547
|
33
33
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/task_pb2.pyi
CHANGED
@@ -20,7 +20,6 @@ class Task(google.protobuf.message.Message):
|
|
20
20
|
CONSUMER_FIELD_NUMBER: builtins.int
|
21
21
|
CREATED_AT_FIELD_NUMBER: builtins.int
|
22
22
|
DELIVERED_AT_FIELD_NUMBER: builtins.int
|
23
|
-
PUSHED_AT_FIELD_NUMBER: builtins.int
|
24
23
|
TTL_FIELD_NUMBER: builtins.int
|
25
24
|
ANCESTRY_FIELD_NUMBER: builtins.int
|
26
25
|
TASK_TYPE_FIELD_NUMBER: builtins.int
|
@@ -32,7 +31,6 @@ class Task(google.protobuf.message.Message):
|
|
32
31
|
def consumer(self) -> flwr.proto.node_pb2.Node: ...
|
33
32
|
created_at: builtins.float
|
34
33
|
delivered_at: typing.Text
|
35
|
-
pushed_at: builtins.float
|
36
34
|
ttl: builtins.float
|
37
35
|
@property
|
38
36
|
def ancestry(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
|
@@ -47,7 +45,6 @@ class Task(google.protobuf.message.Message):
|
|
47
45
|
consumer: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
48
46
|
created_at: builtins.float = ...,
|
49
47
|
delivered_at: typing.Text = ...,
|
50
|
-
pushed_at: builtins.float = ...,
|
51
48
|
ttl: builtins.float = ...,
|
52
49
|
ancestry: typing.Optional[typing.Iterable[typing.Text]] = ...,
|
53
50
|
task_type: typing.Text = ...,
|
@@ -55,7 +52,7 @@ class Task(google.protobuf.message.Message):
|
|
55
52
|
error: typing.Optional[flwr.proto.error_pb2.Error] = ...,
|
56
53
|
) -> None: ...
|
57
54
|
def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","error",b"error","producer",b"producer","recordset",b"recordset"]) -> builtins.bool: ...
|
58
|
-
def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","error",b"error","producer",b"producer","
|
55
|
+
def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","error",b"error","producer",b"producer","recordset",b"recordset","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
|
59
56
|
global___Task = Task
|
60
57
|
|
61
58
|
class TaskIns(google.protobuf.message.Message):
|
@@ -126,7 +126,6 @@ class InMemoryDriver(Driver):
|
|
126
126
|
# Convert Message to TaskIns
|
127
127
|
taskins = message_to_taskins(msg)
|
128
128
|
# Store in state
|
129
|
-
taskins.task.pushed_at = time.time()
|
130
129
|
task_id = self.state.store_task_ins(taskins)
|
131
130
|
if task_id:
|
132
131
|
task_ids.append(str(task_id))
|
@@ -22,7 +22,7 @@ from uuid import UUID
|
|
22
22
|
|
23
23
|
import grpc
|
24
24
|
|
25
|
-
from flwr.common import ConfigsRecord
|
25
|
+
from flwr.common import ConfigsRecord
|
26
26
|
from flwr.common.constant import Status
|
27
27
|
from flwr.common.logger import log
|
28
28
|
from flwr.common.serde import (
|
@@ -151,9 +151,6 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
151
151
|
context,
|
152
152
|
)
|
153
153
|
|
154
|
-
# Set pushed_at (timestamp in seconds)
|
155
|
-
pushed_at = now().timestamp()
|
156
|
-
|
157
154
|
# Validate request and insert in State
|
158
155
|
_raise_if(
|
159
156
|
validation_error=len(request.messages_list) == 0,
|
@@ -165,7 +162,6 @@ class ServerAppIoServicer(serverappio_pb2_grpc.ServerAppIoServicer):
|
|
165
162
|
message_proto = request.messages_list.pop(0)
|
166
163
|
message = message_from_proto(message_proto=message_proto)
|
167
164
|
task_ins = message_to_taskins(message=message)
|
168
|
-
task_ins.task.pushed_at = pushed_at
|
169
165
|
validation_errors = validate_task_ins_or_res(task_ins)
|
170
166
|
_raise_if(
|
171
167
|
validation_error=bool(validation_errors),
|
@@ -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
|
|
@@ -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"],
|
flwr/server/utils/validator.py
CHANGED
@@ -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()
|
{flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.16.0.
|
3
|
+
Version: 1.16.0.dev20250213
|
4
4
|
Summary: Flower: A Friendly Federated AI Framework
|
5
5
|
Home-page: https://flower.ai
|
6
6
|
License: Apache-2.0
|
@@ -40,7 +40,7 @@ Requires-Dist: pathspec (>=0.12.1,<0.13.0)
|
|
40
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.
|
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"
|
{flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/RECORD
RENAMED
@@ -18,9 +18,9 @@ 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=
|
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=
|
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
|
@@ -207,8 +207,8 @@ flwr/proto/simulationio_pb2.py,sha256=GOOmivAJPLQ6mPXrfKS8CyYeE6Kk-Q5mInLz5pyZSs
|
|
207
207
|
flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
|
208
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=
|
211
|
-
flwr/proto/task_pb2.pyi,sha256=
|
210
|
+
flwr/proto/task_pb2.py,sha256=pFKpq2QSvmFQOEpv2bgCG9jPAVauIHXQ9p5ASW-Z6lE,2322
|
211
|
+
flwr/proto/task_pb2.pyi,sha256=PZXt-QkD-hFzTlgNVVx6SGvgbTCweBfisivEi_HfDWc,4183
|
212
212
|
flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
213
213
|
flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
214
214
|
flwr/proto/transport_pb2.py,sha256=P-jX_tUyk_8xFe-vIUUSfZlHGtk2Ou3A8eXdBKkp5AY,9824
|
@@ -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=
|
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=
|
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
|
@@ -282,19 +282,19 @@ flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fG
|
|
282
282
|
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=syWWZgsU3PHvIuvSoJxUTbEdkOtyV6psXAbRowNE_yY,5533
|
283
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=
|
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=
|
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=
|
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=
|
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.16.0.
|
331
|
-
flwr_nightly-1.16.0.
|
332
|
-
flwr_nightly-1.16.0.
|
333
|
-
flwr_nightly-1.16.0.
|
334
|
-
flwr_nightly-1.16.0.
|
330
|
+
flwr_nightly-1.16.0.dev20250213.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
331
|
+
flwr_nightly-1.16.0.dev20250213.dist-info/METADATA,sha256=LzNrmrFtN1S3jw0Jhj2MIusrQTiMRITrn3yHDG-bhdc,15873
|
332
|
+
flwr_nightly-1.16.0.dev20250213.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
333
|
+
flwr_nightly-1.16.0.dev20250213.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
|
334
|
+
flwr_nightly-1.16.0.dev20250213.dist-info/RECORD,,
|
{flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/LICENSE
RENAMED
File without changes
|
{flwr_nightly-1.16.0.dev20250210.dist-info → flwr_nightly-1.16.0.dev20250213.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|