flwr-nightly 1.12.0.dev20240926__py3-none-any.whl → 1.12.0.dev20240927__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.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- flwr/client/grpc_rere_client/client_interceptor.py +3 -0
- flwr/common/serde.py +17 -24
- flwr/proto/recordset_pb2.py +37 -37
- flwr/proto/recordset_pb2.pyi +35 -31
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +4 -0
- {flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/METADATA +1 -1
- {flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/RECORD +10 -10
- {flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/entry_points.txt +0 -0
|
@@ -31,6 +31,7 @@ from flwr.common.secure_aggregation.crypto.symmetric_encryption import (
|
|
|
31
31
|
generate_shared_key,
|
|
32
32
|
public_key_to_bytes,
|
|
33
33
|
)
|
|
34
|
+
from flwr.proto.fab_pb2 import GetFabRequest # pylint: disable=E0611
|
|
34
35
|
from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
35
36
|
CreateNodeRequest,
|
|
36
37
|
DeleteNodeRequest,
|
|
@@ -50,6 +51,7 @@ Request = Union[
|
|
|
50
51
|
PushTaskResRequest,
|
|
51
52
|
GetRunRequest,
|
|
52
53
|
PingRequest,
|
|
54
|
+
GetFabRequest,
|
|
53
55
|
]
|
|
54
56
|
|
|
55
57
|
|
|
@@ -126,6 +128,7 @@ class AuthenticateClientInterceptor(grpc.UnaryUnaryClientInterceptor): # type:
|
|
|
126
128
|
PushTaskResRequest,
|
|
127
129
|
GetRunRequest,
|
|
128
130
|
PingRequest,
|
|
131
|
+
GetFabRequest,
|
|
129
132
|
),
|
|
130
133
|
):
|
|
131
134
|
if self.shared_secret is None:
|
flwr/common/serde.py
CHANGED
|
@@ -33,12 +33,12 @@ from flwr.proto.recordset_pb2 import Array as ProtoArray
|
|
|
33
33
|
from flwr.proto.recordset_pb2 import BoolList, BytesList
|
|
34
34
|
from flwr.proto.recordset_pb2 import ConfigsRecord as ProtoConfigsRecord
|
|
35
35
|
from flwr.proto.recordset_pb2 import ConfigsRecordValue as ProtoConfigsRecordValue
|
|
36
|
-
from flwr.proto.recordset_pb2 import DoubleList
|
|
36
|
+
from flwr.proto.recordset_pb2 import DoubleList
|
|
37
37
|
from flwr.proto.recordset_pb2 import MetricsRecord as ProtoMetricsRecord
|
|
38
38
|
from flwr.proto.recordset_pb2 import MetricsRecordValue as ProtoMetricsRecordValue
|
|
39
39
|
from flwr.proto.recordset_pb2 import ParametersRecord as ProtoParametersRecord
|
|
40
40
|
from flwr.proto.recordset_pb2 import RecordSet as ProtoRecordSet
|
|
41
|
-
from flwr.proto.recordset_pb2 import StringList
|
|
41
|
+
from flwr.proto.recordset_pb2 import SintList, StringList, UintList
|
|
42
42
|
from flwr.proto.run_pb2 import Run as ProtoRun
|
|
43
43
|
from flwr.proto.task_pb2 import Task, TaskIns, TaskRes
|
|
44
44
|
from flwr.proto.transport_pb2 import (
|
|
@@ -340,6 +340,7 @@ def metrics_from_proto(proto: Any) -> typing.Metrics:
|
|
|
340
340
|
|
|
341
341
|
|
|
342
342
|
# === Scalar messages ===
|
|
343
|
+
INT64_MAX_VALUE = 9223372036854775807 # (1 << 63) - 1
|
|
343
344
|
|
|
344
345
|
|
|
345
346
|
def scalar_to_proto(scalar: typing.Scalar) -> Scalar:
|
|
@@ -354,9 +355,10 @@ def scalar_to_proto(scalar: typing.Scalar) -> Scalar:
|
|
|
354
355
|
return Scalar(double=scalar)
|
|
355
356
|
|
|
356
357
|
if isinstance(scalar, int):
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
358
|
+
# Use uint64 for integers larger than the maximum value of sint64
|
|
359
|
+
if scalar > INT64_MAX_VALUE:
|
|
360
|
+
return Scalar(uint64=scalar)
|
|
361
|
+
return Scalar(sint64=scalar)
|
|
360
362
|
|
|
361
363
|
if isinstance(scalar, str):
|
|
362
364
|
return Scalar(string=scalar)
|
|
@@ -378,14 +380,14 @@ def scalar_from_proto(scalar_msg: Scalar) -> typing.Scalar:
|
|
|
378
380
|
|
|
379
381
|
_type_to_field: dict[type, str] = {
|
|
380
382
|
float: "double",
|
|
381
|
-
int: "
|
|
383
|
+
int: "sint64",
|
|
382
384
|
bool: "bool",
|
|
383
385
|
str: "string",
|
|
384
386
|
bytes: "bytes",
|
|
385
387
|
}
|
|
386
388
|
_list_type_to_class_and_field: dict[type, tuple[type[GrpcMessage], str]] = {
|
|
387
389
|
float: (DoubleList, "double_list"),
|
|
388
|
-
int: (
|
|
390
|
+
int: (SintList, "sint_list"),
|
|
389
391
|
bool: (BoolList, "bool_list"),
|
|
390
392
|
str: (StringList, "string_list"),
|
|
391
393
|
bytes: (BytesList, "bytes_list"),
|
|
@@ -393,17 +395,9 @@ _list_type_to_class_and_field: dict[type, tuple[type[GrpcMessage], str]] = {
|
|
|
393
395
|
T = TypeVar("T")
|
|
394
396
|
|
|
395
397
|
|
|
396
|
-
def
|
|
397
|
-
"""
|
|
398
|
-
|
|
399
|
-
return Int(uint64=value)
|
|
400
|
-
return Int(sint64=value)
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
def int_from_proto(value_proto: Int) -> int:
|
|
404
|
-
"""Deserialize a int from `Int`."""
|
|
405
|
-
fld = cast(str, value_proto.WhichOneof("int"))
|
|
406
|
-
return cast(int, getattr(value_proto, fld))
|
|
398
|
+
def _is_uint64(value: Any) -> bool:
|
|
399
|
+
"""Check if a value is uint64."""
|
|
400
|
+
return isinstance(value, int) and value > INT64_MAX_VALUE
|
|
407
401
|
|
|
408
402
|
|
|
409
403
|
def _record_value_to_proto(
|
|
@@ -419,15 +413,16 @@ def _record_value_to_proto(
|
|
|
419
413
|
# Note: `isinstance(False, int) == True`.
|
|
420
414
|
if isinstance(value, t):
|
|
421
415
|
fld = _type_to_field[t]
|
|
422
|
-
if t is int:
|
|
423
|
-
fld = "uint64"
|
|
416
|
+
if t is int and _is_uint64(value):
|
|
417
|
+
fld = "uint64"
|
|
424
418
|
arg[fld] = value
|
|
425
419
|
return proto_class(**arg)
|
|
426
420
|
# List
|
|
427
421
|
if isinstance(value, list) and all(isinstance(item, t) for item in value):
|
|
428
422
|
list_class, fld = _list_type_to_class_and_field[t]
|
|
429
|
-
if
|
|
430
|
-
|
|
423
|
+
# Use UintList if any element is of type `uint64`.
|
|
424
|
+
if t is int and any(_is_uint64(v) for v in value):
|
|
425
|
+
list_class, fld = UintList, "uint_list"
|
|
431
426
|
arg[fld] = list_class(vals=value)
|
|
432
427
|
return proto_class(**arg)
|
|
433
428
|
# Invalid types
|
|
@@ -442,8 +437,6 @@ def _record_value_from_proto(value_proto: GrpcMessage) -> Any:
|
|
|
442
437
|
value_field = cast(str, value_proto.WhichOneof("value"))
|
|
443
438
|
if value_field.endswith("list"):
|
|
444
439
|
value = list(getattr(value_proto, value_field).vals)
|
|
445
|
-
if value_field == "int_list":
|
|
446
|
-
value = [int_from_proto(v) for v in value]
|
|
447
440
|
else:
|
|
448
441
|
value = getattr(value_proto, value_field)
|
|
449
442
|
return value
|
flwr/proto/recordset_pb2.py
CHANGED
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lwr/proto/recordset.proto\x12\nflwr.proto\"
|
|
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\"\x18\n\x08SintList\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08UintList\x12\x0c\n\x04vals\x18\x01 \x03(\x04\"\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\"\xd8\x01\n\x12MetricsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x42\x07\n\x05value\"\x92\x03\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12\x0e\n\x04\x62ool\x18\x04 \x01(\x08H\x00\x12\x10\n\x06string\x18\x05 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x06 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x12)\n\tbool_list\x18\x18 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x19 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x1a \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
18
|
|
|
19
19
|
_globals = globals()
|
|
20
20
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -31,40 +31,40 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
31
31
|
_globals['_RECORDSET_METRICSENTRY']._serialized_options = b'8\001'
|
|
32
32
|
_globals['_RECORDSET_CONFIGSENTRY']._options = None
|
|
33
33
|
_globals['_RECORDSET_CONFIGSENTRY']._serialized_options = b'8\001'
|
|
34
|
-
_globals['
|
|
35
|
-
_globals['
|
|
36
|
-
_globals['
|
|
37
|
-
_globals['
|
|
38
|
-
_globals['
|
|
39
|
-
_globals['
|
|
40
|
-
_globals['_BOOLLIST']._serialized_start=
|
|
41
|
-
_globals['_BOOLLIST']._serialized_end=
|
|
42
|
-
_globals['_STRINGLIST']._serialized_start=
|
|
43
|
-
_globals['_STRINGLIST']._serialized_end=
|
|
44
|
-
_globals['_BYTESLIST']._serialized_start=
|
|
45
|
-
_globals['_BYTESLIST']._serialized_end=
|
|
46
|
-
_globals['_ARRAY']._serialized_start=
|
|
47
|
-
_globals['_ARRAY']._serialized_end=
|
|
48
|
-
_globals['_METRICSRECORDVALUE']._serialized_start=
|
|
49
|
-
_globals['_METRICSRECORDVALUE']._serialized_end=
|
|
50
|
-
_globals['_CONFIGSRECORDVALUE']._serialized_start=
|
|
51
|
-
_globals['_CONFIGSRECORDVALUE']._serialized_end=
|
|
52
|
-
_globals['_PARAMETERSRECORD']._serialized_start=
|
|
53
|
-
_globals['_PARAMETERSRECORD']._serialized_end=
|
|
54
|
-
_globals['_METRICSRECORD']._serialized_start=
|
|
55
|
-
_globals['_METRICSRECORD']._serialized_end=
|
|
56
|
-
_globals['_METRICSRECORD_DATAENTRY']._serialized_start=
|
|
57
|
-
_globals['_METRICSRECORD_DATAENTRY']._serialized_end=
|
|
58
|
-
_globals['_CONFIGSRECORD']._serialized_start=
|
|
59
|
-
_globals['_CONFIGSRECORD']._serialized_end=
|
|
60
|
-
_globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=
|
|
61
|
-
_globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=
|
|
62
|
-
_globals['_RECORDSET']._serialized_start=
|
|
63
|
-
_globals['_RECORDSET']._serialized_end=
|
|
64
|
-
_globals['_RECORDSET_PARAMETERSENTRY']._serialized_start=
|
|
65
|
-
_globals['_RECORDSET_PARAMETERSENTRY']._serialized_end=
|
|
66
|
-
_globals['_RECORDSET_METRICSENTRY']._serialized_start=
|
|
67
|
-
_globals['_RECORDSET_METRICSENTRY']._serialized_end=
|
|
68
|
-
_globals['_RECORDSET_CONFIGSENTRY']._serialized_start=
|
|
69
|
-
_globals['_RECORDSET_CONFIGSENTRY']._serialized_end=
|
|
34
|
+
_globals['_DOUBLELIST']._serialized_start=42
|
|
35
|
+
_globals['_DOUBLELIST']._serialized_end=68
|
|
36
|
+
_globals['_SINTLIST']._serialized_start=70
|
|
37
|
+
_globals['_SINTLIST']._serialized_end=94
|
|
38
|
+
_globals['_UINTLIST']._serialized_start=96
|
|
39
|
+
_globals['_UINTLIST']._serialized_end=120
|
|
40
|
+
_globals['_BOOLLIST']._serialized_start=122
|
|
41
|
+
_globals['_BOOLLIST']._serialized_end=146
|
|
42
|
+
_globals['_STRINGLIST']._serialized_start=148
|
|
43
|
+
_globals['_STRINGLIST']._serialized_end=174
|
|
44
|
+
_globals['_BYTESLIST']._serialized_start=176
|
|
45
|
+
_globals['_BYTESLIST']._serialized_end=201
|
|
46
|
+
_globals['_ARRAY']._serialized_start=203
|
|
47
|
+
_globals['_ARRAY']._serialized_end=269
|
|
48
|
+
_globals['_METRICSRECORDVALUE']._serialized_start=272
|
|
49
|
+
_globals['_METRICSRECORDVALUE']._serialized_end=488
|
|
50
|
+
_globals['_CONFIGSRECORDVALUE']._serialized_start=491
|
|
51
|
+
_globals['_CONFIGSRECORDVALUE']._serialized_end=893
|
|
52
|
+
_globals['_PARAMETERSRECORD']._serialized_start=895
|
|
53
|
+
_globals['_PARAMETERSRECORD']._serialized_end=972
|
|
54
|
+
_globals['_METRICSRECORD']._serialized_start=975
|
|
55
|
+
_globals['_METRICSRECORD']._serialized_end=1118
|
|
56
|
+
_globals['_METRICSRECORD_DATAENTRY']._serialized_start=1043
|
|
57
|
+
_globals['_METRICSRECORD_DATAENTRY']._serialized_end=1118
|
|
58
|
+
_globals['_CONFIGSRECORD']._serialized_start=1121
|
|
59
|
+
_globals['_CONFIGSRECORD']._serialized_end=1264
|
|
60
|
+
_globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=1189
|
|
61
|
+
_globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=1264
|
|
62
|
+
_globals['_RECORDSET']._serialized_start=1267
|
|
63
|
+
_globals['_RECORDSET']._serialized_end=1674
|
|
64
|
+
_globals['_RECORDSET_PARAMETERSENTRY']._serialized_start=1445
|
|
65
|
+
_globals['_RECORDSET_PARAMETERSENTRY']._serialized_end=1524
|
|
66
|
+
_globals['_RECORDSET_METRICSENTRY']._serialized_start=1526
|
|
67
|
+
_globals['_RECORDSET_METRICSENTRY']._serialized_end=1599
|
|
68
|
+
_globals['_RECORDSET_CONFIGSENTRY']._serialized_start=1601
|
|
69
|
+
_globals['_RECORDSET_CONFIGSENTRY']._serialized_end=1674
|
|
70
70
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/recordset_pb2.pyi
CHANGED
|
@@ -11,45 +11,41 @@ import typing_extensions
|
|
|
11
11
|
|
|
12
12
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class DoubleList(google.protobuf.message.Message):
|
|
15
15
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
uint64: builtins.int
|
|
16
|
+
VALS_FIELD_NUMBER: builtins.int
|
|
17
|
+
@property
|
|
18
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
|
|
20
19
|
def __init__(self,
|
|
21
20
|
*,
|
|
22
|
-
|
|
23
|
-
uint64: builtins.int = ...,
|
|
21
|
+
vals: typing.Optional[typing.Iterable[builtins.float]] = ...,
|
|
24
22
|
) -> None: ...
|
|
25
|
-
def
|
|
26
|
-
|
|
27
|
-
def WhichOneof(self, oneof_group: typing_extensions.Literal["int",b"int"]) -> typing.Optional[typing_extensions.Literal["sint64","uint64"]]: ...
|
|
28
|
-
global___Int = Int
|
|
23
|
+
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
24
|
+
global___DoubleList = DoubleList
|
|
29
25
|
|
|
30
|
-
class
|
|
26
|
+
class SintList(google.protobuf.message.Message):
|
|
31
27
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
32
28
|
VALS_FIELD_NUMBER: builtins.int
|
|
33
29
|
@property
|
|
34
|
-
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.
|
|
30
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
35
31
|
def __init__(self,
|
|
36
32
|
*,
|
|
37
|
-
vals: typing.Optional[typing.Iterable[builtins.
|
|
33
|
+
vals: typing.Optional[typing.Iterable[builtins.int]] = ...,
|
|
38
34
|
) -> None: ...
|
|
39
35
|
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
40
|
-
|
|
36
|
+
global___SintList = SintList
|
|
41
37
|
|
|
42
|
-
class
|
|
38
|
+
class UintList(google.protobuf.message.Message):
|
|
43
39
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
44
40
|
VALS_FIELD_NUMBER: builtins.int
|
|
45
41
|
@property
|
|
46
|
-
def vals(self) -> google.protobuf.internal.containers.
|
|
42
|
+
def vals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
47
43
|
def __init__(self,
|
|
48
44
|
*,
|
|
49
|
-
vals: typing.Optional[typing.Iterable[
|
|
45
|
+
vals: typing.Optional[typing.Iterable[builtins.int]] = ...,
|
|
50
46
|
) -> None: ...
|
|
51
47
|
def ClearField(self, field_name: typing_extensions.Literal["vals",b"vals"]) -> None: ...
|
|
52
|
-
|
|
48
|
+
global___UintList = UintList
|
|
53
49
|
|
|
54
50
|
class BoolList(google.protobuf.message.Message):
|
|
55
51
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
@@ -114,7 +110,8 @@ class MetricsRecordValue(google.protobuf.message.Message):
|
|
|
114
110
|
SINT64_FIELD_NUMBER: builtins.int
|
|
115
111
|
UINT64_FIELD_NUMBER: builtins.int
|
|
116
112
|
DOUBLE_LIST_FIELD_NUMBER: builtins.int
|
|
117
|
-
|
|
113
|
+
SINT_LIST_FIELD_NUMBER: builtins.int
|
|
114
|
+
UINT_LIST_FIELD_NUMBER: builtins.int
|
|
118
115
|
double: builtins.float
|
|
119
116
|
"""Single element"""
|
|
120
117
|
|
|
@@ -125,18 +122,21 @@ class MetricsRecordValue(google.protobuf.message.Message):
|
|
|
125
122
|
"""List types"""
|
|
126
123
|
pass
|
|
127
124
|
@property
|
|
128
|
-
def
|
|
125
|
+
def sint_list(self) -> global___SintList: ...
|
|
126
|
+
@property
|
|
127
|
+
def uint_list(self) -> global___UintList: ...
|
|
129
128
|
def __init__(self,
|
|
130
129
|
*,
|
|
131
130
|
double: builtins.float = ...,
|
|
132
131
|
sint64: builtins.int = ...,
|
|
133
132
|
uint64: builtins.int = ...,
|
|
134
133
|
double_list: typing.Optional[global___DoubleList] = ...,
|
|
135
|
-
|
|
134
|
+
sint_list: typing.Optional[global___SintList] = ...,
|
|
135
|
+
uint_list: typing.Optional[global___UintList] = ...,
|
|
136
136
|
) -> None: ...
|
|
137
|
-
def HasField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","
|
|
138
|
-
def ClearField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","
|
|
139
|
-
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","double_list","
|
|
137
|
+
def HasField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> builtins.bool: ...
|
|
138
|
+
def ClearField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> None: ...
|
|
139
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","double_list","sint_list","uint_list"]]: ...
|
|
140
140
|
global___MetricsRecordValue = MetricsRecordValue
|
|
141
141
|
|
|
142
142
|
class ConfigsRecordValue(google.protobuf.message.Message):
|
|
@@ -148,7 +148,8 @@ class ConfigsRecordValue(google.protobuf.message.Message):
|
|
|
148
148
|
STRING_FIELD_NUMBER: builtins.int
|
|
149
149
|
BYTES_FIELD_NUMBER: builtins.int
|
|
150
150
|
DOUBLE_LIST_FIELD_NUMBER: builtins.int
|
|
151
|
-
|
|
151
|
+
SINT_LIST_FIELD_NUMBER: builtins.int
|
|
152
|
+
UINT_LIST_FIELD_NUMBER: builtins.int
|
|
152
153
|
BOOL_LIST_FIELD_NUMBER: builtins.int
|
|
153
154
|
STRING_LIST_FIELD_NUMBER: builtins.int
|
|
154
155
|
BYTES_LIST_FIELD_NUMBER: builtins.int
|
|
@@ -165,7 +166,9 @@ class ConfigsRecordValue(google.protobuf.message.Message):
|
|
|
165
166
|
"""List types"""
|
|
166
167
|
pass
|
|
167
168
|
@property
|
|
168
|
-
def
|
|
169
|
+
def sint_list(self) -> global___SintList: ...
|
|
170
|
+
@property
|
|
171
|
+
def uint_list(self) -> global___UintList: ...
|
|
169
172
|
@property
|
|
170
173
|
def bool_list(self) -> global___BoolList: ...
|
|
171
174
|
@property
|
|
@@ -181,14 +184,15 @@ class ConfigsRecordValue(google.protobuf.message.Message):
|
|
|
181
184
|
string: typing.Text = ...,
|
|
182
185
|
bytes: builtins.bytes = ...,
|
|
183
186
|
double_list: typing.Optional[global___DoubleList] = ...,
|
|
184
|
-
|
|
187
|
+
sint_list: typing.Optional[global___SintList] = ...,
|
|
188
|
+
uint_list: typing.Optional[global___UintList] = ...,
|
|
185
189
|
bool_list: typing.Optional[global___BoolList] = ...,
|
|
186
190
|
string_list: typing.Optional[global___StringList] = ...,
|
|
187
191
|
bytes_list: typing.Optional[global___BytesList] = ...,
|
|
188
192
|
) -> None: ...
|
|
189
|
-
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","
|
|
190
|
-
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","
|
|
191
|
-
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","bool","string","bytes","double_list","
|
|
193
|
+
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","sint_list",b"sint_list","string",b"string","string_list",b"string_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> builtins.bool: ...
|
|
194
|
+
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","sint_list",b"sint_list","string",b"string","string_list",b"string_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> None: ...
|
|
195
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","bool","string","bytes","double_list","sint_list","uint_list","bool_list","string_list","bytes_list"]]: ...
|
|
192
196
|
global___ConfigsRecordValue = ConfigsRecordValue
|
|
193
197
|
|
|
194
198
|
class ParametersRecord(google.protobuf.message.Message):
|
|
@@ -30,6 +30,7 @@ from flwr.common.secure_aggregation.crypto.symmetric_encryption import (
|
|
|
30
30
|
generate_shared_key,
|
|
31
31
|
verify_hmac,
|
|
32
32
|
)
|
|
33
|
+
from flwr.proto.fab_pb2 import GetFabRequest, GetFabResponse # pylint: disable=E0611
|
|
33
34
|
from flwr.proto.fleet_pb2 import ( # pylint: disable=E0611
|
|
34
35
|
CreateNodeRequest,
|
|
35
36
|
CreateNodeResponse,
|
|
@@ -56,6 +57,7 @@ Request = Union[
|
|
|
56
57
|
PushTaskResRequest,
|
|
57
58
|
GetRunRequest,
|
|
58
59
|
PingRequest,
|
|
60
|
+
GetFabRequest,
|
|
59
61
|
]
|
|
60
62
|
|
|
61
63
|
Response = Union[
|
|
@@ -65,6 +67,7 @@ Response = Union[
|
|
|
65
67
|
PushTaskResResponse,
|
|
66
68
|
GetRunResponse,
|
|
67
69
|
PingResponse,
|
|
70
|
+
GetFabResponse,
|
|
68
71
|
]
|
|
69
72
|
|
|
70
73
|
|
|
@@ -173,6 +176,7 @@ class AuthenticateServerInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
|
173
176
|
PushTaskResRequest,
|
|
174
177
|
GetRunRequest,
|
|
175
178
|
PingRequest,
|
|
179
|
+
GetFabRequest,
|
|
176
180
|
],
|
|
177
181
|
) -> bool:
|
|
178
182
|
if node_id is None:
|
{flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/RECORD
RENAMED
|
@@ -75,7 +75,7 @@ flwr/client/grpc_adapter_client/connection.py,sha256=50LlADsrvvo_kYoGRXOph3ICAmc
|
|
|
75
75
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
76
76
|
flwr/client/grpc_client/connection.py,sha256=WX0cKlV_S19bYYp52z3PYRrtOdGb52ovvFFVWIz6Uyw,9382
|
|
77
77
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
78
|
-
flwr/client/grpc_rere_client/client_interceptor.py,sha256=
|
|
78
|
+
flwr/client/grpc_rere_client/client_interceptor.py,sha256=q08lIEeJLvvonNOiejNXvmySbPObteGnbDHhEKDmWzE,5380
|
|
79
79
|
flwr/client/grpc_rere_client/connection.py,sha256=tppAfMTV1yLBNmgS0KuvqGUjaecpA7SWbPIITkfEHcY,10960
|
|
80
80
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=yPsJg8POxKqAtQxR7R2zSzJ85LQsfV7u6xfrsoZbf0g,4999
|
|
81
81
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
@@ -131,7 +131,7 @@ flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8
|
|
|
131
131
|
flwr/common/secure_aggregation/quantization.py,sha256=mC4uLf05zeONo8Ke-BY0Tj8UCMOS7VD93zHCzuv3MHU,2304
|
|
132
132
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
133
133
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=o7IhHH6J9xqinhQy3TdPgQpoj1XyEpyv3OQFyx81RVQ,3193
|
|
134
|
-
flwr/common/serde.py,sha256=
|
|
134
|
+
flwr/common/serde.py,sha256=74nN5uqASdqfykSWPOhaTJARA07Iznyg3Nyr-dh-uy4,29918
|
|
135
135
|
flwr/common/telemetry.py,sha256=PvdlipCPYciqEgmXRwQ1HklP1uyECcNqt9HTBzthmAg,8904
|
|
136
136
|
flwr/common/typing.py,sha256=ZVviEABqDeGCyo_yM9ft8EbIGA9RaLOeoNHmMnTkmUo,4985
|
|
137
137
|
flwr/common/version.py,sha256=tCcl_FvxVK206C1dxIJCs4TjL06WmyaODBP19FRHE1c,1324
|
|
@@ -180,8 +180,8 @@ flwr/proto/node_pb2.py,sha256=qrxEpf7Up9XhigP8g9cIHVhmpdKmYpxMdlO67H0xjEM,1081
|
|
|
180
180
|
flwr/proto/node_pb2.pyi,sha256=aX3BHhgXvJE1rvcRnEE_gB-5GcaFQ0SJ88yTE223bjI,751
|
|
181
181
|
flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
182
182
|
flwr/proto/node_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
183
|
-
flwr/proto/recordset_pb2.py,sha256=
|
|
184
|
-
flwr/proto/recordset_pb2.pyi,sha256=
|
|
183
|
+
flwr/proto/recordset_pb2.py,sha256=XjEIDU-YlKSY59qNd0qXTFB4COvMHGiszQ5O1krJ1Ks,6367
|
|
184
|
+
flwr/proto/recordset_pb2.pyi,sha256=ypFNvroU4aIlnN0D6W4XAsOfm0UzTfXhxxL1v7u__Ac,15370
|
|
185
185
|
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
186
186
|
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
187
187
|
flwr/proto/run_pb2.py,sha256=pwel-8Hzsz1Gw2EHGEFKObgSEKQNth7nGZOEsJQO8fM,4940
|
|
@@ -259,7 +259,7 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4E
|
|
|
259
259
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=8VFp7K5ollkexR2UmXOrLtxo6H_B79eZkyM_Ro77tSU,12312
|
|
260
260
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
261
261
|
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=bgoLQEhahVHjdlRDk_58zyKFeMOziiPUXSbYMhOxybY,4757
|
|
262
|
-
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=
|
|
262
|
+
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=pgSiH-qrTgDxu4M_jJu-8gvEQnxTdR-qIAawKgxjQ6M,8157
|
|
263
263
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
264
264
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=NneayZ9FjIf7k2h_R3wQ2wluqYCAyzVVU_Uq7keWay4,4433
|
|
265
265
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
@@ -299,8 +299,8 @@ flwr/superexec/exec_grpc.py,sha256=ZPq7EP55Vwj0kRcLVuTCokFqfIgBk-7YmDykZoMKi-c,1
|
|
|
299
299
|
flwr/superexec/exec_servicer.py,sha256=TRpwPVl7eI0Y_xlCY6DmVpAo0yFU1gLwzyIeqFw9pyk,4746
|
|
300
300
|
flwr/superexec/executor.py,sha256=-5J-ZLs-uArro3T2pCq0YQRC65cs18M888nufzdYE4E,2375
|
|
301
301
|
flwr/superexec/simulation.py,sha256=J6pw-RqCSiUed8I_3MasZH4tl57ZmDebPAHNnbb0-vE,7420
|
|
302
|
-
flwr_nightly-1.12.0.
|
|
303
|
-
flwr_nightly-1.12.0.
|
|
304
|
-
flwr_nightly-1.12.0.
|
|
305
|
-
flwr_nightly-1.12.0.
|
|
306
|
-
flwr_nightly-1.12.0.
|
|
302
|
+
flwr_nightly-1.12.0.dev20240927.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
303
|
+
flwr_nightly-1.12.0.dev20240927.dist-info/METADATA,sha256=Y7G6l6Gb85cHC-43-nlDg7uzBcn1VL_3BqmRmt4HySM,15552
|
|
304
|
+
flwr_nightly-1.12.0.dev20240927.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
305
|
+
flwr_nightly-1.12.0.dev20240927.dist-info/entry_points.txt,sha256=WUCbqhLEOzjx_lyATIM0-f0e8kOVaQjzwOvyOxHrMhs,434
|
|
306
|
+
flwr_nightly-1.12.0.dev20240927.dist-info/RECORD,,
|
{flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.12.0.dev20240926.dist-info → flwr_nightly-1.12.0.dev20240927.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|