flwr-nightly 1.7.0.dev20240119__py3-none-any.whl → 1.7.0.dev20240123__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/recordset.proto
4
+ # Protobuf Python Version: 4.25.0
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lwr/proto/recordset.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\"\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\"\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\"B\n\x05\x41rray\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05stype\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\x9f\x01\n\x12MetricsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12-\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x16.flwr.proto.Sint64ListH\x00\x42\x07\n\x05value\"\xd9\x02\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12-\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x16.flwr.proto.Sint64ListH\x00\x12)\n\tbool_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x19 \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"M\n\x10ParametersRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8f\x01\n\rMetricsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.MetricsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.MetricsRecordValue:\x02\x38\x01\"\x8f\x01\n\rConfigsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.ConfigsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.ConfigsRecordValue:\x02\x38\x01\"\x97\x03\n\tRecordSet\x12\x39\n\nparameters\x18\x01 \x03(\x0b\x32%.flwr.proto.RecordSet.ParametersEntry\x12\x33\n\x07metrics\x18\x02 \x03(\x0b\x32\".flwr.proto.RecordSet.MetricsEntry\x12\x33\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32\".flwr.proto.RecordSet.ConfigsEntry\x1aO\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.flwr.proto.ParametersRecord:\x02\x38\x01\x1aI\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.MetricsRecord:\x02\x38\x01\x1aI\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord:\x02\x38\x01\x62\x06proto3')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.recordset_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ DESCRIPTOR._options = None
24
+ _globals['_METRICSRECORD_DATAENTRY']._options = None
25
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_options = b'8\001'
26
+ _globals['_CONFIGSRECORD_DATAENTRY']._options = None
27
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_options = b'8\001'
28
+ _globals['_RECORDSET_PARAMETERSENTRY']._options = None
29
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_options = b'8\001'
30
+ _globals['_RECORDSET_METRICSENTRY']._options = None
31
+ _globals['_RECORDSET_METRICSENTRY']._serialized_options = b'8\001'
32
+ _globals['_RECORDSET_CONFIGSENTRY']._options = None
33
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_options = b'8\001'
34
+ _globals['_DOUBLELIST']._serialized_start=42
35
+ _globals['_DOUBLELIST']._serialized_end=68
36
+ _globals['_SINT64LIST']._serialized_start=70
37
+ _globals['_SINT64LIST']._serialized_end=96
38
+ _globals['_BOOLLIST']._serialized_start=98
39
+ _globals['_BOOLLIST']._serialized_end=122
40
+ _globals['_STRINGLIST']._serialized_start=124
41
+ _globals['_STRINGLIST']._serialized_end=150
42
+ _globals['_BYTESLIST']._serialized_start=152
43
+ _globals['_BYTESLIST']._serialized_end=177
44
+ _globals['_ARRAY']._serialized_start=179
45
+ _globals['_ARRAY']._serialized_end=245
46
+ _globals['_METRICSRECORDVALUE']._serialized_start=248
47
+ _globals['_METRICSRECORDVALUE']._serialized_end=407
48
+ _globals['_CONFIGSRECORDVALUE']._serialized_start=410
49
+ _globals['_CONFIGSRECORDVALUE']._serialized_end=755
50
+ _globals['_PARAMETERSRECORD']._serialized_start=757
51
+ _globals['_PARAMETERSRECORD']._serialized_end=834
52
+ _globals['_METRICSRECORD']._serialized_start=837
53
+ _globals['_METRICSRECORD']._serialized_end=980
54
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_start=905
55
+ _globals['_METRICSRECORD_DATAENTRY']._serialized_end=980
56
+ _globals['_CONFIGSRECORD']._serialized_start=983
57
+ _globals['_CONFIGSRECORD']._serialized_end=1126
58
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=1051
59
+ _globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=1126
60
+ _globals['_RECORDSET']._serialized_start=1129
61
+ _globals['_RECORDSET']._serialized_end=1536
62
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_start=1307
63
+ _globals['_RECORDSET_PARAMETERSENTRY']._serialized_end=1386
64
+ _globals['_RECORDSET_METRICSENTRY']._serialized_start=1388
65
+ _globals['_RECORDSET_METRICSENTRY']._serialized_end=1461
66
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_start=1463
67
+ _globals['_RECORDSET_CONFIGSENTRY']._serialized_end=1536
68
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,305 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import google.protobuf.descriptor
7
+ import google.protobuf.internal.containers
8
+ import google.protobuf.message
9
+ import typing
10
+ import typing_extensions
11
+
12
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
13
+
14
+ class DoubleList(google.protobuf.message.Message):
15
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
16
+ VALS_FIELD_NUMBER: builtins.int
17
+ @property
18
+ def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
19
+ def __init__(self,
20
+ *,
21
+ vals: typing.Optional[typing.Iterable[builtins.float]] = ...,
22
+ ) -> None: ...
23
+ def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
24
+ global___DoubleList = DoubleList
25
+
26
+ class Sint64List(google.protobuf.message.Message):
27
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
28
+ VALS_FIELD_NUMBER: builtins.int
29
+ @property
30
+ def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
31
+ def __init__(self,
32
+ *,
33
+ vals: typing.Optional[typing.Iterable[builtins.int]] = ...,
34
+ ) -> None: ...
35
+ def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
36
+ global___Sint64List = Sint64List
37
+
38
+ class BoolList(google.protobuf.message.Message):
39
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
40
+ VALS_FIELD_NUMBER: builtins.int
41
+ @property
42
+ def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
43
+ def __init__(self,
44
+ *,
45
+ vals: typing.Optional[typing.Iterable[builtins.bool]] = ...,
46
+ ) -> None: ...
47
+ def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
48
+ global___BoolList = BoolList
49
+
50
+ class StringList(google.protobuf.message.Message):
51
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
52
+ VALS_FIELD_NUMBER: builtins.int
53
+ @property
54
+ def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
55
+ def __init__(self,
56
+ *,
57
+ vals: typing.Optional[typing.Iterable[typing.Text]] = ...,
58
+ ) -> None: ...
59
+ def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
60
+ global___StringList = StringList
61
+
62
+ class BytesList(google.protobuf.message.Message):
63
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
64
+ VALS_FIELD_NUMBER: builtins.int
65
+ @property
66
+ def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
67
+ def __init__(self,
68
+ *,
69
+ vals: typing.Optional[typing.Iterable[builtins.bytes]] = ...,
70
+ ) -> None: ...
71
+ def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
72
+ global___BytesList = BytesList
73
+
74
+ class Array(google.protobuf.message.Message):
75
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
76
+ DTYPE_FIELD_NUMBER: builtins.int
77
+ SHAPE_FIELD_NUMBER: builtins.int
78
+ STYPE_FIELD_NUMBER: builtins.int
79
+ DATA_FIELD_NUMBER: builtins.int
80
+ dtype: typing.Text
81
+ @property
82
+ def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
83
+ stype: typing.Text
84
+ data: builtins.bytes
85
+ def __init__(self,
86
+ *,
87
+ dtype: typing.Text = ...,
88
+ shape: typing.Optional[typing.Iterable[builtins.int]] = ...,
89
+ stype: typing.Text = ...,
90
+ data: builtins.bytes = ...,
91
+ ) -> None: ...
92
+ def ClearField(self, field_name: typing_extensions.Literal["data",b"data","dtype",b"dtype","shape",b"shape","stype",b"stype"]) -> None: ...
93
+ global___Array = Array
94
+
95
+ class MetricsRecordValue(google.protobuf.message.Message):
96
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
97
+ DOUBLE_FIELD_NUMBER: builtins.int
98
+ SINT64_FIELD_NUMBER: builtins.int
99
+ DOUBLE_LIST_FIELD_NUMBER: builtins.int
100
+ SINT64_LIST_FIELD_NUMBER: builtins.int
101
+ double: builtins.float
102
+ """Single element"""
103
+
104
+ sint64: builtins.int
105
+ @property
106
+ def double_list(self) -> global___DoubleList:
107
+ """List types"""
108
+ pass
109
+ @property
110
+ def sint64_list(self) -> global___Sint64List: ...
111
+ def __init__(self,
112
+ *,
113
+ double: builtins.float = ...,
114
+ sint64: builtins.int = ...,
115
+ double_list: typing.Optional[global___DoubleList] = ...,
116
+ sint64_list: typing.Optional[global___Sint64List] = ...,
117
+ ) -> None: ...
118
+ def HasField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","value",b"value"]) -> builtins.bool: ...
119
+ def ClearField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","value",b"value"]) -> None: ...
120
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","double_list","sint64_list"]]: ...
121
+ global___MetricsRecordValue = MetricsRecordValue
122
+
123
+ class ConfigsRecordValue(google.protobuf.message.Message):
124
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
125
+ DOUBLE_FIELD_NUMBER: builtins.int
126
+ SINT64_FIELD_NUMBER: builtins.int
127
+ BOOL_FIELD_NUMBER: builtins.int
128
+ STRING_FIELD_NUMBER: builtins.int
129
+ BYTES_FIELD_NUMBER: builtins.int
130
+ DOUBLE_LIST_FIELD_NUMBER: builtins.int
131
+ SINT64_LIST_FIELD_NUMBER: builtins.int
132
+ BOOL_LIST_FIELD_NUMBER: builtins.int
133
+ STRING_LIST_FIELD_NUMBER: builtins.int
134
+ BYTES_LIST_FIELD_NUMBER: builtins.int
135
+ double: builtins.float
136
+ """Single element"""
137
+
138
+ sint64: builtins.int
139
+ bool: builtins.bool
140
+ string: typing.Text
141
+ bytes: builtins.bytes
142
+ @property
143
+ def double_list(self) -> global___DoubleList:
144
+ """List types"""
145
+ pass
146
+ @property
147
+ def sint64_list(self) -> global___Sint64List: ...
148
+ @property
149
+ def bool_list(self) -> global___BoolList: ...
150
+ @property
151
+ def string_list(self) -> global___StringList: ...
152
+ @property
153
+ def bytes_list(self) -> global___BytesList: ...
154
+ def __init__(self,
155
+ *,
156
+ double: builtins.float = ...,
157
+ sint64: builtins.int = ...,
158
+ bool: builtins.bool = ...,
159
+ string: typing.Text = ...,
160
+ bytes: builtins.bytes = ...,
161
+ double_list: typing.Optional[global___DoubleList] = ...,
162
+ sint64_list: typing.Optional[global___Sint64List] = ...,
163
+ bool_list: typing.Optional[global___BoolList] = ...,
164
+ string_list: typing.Optional[global___StringList] = ...,
165
+ bytes_list: typing.Optional[global___BytesList] = ...,
166
+ ) -> None: ...
167
+ def HasField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> builtins.bool: ...
168
+ def ClearField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> None: ...
169
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","bool","string","bytes","double_list","sint64_list","bool_list","string_list","bytes_list"]]: ...
170
+ global___ConfigsRecordValue = ConfigsRecordValue
171
+
172
+ class ParametersRecord(google.protobuf.message.Message):
173
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
174
+ DATA_KEYS_FIELD_NUMBER: builtins.int
175
+ DATA_VALUES_FIELD_NUMBER: builtins.int
176
+ @property
177
+ def data_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
178
+ @property
179
+ def data_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Array]: ...
180
+ def __init__(self,
181
+ *,
182
+ data_keys: typing.Optional[typing.Iterable[typing.Text]] = ...,
183
+ data_values: typing.Optional[typing.Iterable[global___Array]] = ...,
184
+ ) -> None: ...
185
+ def ClearField(self, field_name: typing_extensions.Literal["data_keys",b"data_keys","data_values",b"data_values"]) -> None: ...
186
+ global___ParametersRecord = ParametersRecord
187
+
188
+ class MetricsRecord(google.protobuf.message.Message):
189
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
190
+ class DataEntry(google.protobuf.message.Message):
191
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
192
+ KEY_FIELD_NUMBER: builtins.int
193
+ VALUE_FIELD_NUMBER: builtins.int
194
+ key: typing.Text
195
+ @property
196
+ def value(self) -> global___MetricsRecordValue: ...
197
+ def __init__(self,
198
+ *,
199
+ key: typing.Text = ...,
200
+ value: typing.Optional[global___MetricsRecordValue] = ...,
201
+ ) -> None: ...
202
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
203
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
204
+
205
+ DATA_FIELD_NUMBER: builtins.int
206
+ @property
207
+ def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricsRecordValue]: ...
208
+ def __init__(self,
209
+ *,
210
+ data: typing.Optional[typing.Mapping[typing.Text, global___MetricsRecordValue]] = ...,
211
+ ) -> None: ...
212
+ def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
213
+ global___MetricsRecord = MetricsRecord
214
+
215
+ class ConfigsRecord(google.protobuf.message.Message):
216
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
217
+ class DataEntry(google.protobuf.message.Message):
218
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
219
+ KEY_FIELD_NUMBER: builtins.int
220
+ VALUE_FIELD_NUMBER: builtins.int
221
+ key: typing.Text
222
+ @property
223
+ def value(self) -> global___ConfigsRecordValue: ...
224
+ def __init__(self,
225
+ *,
226
+ key: typing.Text = ...,
227
+ value: typing.Optional[global___ConfigsRecordValue] = ...,
228
+ ) -> None: ...
229
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
230
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
231
+
232
+ DATA_FIELD_NUMBER: builtins.int
233
+ @property
234
+ def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigsRecordValue]: ...
235
+ def __init__(self,
236
+ *,
237
+ data: typing.Optional[typing.Mapping[typing.Text, global___ConfigsRecordValue]] = ...,
238
+ ) -> None: ...
239
+ def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
240
+ global___ConfigsRecord = ConfigsRecord
241
+
242
+ class RecordSet(google.protobuf.message.Message):
243
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
244
+ class ParametersEntry(google.protobuf.message.Message):
245
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
246
+ KEY_FIELD_NUMBER: builtins.int
247
+ VALUE_FIELD_NUMBER: builtins.int
248
+ key: typing.Text
249
+ @property
250
+ def value(self) -> global___ParametersRecord: ...
251
+ def __init__(self,
252
+ *,
253
+ key: typing.Text = ...,
254
+ value: typing.Optional[global___ParametersRecord] = ...,
255
+ ) -> None: ...
256
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
257
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
258
+
259
+ class MetricsEntry(google.protobuf.message.Message):
260
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
261
+ KEY_FIELD_NUMBER: builtins.int
262
+ VALUE_FIELD_NUMBER: builtins.int
263
+ key: typing.Text
264
+ @property
265
+ def value(self) -> global___MetricsRecord: ...
266
+ def __init__(self,
267
+ *,
268
+ key: typing.Text = ...,
269
+ value: typing.Optional[global___MetricsRecord] = ...,
270
+ ) -> None: ...
271
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
272
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
273
+
274
+ class ConfigsEntry(google.protobuf.message.Message):
275
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
276
+ KEY_FIELD_NUMBER: builtins.int
277
+ VALUE_FIELD_NUMBER: builtins.int
278
+ key: typing.Text
279
+ @property
280
+ def value(self) -> global___ConfigsRecord: ...
281
+ def __init__(self,
282
+ *,
283
+ key: typing.Text = ...,
284
+ value: typing.Optional[global___ConfigsRecord] = ...,
285
+ ) -> None: ...
286
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
287
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
288
+
289
+ PARAMETERS_FIELD_NUMBER: builtins.int
290
+ METRICS_FIELD_NUMBER: builtins.int
291
+ CONFIGS_FIELD_NUMBER: builtins.int
292
+ @property
293
+ def parameters(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ParametersRecord]: ...
294
+ @property
295
+ def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricsRecord]: ...
296
+ @property
297
+ def configs(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigsRecord]: ...
298
+ def __init__(self,
299
+ *,
300
+ parameters: typing.Optional[typing.Mapping[typing.Text, global___ParametersRecord]] = ...,
301
+ metrics: typing.Optional[typing.Mapping[typing.Text, global___MetricsRecord]] = ...,
302
+ configs: typing.Optional[typing.Mapping[typing.Text, global___ConfigsRecord]] = ...,
303
+ ) -> None: ...
304
+ def ClearField(self, field_name: typing_extensions.Literal["configs",b"configs","metrics",b"metrics","parameters",b"parameters"]) -> None: ...
305
+ global___RecordSet = RecordSet
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -0,0 +1,4 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
flwr/proto/task_pb2.py CHANGED
@@ -13,10 +13,11 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
  from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
16
+ from flwr.proto import recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
16
17
  from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
17
18
 
18
19
 
19
- 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/transport.proto\"\xd1\x02\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(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12\x11\n\ttask_type\x18\x07 \x01(\t\x12)\n\x02sa\x18\x08 \x01(\x0b\x32\x1d.flwr.proto.SecureAggregation\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\"\\\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(\x12\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(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xf3\x03\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12\x33\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x1c.flwr.proto.Value.DoubleListH\x00\x12\x33\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x1c.flwr.proto.Value.Sint64ListH\x00\x12/\n\tbool_list\x18\x17 \x01(\x0b\x32\x1a.flwr.proto.Value.BoolListH\x00\x12\x33\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x1c.flwr.proto.Value.StringListH\x00\x12\x31\n\nbytes_list\x18\x19 \x01(\x0b\x32\x1b.flwr.proto.Value.BytesListH\x00\x1a\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\x1a\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\x1a\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\x1a\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\x1a\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
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\x1a\x66lwr/proto/transport.proto\"\xff\x02\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(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12\x11\n\ttask_type\x18\x07 \x01(\t\x12(\n\trecordset\x18\x08 \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\x12-\n\x02sa\x18g \x01(\x0b\x32\x1d.flwr.proto.SecureAggregationB\x02\x18\x01\"\\\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(\x12\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(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xcc\x02\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12-\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x16.flwr.proto.Sint64ListH\x00\x12)\n\tbool_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x19 \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
20
21
 
21
22
  _globals = globals()
22
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -27,28 +28,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
27
28
  _globals['_TASK'].fields_by_name['legacy_server_message']._serialized_options = b'\030\001'
28
29
  _globals['_TASK'].fields_by_name['legacy_client_message']._options = None
29
30
  _globals['_TASK'].fields_by_name['legacy_client_message']._serialized_options = b'\030\001'
31
+ _globals['_TASK'].fields_by_name['sa']._options = None
32
+ _globals['_TASK'].fields_by_name['sa']._serialized_options = b'\030\001'
30
33
  _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._options = None
31
34
  _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_options = b'8\001'
32
- _globals['_TASK']._serialized_start=89
33
- _globals['_TASK']._serialized_end=426
34
- _globals['_TASKINS']._serialized_start=428
35
- _globals['_TASKINS']._serialized_end=520
36
- _globals['_TASKRES']._serialized_start=522
37
- _globals['_TASKRES']._serialized_end=614
38
- _globals['_VALUE']._serialized_start=617
39
- _globals['_VALUE']._serialized_end=1116
40
- _globals['_VALUE_DOUBLELIST']._serialized_start=972
41
- _globals['_VALUE_DOUBLELIST']._serialized_end=998
42
- _globals['_VALUE_SINT64LIST']._serialized_start=1000
43
- _globals['_VALUE_SINT64LIST']._serialized_end=1026
44
- _globals['_VALUE_BOOLLIST']._serialized_start=1028
45
- _globals['_VALUE_BOOLLIST']._serialized_end=1052
46
- _globals['_VALUE_STRINGLIST']._serialized_start=1054
47
- _globals['_VALUE_STRINGLIST']._serialized_end=1080
48
- _globals['_VALUE_BYTESLIST']._serialized_start=1082
49
- _globals['_VALUE_BYTESLIST']._serialized_end=1107
50
- _globals['_SECUREAGGREGATION']._serialized_start=1119
51
- _globals['_SECUREAGGREGATION']._serialized_end=1279
52
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1210
53
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1279
35
+ _globals['_TASK']._serialized_start=117
36
+ _globals['_TASK']._serialized_end=500
37
+ _globals['_TASKINS']._serialized_start=502
38
+ _globals['_TASKINS']._serialized_end=594
39
+ _globals['_TASKRES']._serialized_start=596
40
+ _globals['_TASKRES']._serialized_end=688
41
+ _globals['_VALUE']._serialized_start=691
42
+ _globals['_VALUE']._serialized_end=1023
43
+ _globals['_SECUREAGGREGATION']._serialized_start=1026
44
+ _globals['_SECUREAGGREGATION']._serialized_end=1186
45
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1117
46
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1186
54
47
  # @@protoc_insertion_point(module_scope)
flwr/proto/task_pb2.pyi CHANGED
@@ -4,6 +4,7 @@ isort:skip_file
4
4
  """
5
5
  import builtins
6
6
  import flwr.proto.node_pb2
7
+ import flwr.proto.recordset_pb2
7
8
  import flwr.proto.transport_pb2
8
9
  import google.protobuf.descriptor
9
10
  import google.protobuf.internal.containers
@@ -22,9 +23,10 @@ class Task(google.protobuf.message.Message):
22
23
  TTL_FIELD_NUMBER: builtins.int
23
24
  ANCESTRY_FIELD_NUMBER: builtins.int
24
25
  TASK_TYPE_FIELD_NUMBER: builtins.int
25
- SA_FIELD_NUMBER: builtins.int
26
+ RECORDSET_FIELD_NUMBER: builtins.int
26
27
  LEGACY_SERVER_MESSAGE_FIELD_NUMBER: builtins.int
27
28
  LEGACY_CLIENT_MESSAGE_FIELD_NUMBER: builtins.int
29
+ SA_FIELD_NUMBER: builtins.int
28
30
  @property
29
31
  def producer(self) -> flwr.proto.node_pb2.Node: ...
30
32
  @property
@@ -36,11 +38,13 @@ class Task(google.protobuf.message.Message):
36
38
  def ancestry(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
37
39
  task_type: typing.Text
38
40
  @property
39
- def sa(self) -> global___SecureAggregation: ...
41
+ def recordset(self) -> flwr.proto.recordset_pb2.RecordSet: ...
40
42
  @property
41
43
  def legacy_server_message(self) -> flwr.proto.transport_pb2.ServerMessage: ...
42
44
  @property
43
45
  def legacy_client_message(self) -> flwr.proto.transport_pb2.ClientMessage: ...
46
+ @property
47
+ def sa(self) -> global___SecureAggregation: ...
44
48
  def __init__(self,
45
49
  *,
46
50
  producer: typing.Optional[flwr.proto.node_pb2.Node] = ...,
@@ -50,12 +54,13 @@ class Task(google.protobuf.message.Message):
50
54
  ttl: typing.Text = ...,
51
55
  ancestry: typing.Optional[typing.Iterable[typing.Text]] = ...,
52
56
  task_type: typing.Text = ...,
53
- sa: typing.Optional[global___SecureAggregation] = ...,
57
+ recordset: typing.Optional[flwr.proto.recordset_pb2.RecordSet] = ...,
54
58
  legacy_server_message: typing.Optional[flwr.proto.transport_pb2.ServerMessage] = ...,
55
59
  legacy_client_message: typing.Optional[flwr.proto.transport_pb2.ClientMessage] = ...,
60
+ sa: typing.Optional[global___SecureAggregation] = ...,
56
61
  ) -> None: ...
57
- def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa"]) -> 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","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
62
+ def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","recordset",b"recordset","sa",b"sa"]) -> builtins.bool: ...
63
+ def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","recordset",b"recordset","sa",b"sa","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
59
64
  global___Task = Task
60
65
 
61
66
  class TaskIns(google.protobuf.message.Message):
@@ -104,61 +109,6 @@ global___TaskRes = TaskRes
104
109
 
105
110
  class Value(google.protobuf.message.Message):
106
111
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
107
- class DoubleList(google.protobuf.message.Message):
108
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
109
- VALS_FIELD_NUMBER: builtins.int
110
- @property
111
- def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
112
- def __init__(self,
113
- *,
114
- vals: typing.Optional[typing.Iterable[builtins.float]] = ...,
115
- ) -> None: ...
116
- def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
117
-
118
- class Sint64List(google.protobuf.message.Message):
119
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
120
- VALS_FIELD_NUMBER: builtins.int
121
- @property
122
- def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
123
- def __init__(self,
124
- *,
125
- vals: typing.Optional[typing.Iterable[builtins.int]] = ...,
126
- ) -> None: ...
127
- def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
128
-
129
- class BoolList(google.protobuf.message.Message):
130
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
131
- VALS_FIELD_NUMBER: builtins.int
132
- @property
133
- def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
134
- def __init__(self,
135
- *,
136
- vals: typing.Optional[typing.Iterable[builtins.bool]] = ...,
137
- ) -> None: ...
138
- def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
139
-
140
- class StringList(google.protobuf.message.Message):
141
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
142
- VALS_FIELD_NUMBER: builtins.int
143
- @property
144
- def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
145
- def __init__(self,
146
- *,
147
- vals: typing.Optional[typing.Iterable[typing.Text]] = ...,
148
- ) -> None: ...
149
- def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
150
-
151
- class BytesList(google.protobuf.message.Message):
152
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
153
- VALS_FIELD_NUMBER: builtins.int
154
- @property
155
- def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
156
- def __init__(self,
157
- *,
158
- vals: typing.Optional[typing.Iterable[builtins.bytes]] = ...,
159
- ) -> None: ...
160
- def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
161
-
162
112
  DOUBLE_FIELD_NUMBER: builtins.int
163
113
  SINT64_FIELD_NUMBER: builtins.int
164
114
  BOOL_FIELD_NUMBER: builtins.int
@@ -177,17 +127,17 @@ class Value(google.protobuf.message.Message):
177
127
  string: typing.Text
178
128
  bytes: builtins.bytes
179
129
  @property
180
- def double_list(self) -> global___Value.DoubleList:
130
+ def double_list(self) -> flwr.proto.recordset_pb2.DoubleList:
181
131
  """List types"""
182
132
  pass
183
133
  @property
184
- def sint64_list(self) -> global___Value.Sint64List: ...
134
+ def sint64_list(self) -> flwr.proto.recordset_pb2.Sint64List: ...
185
135
  @property
186
- def bool_list(self) -> global___Value.BoolList: ...
136
+ def bool_list(self) -> flwr.proto.recordset_pb2.BoolList: ...
187
137
  @property
188
- def string_list(self) -> global___Value.StringList: ...
138
+ def string_list(self) -> flwr.proto.recordset_pb2.StringList: ...
189
139
  @property
190
- def bytes_list(self) -> global___Value.BytesList: ...
140
+ def bytes_list(self) -> flwr.proto.recordset_pb2.BytesList: ...
191
141
  def __init__(self,
192
142
  *,
193
143
  double: builtins.float = ...,
@@ -195,11 +145,11 @@ class Value(google.protobuf.message.Message):
195
145
  bool: builtins.bool = ...,
196
146
  string: typing.Text = ...,
197
147
  bytes: builtins.bytes = ...,
198
- double_list: typing.Optional[global___Value.DoubleList] = ...,
199
- sint64_list: typing.Optional[global___Value.Sint64List] = ...,
200
- bool_list: typing.Optional[global___Value.BoolList] = ...,
201
- string_list: typing.Optional[global___Value.StringList] = ...,
202
- bytes_list: typing.Optional[global___Value.BytesList] = ...,
148
+ double_list: typing.Optional[flwr.proto.recordset_pb2.DoubleList] = ...,
149
+ sint64_list: typing.Optional[flwr.proto.recordset_pb2.Sint64List] = ...,
150
+ bool_list: typing.Optional[flwr.proto.recordset_pb2.BoolList] = ...,
151
+ string_list: typing.Optional[flwr.proto.recordset_pb2.StringList] = ...,
152
+ bytes_list: typing.Optional[flwr.proto.recordset_pb2.BytesList] = ...,
203
153
  ) -> None: ...
204
154
  def HasField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> builtins.bool: ...
205
155
  def ClearField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint64_list",b"sint64_list","string",b"string","string_list",b"string_list","value",b"value"]) -> None: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.7.0.dev20240119
3
+ Version: 1.7.0.dev20240123
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.dev
6
6
  License: Apache-2.0