flwr-nightly 1.7.0.dev20240119__py3-none-any.whl → 1.7.0.dev20240123__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.
@@ -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