flwr-nightly 1.19.0.dev20250601__py3-none-any.whl → 1.19.0.dev20250602__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flwr/client/clientapp/__init__.py +0 -7
- flwr/common/inflatable_grpc_utils.py +6 -3
- flwr/common/record/configrecord.py +9 -8
- flwr/common/record/metricrecord.py +5 -4
- flwr/common/serde.py +39 -28
- flwr/common/serde_utils.py +2 -0
- flwr/proto/message_pb2.py +8 -8
- flwr/proto/message_pb2.pyi +13 -2
- flwr/proto/recorddict_pb2.py +16 -28
- flwr/proto/recorddict_pb2.pyi +46 -64
- flwr/server/superlink/fleet/rest_rere/rest_api.py +2 -2
- flwr/supernode/cli/__init__.py +5 -1
- flwr/supernode/cli/flwr_clientapp.py +73 -0
- flwr/supernode/nodestate/in_memory_nodestate.py +112 -0
- flwr/supernode/nodestate/nodestate.py +132 -6
- flwr/supernode/runtime/__init__.py +15 -0
- flwr/{client/clientapp/app.py → supernode/runtime/run_clientapp.py} +2 -54
- flwr/supernode/servicer/__init__.py +15 -0
- flwr/supernode/servicer/clientappio/__init__.py +24 -0
- flwr/supernode/start_client_internal.py +2 -5
- {flwr_nightly-1.19.0.dev20250601.dist-info → flwr_nightly-1.19.0.dev20250602.dist-info}/METADATA +1 -1
- {flwr_nightly-1.19.0.dev20250601.dist-info → flwr_nightly-1.19.0.dev20250602.dist-info}/RECORD +25 -21
- {flwr_nightly-1.19.0.dev20250601.dist-info → flwr_nightly-1.19.0.dev20250602.dist-info}/entry_points.txt +1 -1
- /flwr/{client/clientapp → supernode/servicer/clientappio}/clientappio_servicer.py +0 -0
- {flwr_nightly-1.19.0.dev20250601.dist-info → flwr_nightly-1.19.0.dev20250602.dist-info}/WHEEL +0 -0
@@ -50,6 +50,7 @@ def push_object_to_servicer(
|
|
50
50
|
obj: InflatableObject,
|
51
51
|
stub: Union[FleetStub, ServerAppIoStub],
|
52
52
|
node: Node,
|
53
|
+
run_id: int,
|
53
54
|
object_ids_to_push: Optional[set[str]] = None,
|
54
55
|
) -> set[str]:
|
55
56
|
"""Recursively deflate an object and push it to the servicer.
|
@@ -63,7 +64,7 @@ def push_object_to_servicer(
|
|
63
64
|
if children := obj.children:
|
64
65
|
for child in children.values():
|
65
66
|
pushed_object_ids |= push_object_to_servicer(
|
66
|
-
child, stub, node, object_ids_to_push
|
67
|
+
child, stub, node, run_id, object_ids_to_push
|
67
68
|
)
|
68
69
|
|
69
70
|
# Deflate object and push
|
@@ -74,6 +75,7 @@ def push_object_to_servicer(
|
|
74
75
|
_: PushObjectResponse = stub.PushObject(
|
75
76
|
PushObjectRequest(
|
76
77
|
node=node,
|
78
|
+
run_id=run_id,
|
77
79
|
object_id=object_id,
|
78
80
|
object_content=object_content,
|
79
81
|
)
|
@@ -87,11 +89,12 @@ def pull_object_from_servicer(
|
|
87
89
|
object_id: str,
|
88
90
|
stub: Union[FleetStub, ServerAppIoStub],
|
89
91
|
node: Node,
|
92
|
+
run_id: int,
|
90
93
|
) -> InflatableObject:
|
91
94
|
"""Recursively inflate an object by pulling it from the servicer."""
|
92
95
|
# Pull object
|
93
96
|
object_proto: PullObjectResponse = stub.PullObject(
|
94
|
-
PullObjectRequest(node=node, object_id=object_id)
|
97
|
+
PullObjectRequest(node=node, run_id=run_id, object_id=object_id)
|
95
98
|
)
|
96
99
|
object_content = object_proto.object_content
|
97
100
|
|
@@ -106,7 +109,7 @@ def pull_object_from_servicer(
|
|
106
109
|
children: dict[str, InflatableObject] = {}
|
107
110
|
for child_object_id in children_obj_ids:
|
108
111
|
children[child_object_id] = pull_object_from_servicer(
|
109
|
-
child_object_id, stub, node
|
112
|
+
child_object_id, stub, node, run_id
|
110
113
|
)
|
111
114
|
|
112
115
|
# Inflate object passing its children
|
@@ -175,13 +175,14 @@ class ConfigRecord(TypedDict[str, ConfigRecordValues], InflatableObject):
|
|
175
175
|
|
176
176
|
def deflate(self) -> bytes:
|
177
177
|
"""Deflate object."""
|
178
|
+
protos = record_value_dict_to_proto(
|
179
|
+
self,
|
180
|
+
[bool, int, float, str, bytes],
|
181
|
+
ProtoConfigRecordValue,
|
182
|
+
)
|
178
183
|
obj_body = ProtoConfigRecord(
|
179
|
-
|
180
|
-
|
181
|
-
[bool, int, float, str, bytes],
|
182
|
-
ProtoConfigRecordValue,
|
183
|
-
)
|
184
|
-
).SerializeToString(deterministic=True)
|
184
|
+
items=[ProtoConfigRecord.Item(key=k, value=v) for k, v in protos.items()]
|
185
|
+
).SerializeToString()
|
185
186
|
return add_header_to_object_body(object_body=obj_body, obj=self)
|
186
187
|
|
187
188
|
@classmethod
|
@@ -209,11 +210,11 @@ class ConfigRecord(TypedDict[str, ConfigRecordValues], InflatableObject):
|
|
209
210
|
|
210
211
|
obj_body = get_object_body(object_content, cls)
|
211
212
|
config_record_proto = ProtoConfigRecord.FromString(obj_body)
|
212
|
-
|
213
|
+
protos = {item.key: item.value for item in config_record_proto.items}
|
213
214
|
return ConfigRecord(
|
214
215
|
config_dict=cast(
|
215
216
|
dict[str, ConfigRecordValues],
|
216
|
-
record_value_dict_from_proto(
|
217
|
+
record_value_dict_from_proto(protos),
|
217
218
|
),
|
218
219
|
keep_input=False,
|
219
220
|
)
|
@@ -154,9 +154,10 @@ class MetricRecord(TypedDict[str, MetricRecordValues], InflatableObject):
|
|
154
154
|
|
155
155
|
def deflate(self) -> bytes:
|
156
156
|
"""Deflate object."""
|
157
|
+
protos = record_value_dict_to_proto(self, [float, int], ProtoMetricRecordValue)
|
157
158
|
obj_body = ProtoMetricRecord(
|
158
|
-
|
159
|
-
).SerializeToString(
|
159
|
+
items=[ProtoMetricRecord.Item(key=k, value=v) for k, v in protos.items()]
|
160
|
+
).SerializeToString()
|
160
161
|
return add_header_to_object_body(object_body=obj_body, obj=self)
|
161
162
|
|
162
163
|
@classmethod
|
@@ -184,11 +185,11 @@ class MetricRecord(TypedDict[str, MetricRecordValues], InflatableObject):
|
|
184
185
|
|
185
186
|
obj_body = get_object_body(object_content, cls)
|
186
187
|
metric_record_proto = ProtoMetricRecord.FromString(obj_body)
|
187
|
-
|
188
|
+
protos = {item.key: item.value for item in metric_record_proto.items}
|
188
189
|
return cls(
|
189
190
|
metric_dict=cast(
|
190
191
|
dict[str, MetricRecordValues],
|
191
|
-
record_value_dict_from_proto(
|
192
|
+
record_value_dict_from_proto(protos),
|
192
193
|
),
|
193
194
|
keep_input=False,
|
194
195
|
)
|
flwr/common/serde.py
CHANGED
@@ -399,8 +399,10 @@ def array_from_proto(array_proto: ProtoArray) -> Array:
|
|
399
399
|
def array_record_to_proto(record: ArrayRecord) -> ProtoArrayRecord:
|
400
400
|
"""Serialize ArrayRecord to ProtoBuf."""
|
401
401
|
return ProtoArrayRecord(
|
402
|
-
|
403
|
-
|
402
|
+
items=[
|
403
|
+
ProtoArrayRecord.Item(key=k, value=array_to_proto(v))
|
404
|
+
for k, v in record.items()
|
405
|
+
]
|
404
406
|
)
|
405
407
|
|
406
408
|
|
@@ -410,7 +412,7 @@ def array_record_from_proto(
|
|
410
412
|
"""Deserialize ArrayRecord from ProtoBuf."""
|
411
413
|
return ArrayRecord(
|
412
414
|
array_dict=OrderedDict(
|
413
|
-
|
415
|
+
{item.key: array_from_proto(item.value) for item in record_proto.items}
|
414
416
|
),
|
415
417
|
keep_input=False,
|
416
418
|
)
|
@@ -418,17 +420,19 @@ def array_record_from_proto(
|
|
418
420
|
|
419
421
|
def metric_record_to_proto(record: MetricRecord) -> ProtoMetricRecord:
|
420
422
|
"""Serialize MetricRecord to ProtoBuf."""
|
423
|
+
protos = record_value_dict_to_proto(record, [float, int], ProtoMetricRecordValue)
|
421
424
|
return ProtoMetricRecord(
|
422
|
-
|
425
|
+
items=[ProtoMetricRecord.Item(key=k, value=v) for k, v in protos.items()]
|
423
426
|
)
|
424
427
|
|
425
428
|
|
426
429
|
def metric_record_from_proto(record_proto: ProtoMetricRecord) -> MetricRecord:
|
427
430
|
"""Deserialize MetricRecord from ProtoBuf."""
|
431
|
+
protos = {item.key: item.value for item in record_proto.items}
|
428
432
|
return MetricRecord(
|
429
433
|
metric_dict=cast(
|
430
434
|
dict[str, typing.MetricRecordValues],
|
431
|
-
record_value_dict_from_proto(
|
435
|
+
record_value_dict_from_proto(protos),
|
432
436
|
),
|
433
437
|
keep_input=False,
|
434
438
|
)
|
@@ -436,21 +440,23 @@ def metric_record_from_proto(record_proto: ProtoMetricRecord) -> MetricRecord:
|
|
436
440
|
|
437
441
|
def config_record_to_proto(record: ConfigRecord) -> ProtoConfigRecord:
|
438
442
|
"""Serialize ConfigRecord to ProtoBuf."""
|
443
|
+
protos = record_value_dict_to_proto(
|
444
|
+
record,
|
445
|
+
[bool, int, float, str, bytes],
|
446
|
+
ProtoConfigRecordValue,
|
447
|
+
)
|
439
448
|
return ProtoConfigRecord(
|
440
|
-
|
441
|
-
record,
|
442
|
-
[bool, int, float, str, bytes],
|
443
|
-
ProtoConfigRecordValue,
|
444
|
-
)
|
449
|
+
items=[ProtoConfigRecord.Item(key=k, value=v) for k, v in protos.items()]
|
445
450
|
)
|
446
451
|
|
447
452
|
|
448
453
|
def config_record_from_proto(record_proto: ProtoConfigRecord) -> ConfigRecord:
|
449
454
|
"""Deserialize ConfigRecord from ProtoBuf."""
|
455
|
+
protos = {item.key: item.value for item in record_proto.items}
|
450
456
|
return ConfigRecord(
|
451
457
|
config_dict=cast(
|
452
458
|
dict[str, typing.ConfigRecordValues],
|
453
|
-
record_value_dict_from_proto(
|
459
|
+
record_value_dict_from_proto(protos),
|
454
460
|
),
|
455
461
|
keep_input=False,
|
456
462
|
)
|
@@ -461,28 +467,33 @@ def config_record_from_proto(record_proto: ProtoConfigRecord) -> ConfigRecord:
|
|
461
467
|
|
462
468
|
def recorddict_to_proto(recorddict: RecordDict) -> ProtoRecordDict:
|
463
469
|
"""Serialize RecordDict to ProtoBuf."""
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
470
|
+
item_cls = ProtoRecordDict.Item
|
471
|
+
items: list[ProtoRecordDict.Item] = []
|
472
|
+
for k, v in recorddict.items():
|
473
|
+
if isinstance(v, ArrayRecord):
|
474
|
+
items += [item_cls(key=k, array_record=array_record_to_proto(v))]
|
475
|
+
elif isinstance(v, MetricRecord):
|
476
|
+
items += [item_cls(key=k, metric_record=metric_record_to_proto(v))]
|
477
|
+
elif isinstance(v, ConfigRecord):
|
478
|
+
items += [item_cls(key=k, config_record=config_record_to_proto(v))]
|
479
|
+
else:
|
480
|
+
raise ValueError(f"Unsupported record type: {type(v)}")
|
481
|
+
return ProtoRecordDict(items=items)
|
475
482
|
|
476
483
|
|
477
484
|
def recorddict_from_proto(recorddict_proto: ProtoRecordDict) -> RecordDict:
|
478
485
|
"""Deserialize RecordDict from ProtoBuf."""
|
479
486
|
ret = RecordDict()
|
480
|
-
for
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
487
|
+
for item in recorddict_proto.items:
|
488
|
+
field = item.WhichOneof("value")
|
489
|
+
if field == "array_record":
|
490
|
+
ret[item.key] = array_record_from_proto(item.array_record)
|
491
|
+
elif field == "metric_record":
|
492
|
+
ret[item.key] = metric_record_from_proto(item.metric_record)
|
493
|
+
elif field == "config_record":
|
494
|
+
ret[item.key] = config_record_from_proto(item.config_record)
|
495
|
+
else:
|
496
|
+
raise ValueError(f"Unsupported record type: {field}")
|
486
497
|
return ret
|
487
498
|
|
488
499
|
|
flwr/common/serde_utils.py
CHANGED
@@ -109,6 +109,8 @@ def record_value_dict_to_proto(
|
|
109
109
|
) -> dict[str, T]:
|
110
110
|
"""Serialize the record value dict to ProtoBuf.
|
111
111
|
|
112
|
+
This function will preserve the order of the keys in the input dictionary.
|
113
|
+
|
112
114
|
Note: `bool` MUST be put in the front of allowd_types if it exists.
|
113
115
|
"""
|
114
116
|
# Move bool to the front
|
flwr/proto/message_pb2.py
CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
|
|
18
18
|
from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
|
19
19
|
|
20
20
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x15\x66lwr/proto/node.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\"\x1f\n\tObjectIDs\x12\x12\n\nobject_ids\x18\x01 \x03(\t\"
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66lwr/proto/message.proto\x12\nflwr.proto\x1a\x16\x66lwr/proto/error.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x15\x66lwr/proto/node.proto\"|\n\x07Message\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.flwr.proto.Metadata\x12\'\n\x07\x63ontent\x18\x02 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12 \n\x05\x65rror\x18\x03 \x01(\x0b\x32\x11.flwr.proto.Error\"\xd0\x02\n\x07\x43ontext\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0f\n\x07node_id\x18\x02 \x01(\x04\x12\x38\n\x0bnode_config\x18\x03 \x03(\x0b\x32#.flwr.proto.Context.NodeConfigEntry\x12%\n\x05state\x18\x04 \x01(\x0b\x32\x16.flwr.proto.RecordDict\x12\x36\n\nrun_config\x18\x05 \x03(\x0b\x32\".flwr.proto.Context.RunConfigEntry\x1a\x45\n\x0fNodeConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\x1a\x44\n\x0eRunConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"\xbe\x01\n\x08Metadata\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x12\n\nmessage_id\x18\x02 \x01(\t\x12\x13\n\x0bsrc_node_id\x18\x03 \x01(\x04\x12\x13\n\x0b\x64st_node_id\x18\x04 \x01(\x04\x12\x1b\n\x13reply_to_message_id\x18\x05 \x01(\t\x12\x10\n\x08group_id\x18\x06 \x01(\t\x12\x0b\n\x03ttl\x18\x07 \x01(\x01\x12\x14\n\x0cmessage_type\x18\x08 \x01(\t\x12\x12\n\ncreated_at\x18\t \x01(\x01\"\x1f\n\tObjectIDs\x12\x12\n\nobject_ids\x18\x01 \x03(\t\"n\n\x11PushObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\x12\x16\n\x0eobject_content\x18\x04 \x01(\x0c\"$\n\x12PushObjectResponse\x12\x0e\n\x06stored\x18\x01 \x01(\x08\"V\n\x11PullObjectRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x11\n\tobject_id\x18\x03 \x01(\t\",\n\x12PullObjectResponse\x12\x16\n\x0eobject_content\x18\x01 \x01(\x0c\x62\x06proto3')
|
22
22
|
|
23
23
|
_globals = globals()
|
24
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -42,11 +42,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
42
42
|
_globals['_OBJECTIDS']._serialized_start=802
|
43
43
|
_globals['_OBJECTIDS']._serialized_end=833
|
44
44
|
_globals['_PUSHOBJECTREQUEST']._serialized_start=835
|
45
|
-
_globals['_PUSHOBJECTREQUEST']._serialized_end=
|
46
|
-
_globals['_PUSHOBJECTRESPONSE']._serialized_start=
|
47
|
-
_globals['_PUSHOBJECTRESPONSE']._serialized_end=
|
48
|
-
_globals['_PULLOBJECTREQUEST']._serialized_start=
|
49
|
-
_globals['_PULLOBJECTREQUEST']._serialized_end=
|
50
|
-
_globals['_PULLOBJECTRESPONSE']._serialized_start=
|
51
|
-
_globals['_PULLOBJECTRESPONSE']._serialized_end=
|
45
|
+
_globals['_PUSHOBJECTREQUEST']._serialized_end=945
|
46
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_start=947
|
47
|
+
_globals['_PUSHOBJECTRESPONSE']._serialized_end=983
|
48
|
+
_globals['_PULLOBJECTREQUEST']._serialized_start=985
|
49
|
+
_globals['_PULLOBJECTREQUEST']._serialized_end=1071
|
50
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_start=1073
|
51
|
+
_globals['_PULLOBJECTRESPONSE']._serialized_end=1117
|
52
52
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/message_pb2.pyi
CHANGED
@@ -144,43 +144,54 @@ class PushObjectRequest(google.protobuf.message.Message):
|
|
144
144
|
"""PushObject messages"""
|
145
145
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
146
146
|
NODE_FIELD_NUMBER: builtins.int
|
147
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
147
148
|
OBJECT_ID_FIELD_NUMBER: builtins.int
|
148
149
|
OBJECT_CONTENT_FIELD_NUMBER: builtins.int
|
149
150
|
@property
|
150
151
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
152
|
+
run_id: builtins.int
|
151
153
|
object_id: typing.Text
|
152
154
|
object_content: builtins.bytes
|
153
155
|
def __init__(self,
|
154
156
|
*,
|
155
157
|
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
158
|
+
run_id: builtins.int = ...,
|
156
159
|
object_id: typing.Text = ...,
|
157
160
|
object_content: builtins.bytes = ...,
|
158
161
|
) -> None: ...
|
159
162
|
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
160
|
-
def ClearField(self, field_name: typing_extensions.Literal["node",b"node","object_content",b"object_content","object_id",b"object_id"]) -> None: ...
|
163
|
+
def ClearField(self, field_name: typing_extensions.Literal["node",b"node","object_content",b"object_content","object_id",b"object_id","run_id",b"run_id"]) -> None: ...
|
161
164
|
global___PushObjectRequest = PushObjectRequest
|
162
165
|
|
163
166
|
class PushObjectResponse(google.protobuf.message.Message):
|
164
167
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
168
|
+
STORED_FIELD_NUMBER: builtins.int
|
169
|
+
stored: builtins.bool
|
165
170
|
def __init__(self,
|
171
|
+
*,
|
172
|
+
stored: builtins.bool = ...,
|
166
173
|
) -> None: ...
|
174
|
+
def ClearField(self, field_name: typing_extensions.Literal["stored",b"stored"]) -> None: ...
|
167
175
|
global___PushObjectResponse = PushObjectResponse
|
168
176
|
|
169
177
|
class PullObjectRequest(google.protobuf.message.Message):
|
170
178
|
"""PullObject messages"""
|
171
179
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
172
180
|
NODE_FIELD_NUMBER: builtins.int
|
181
|
+
RUN_ID_FIELD_NUMBER: builtins.int
|
173
182
|
OBJECT_ID_FIELD_NUMBER: builtins.int
|
174
183
|
@property
|
175
184
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
185
|
+
run_id: builtins.int
|
176
186
|
object_id: typing.Text
|
177
187
|
def __init__(self,
|
178
188
|
*,
|
179
189
|
node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
|
190
|
+
run_id: builtins.int = ...,
|
180
191
|
object_id: typing.Text = ...,
|
181
192
|
) -> None: ...
|
182
193
|
def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
|
183
|
-
def ClearField(self, field_name: typing_extensions.Literal["node",b"node","object_id",b"object_id"]) -> None: ...
|
194
|
+
def ClearField(self, field_name: typing_extensions.Literal["node",b"node","object_id",b"object_id","run_id",b"run_id"]) -> None: ...
|
184
195
|
global___PullObjectRequest = PullObjectRequest
|
185
196
|
|
186
197
|
class PullObjectResponse(google.protobuf.message.Message):
|
flwr/proto/recorddict_pb2.py
CHANGED
@@ -14,23 +14,13 @@ _sym_db = _symbol_database.Default()
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/recorddict.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\"\xd7\x01\n\x11MetricRecordValue\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\"\x91\x03\n\x11\x43onfigRecordValue\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\"
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/recorddict.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\"\xd7\x01\n\x11MetricRecordValue\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\"\x91\x03\n\x11\x43onfigRecordValue\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\"q\n\x0b\x41rrayRecord\x12+\n\x05items\x18\x01 \x03(\x0b\x32\x1c.flwr.proto.ArrayRecord.Item\x1a\x35\n\x04Item\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Array\"\x7f\n\x0cMetricRecord\x12,\n\x05items\x18\x01 \x03(\x0b\x32\x1d.flwr.proto.MetricRecord.Item\x1a\x41\n\x04Item\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.MetricRecordValue\"\x7f\n\x0c\x43onfigRecord\x12,\n\x05items\x18\x01 \x03(\x0b\x32\x1d.flwr.proto.ConfigRecord.Item\x1a\x41\n\x04Item\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.ConfigRecordValue\"\xee\x01\n\nRecordDict\x12*\n\x05items\x18\x01 \x03(\x0b\x32\x1b.flwr.proto.RecordDict.Item\x1a\xb3\x01\n\x04Item\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x0c\x61rray_record\x18\x02 \x01(\x0b\x32\x17.flwr.proto.ArrayRecordH\x00\x12\x31\n\rmetric_record\x18\x03 \x01(\x0b\x32\x18.flwr.proto.MetricRecordH\x00\x12\x31\n\rconfig_record\x18\x04 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordH\x00\x42\x07\n\x05valueb\x06proto3')
|
18
18
|
|
19
19
|
_globals = globals()
|
20
20
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
21
21
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.recorddict_pb2', _globals)
|
22
22
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
23
23
|
DESCRIPTOR._options = None
|
24
|
-
_globals['_METRICRECORD_DATAENTRY']._options = None
|
25
|
-
_globals['_METRICRECORD_DATAENTRY']._serialized_options = b'8\001'
|
26
|
-
_globals['_CONFIGRECORD_DATAENTRY']._options = None
|
27
|
-
_globals['_CONFIGRECORD_DATAENTRY']._serialized_options = b'8\001'
|
28
|
-
_globals['_RECORDDICT_ARRAYSENTRY']._options = None
|
29
|
-
_globals['_RECORDDICT_ARRAYSENTRY']._serialized_options = b'8\001'
|
30
|
-
_globals['_RECORDDICT_METRICSENTRY']._options = None
|
31
|
-
_globals['_RECORDDICT_METRICSENTRY']._serialized_options = b'8\001'
|
32
|
-
_globals['_RECORDDICT_CONFIGSENTRY']._options = None
|
33
|
-
_globals['_RECORDDICT_CONFIGSENTRY']._serialized_options = b'8\001'
|
34
24
|
_globals['_DOUBLELIST']._serialized_start=43
|
35
25
|
_globals['_DOUBLELIST']._serialized_end=69
|
36
26
|
_globals['_SINTLIST']._serialized_start=71
|
@@ -50,21 +40,19 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
50
40
|
_globals['_CONFIGRECORDVALUE']._serialized_start=491
|
51
41
|
_globals['_CONFIGRECORDVALUE']._serialized_end=892
|
52
42
|
_globals['_ARRAYRECORD']._serialized_start=894
|
53
|
-
_globals['_ARRAYRECORD']._serialized_end=
|
54
|
-
_globals['
|
55
|
-
_globals['
|
56
|
-
_globals['
|
57
|
-
_globals['
|
58
|
-
_globals['
|
59
|
-
_globals['
|
60
|
-
_globals['
|
61
|
-
_globals['
|
62
|
-
_globals['
|
63
|
-
_globals['
|
64
|
-
_globals['
|
65
|
-
_globals['
|
66
|
-
_globals['
|
67
|
-
_globals['
|
68
|
-
_globals['_RECORDDICT_CONFIGSENTRY']._serialized_start=1575
|
69
|
-
_globals['_RECORDDICT_CONFIGSENTRY']._serialized_end=1647
|
43
|
+
_globals['_ARRAYRECORD']._serialized_end=1007
|
44
|
+
_globals['_ARRAYRECORD_ITEM']._serialized_start=954
|
45
|
+
_globals['_ARRAYRECORD_ITEM']._serialized_end=1007
|
46
|
+
_globals['_METRICRECORD']._serialized_start=1009
|
47
|
+
_globals['_METRICRECORD']._serialized_end=1136
|
48
|
+
_globals['_METRICRECORD_ITEM']._serialized_start=1071
|
49
|
+
_globals['_METRICRECORD_ITEM']._serialized_end=1136
|
50
|
+
_globals['_CONFIGRECORD']._serialized_start=1138
|
51
|
+
_globals['_CONFIGRECORD']._serialized_end=1265
|
52
|
+
_globals['_CONFIGRECORD_ITEM']._serialized_start=1200
|
53
|
+
_globals['_CONFIGRECORD_ITEM']._serialized_end=1265
|
54
|
+
_globals['_RECORDDICT']._serialized_start=1268
|
55
|
+
_globals['_RECORDDICT']._serialized_end=1506
|
56
|
+
_globals['_RECORDDICT_ITEM']._serialized_start=1327
|
57
|
+
_globals['_RECORDDICT_ITEM']._serialized_end=1506
|
70
58
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/recorddict_pb2.pyi
CHANGED
@@ -197,23 +197,34 @@ global___ConfigRecordValue = ConfigRecordValue
|
|
197
197
|
|
198
198
|
class ArrayRecord(google.protobuf.message.Message):
|
199
199
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
200
|
+
class Item(google.protobuf.message.Message):
|
201
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
202
|
+
KEY_FIELD_NUMBER: builtins.int
|
203
|
+
VALUE_FIELD_NUMBER: builtins.int
|
204
|
+
key: typing.Text
|
205
|
+
@property
|
206
|
+
def value(self) -> global___Array: ...
|
207
|
+
def __init__(self,
|
208
|
+
*,
|
209
|
+
key: typing.Text = ...,
|
210
|
+
value: typing.Optional[global___Array] = ...,
|
211
|
+
) -> None: ...
|
212
|
+
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
213
|
+
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
214
|
+
|
215
|
+
ITEMS_FIELD_NUMBER: builtins.int
|
204
216
|
@property
|
205
|
-
def
|
217
|
+
def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ArrayRecord.Item]: ...
|
206
218
|
def __init__(self,
|
207
219
|
*,
|
208
|
-
|
209
|
-
data_values: typing.Optional[typing.Iterable[global___Array]] = ...,
|
220
|
+
items: typing.Optional[typing.Iterable[global___ArrayRecord.Item]] = ...,
|
210
221
|
) -> None: ...
|
211
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
222
|
+
def ClearField(self, field_name: typing_extensions.Literal["items",b"items"]) -> None: ...
|
212
223
|
global___ArrayRecord = ArrayRecord
|
213
224
|
|
214
225
|
class MetricRecord(google.protobuf.message.Message):
|
215
226
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
216
|
-
class
|
227
|
+
class Item(google.protobuf.message.Message):
|
217
228
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
218
229
|
KEY_FIELD_NUMBER: builtins.int
|
219
230
|
VALUE_FIELD_NUMBER: builtins.int
|
@@ -228,19 +239,19 @@ class MetricRecord(google.protobuf.message.Message):
|
|
228
239
|
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
229
240
|
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
230
241
|
|
231
|
-
|
242
|
+
ITEMS_FIELD_NUMBER: builtins.int
|
232
243
|
@property
|
233
|
-
def
|
244
|
+
def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MetricRecord.Item]: ...
|
234
245
|
def __init__(self,
|
235
246
|
*,
|
236
|
-
|
247
|
+
items: typing.Optional[typing.Iterable[global___MetricRecord.Item]] = ...,
|
237
248
|
) -> None: ...
|
238
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
249
|
+
def ClearField(self, field_name: typing_extensions.Literal["items",b"items"]) -> None: ...
|
239
250
|
global___MetricRecord = MetricRecord
|
240
251
|
|
241
252
|
class ConfigRecord(google.protobuf.message.Message):
|
242
253
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
243
|
-
class
|
254
|
+
class Item(google.protobuf.message.Message):
|
244
255
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
245
256
|
KEY_FIELD_NUMBER: builtins.int
|
246
257
|
VALUE_FIELD_NUMBER: builtins.int
|
@@ -255,77 +266,48 @@ class ConfigRecord(google.protobuf.message.Message):
|
|
255
266
|
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
256
267
|
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
257
268
|
|
258
|
-
|
269
|
+
ITEMS_FIELD_NUMBER: builtins.int
|
259
270
|
@property
|
260
|
-
def
|
271
|
+
def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConfigRecord.Item]: ...
|
261
272
|
def __init__(self,
|
262
273
|
*,
|
263
|
-
|
274
|
+
items: typing.Optional[typing.Iterable[global___ConfigRecord.Item]] = ...,
|
264
275
|
) -> None: ...
|
265
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
276
|
+
def ClearField(self, field_name: typing_extensions.Literal["items",b"items"]) -> None: ...
|
266
277
|
global___ConfigRecord = ConfigRecord
|
267
278
|
|
268
279
|
class RecordDict(google.protobuf.message.Message):
|
269
280
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
270
|
-
class
|
281
|
+
class Item(google.protobuf.message.Message):
|
271
282
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
272
283
|
KEY_FIELD_NUMBER: builtins.int
|
273
|
-
|
284
|
+
ARRAY_RECORD_FIELD_NUMBER: builtins.int
|
285
|
+
METRIC_RECORD_FIELD_NUMBER: builtins.int
|
286
|
+
CONFIG_RECORD_FIELD_NUMBER: builtins.int
|
274
287
|
key: typing.Text
|
275
288
|
@property
|
276
|
-
def
|
277
|
-
def __init__(self,
|
278
|
-
*,
|
279
|
-
key: typing.Text = ...,
|
280
|
-
value: typing.Optional[global___ArrayRecord] = ...,
|
281
|
-
) -> None: ...
|
282
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
283
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
284
|
-
|
285
|
-
class MetricsEntry(google.protobuf.message.Message):
|
286
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
287
|
-
KEY_FIELD_NUMBER: builtins.int
|
288
|
-
VALUE_FIELD_NUMBER: builtins.int
|
289
|
-
key: typing.Text
|
289
|
+
def array_record(self) -> global___ArrayRecord: ...
|
290
290
|
@property
|
291
|
-
def
|
292
|
-
def __init__(self,
|
293
|
-
*,
|
294
|
-
key: typing.Text = ...,
|
295
|
-
value: typing.Optional[global___MetricRecord] = ...,
|
296
|
-
) -> None: ...
|
297
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
298
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
299
|
-
|
300
|
-
class ConfigsEntry(google.protobuf.message.Message):
|
301
|
-
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
302
|
-
KEY_FIELD_NUMBER: builtins.int
|
303
|
-
VALUE_FIELD_NUMBER: builtins.int
|
304
|
-
key: typing.Text
|
291
|
+
def metric_record(self) -> global___MetricRecord: ...
|
305
292
|
@property
|
306
|
-
def
|
293
|
+
def config_record(self) -> global___ConfigRecord: ...
|
307
294
|
def __init__(self,
|
308
295
|
*,
|
309
296
|
key: typing.Text = ...,
|
310
|
-
|
297
|
+
array_record: typing.Optional[global___ArrayRecord] = ...,
|
298
|
+
metric_record: typing.Optional[global___MetricRecord] = ...,
|
299
|
+
config_record: typing.Optional[global___ConfigRecord] = ...,
|
311
300
|
) -> None: ...
|
312
|
-
def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
|
313
|
-
def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
|
301
|
+
def HasField(self, field_name: typing_extensions.Literal["array_record",b"array_record","config_record",b"config_record","metric_record",b"metric_record","value",b"value"]) -> builtins.bool: ...
|
302
|
+
def ClearField(self, field_name: typing_extensions.Literal["array_record",b"array_record","config_record",b"config_record","key",b"key","metric_record",b"metric_record","value",b"value"]) -> None: ...
|
303
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["array_record","metric_record","config_record"]]: ...
|
314
304
|
|
315
|
-
|
316
|
-
METRICS_FIELD_NUMBER: builtins.int
|
317
|
-
CONFIGS_FIELD_NUMBER: builtins.int
|
318
|
-
@property
|
319
|
-
def arrays(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ArrayRecord]: ...
|
320
|
-
@property
|
321
|
-
def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricRecord]: ...
|
305
|
+
ITEMS_FIELD_NUMBER: builtins.int
|
322
306
|
@property
|
323
|
-
def
|
307
|
+
def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RecordDict.Item]: ...
|
324
308
|
def __init__(self,
|
325
309
|
*,
|
326
|
-
|
327
|
-
metrics: typing.Optional[typing.Mapping[typing.Text, global___MetricRecord]] = ...,
|
328
|
-
configs: typing.Optional[typing.Mapping[typing.Text, global___ConfigRecord]] = ...,
|
310
|
+
items: typing.Optional[typing.Iterable[global___RecordDict.Item]] = ...,
|
329
311
|
) -> None: ...
|
330
|
-
def ClearField(self, field_name: typing_extensions.Literal["
|
312
|
+
def ClearField(self, field_name: typing_extensions.Literal["items",b"items"]) -> None: ...
|
331
313
|
global___RecordDict = RecordDict
|
@@ -114,7 +114,7 @@ async def pull_message(request: PullMessagesRequest) -> PullMessagesResponse:
|
|
114
114
|
"""Pull PullMessages."""
|
115
115
|
# Get state from app
|
116
116
|
state: LinkState = cast(LinkStateFactory, app.state.STATE_FACTORY).state()
|
117
|
-
store: ObjectStore = cast(ObjectStoreFactory, app.state.
|
117
|
+
store: ObjectStore = cast(ObjectStoreFactory, app.state.OBJECTSTORE_FACTORY).store()
|
118
118
|
|
119
119
|
# Handle message
|
120
120
|
return message_handler.pull_messages(request=request, state=state, store=store)
|
@@ -125,7 +125,7 @@ async def push_message(request: PushMessagesRequest) -> PushMessagesResponse:
|
|
125
125
|
"""Pull PushMessages."""
|
126
126
|
# Get state from app
|
127
127
|
state: LinkState = cast(LinkStateFactory, app.state.STATE_FACTORY).state()
|
128
|
-
store: ObjectStore = cast(ObjectStoreFactory, app.state.
|
128
|
+
store: ObjectStore = cast(ObjectStoreFactory, app.state.OBJECTSTORE_FACTORY).store()
|
129
129
|
|
130
130
|
# Handle message
|
131
131
|
return message_handler.push_messages(request=request, state=state, store=store)
|