flwr-nightly 1.20.0.dev20250710__py3-none-any.whl → 1.20.0.dev20250714__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.
@@ -15,6 +15,7 @@
15
15
  """InflatableObject utilities."""
16
16
 
17
17
  import concurrent.futures
18
+ import os
18
19
  import random
19
20
  import threading
20
21
  import time
@@ -69,6 +70,13 @@ class ObjectIdNotPreregisteredError(Exception):
69
70
  super().__init__(f"Object with ID '{object_id}' could not be found.")
70
71
 
71
72
 
73
+ def get_num_workers(max_concurrent: int) -> int:
74
+ """Get number of workers based on the number of CPU cores and the maximum
75
+ allowed."""
76
+ num_cores = os.cpu_count() or 1
77
+ return min(max_concurrent, num_cores)
78
+
79
+
72
80
  def push_objects(
73
81
  objects: dict[str, InflatableObject],
74
82
  push_object_fn: Callable[[str, bytes], None],
@@ -111,13 +119,13 @@ def push_objects(
111
119
  del objects[obj_id]
112
120
  push_object_fn(obj_id, object_content)
113
121
 
114
- with concurrent.futures.ThreadPoolExecutor(
115
- max_workers=max_concurrent_pushes
116
- ) as executor:
122
+ # Push all objects concurrently
123
+ num_workers = get_num_workers(max_concurrent_pushes)
124
+ with concurrent.futures.ThreadPoolExecutor(max_workers=num_workers) as executor:
117
125
  list(executor.map(push, list(objects.keys())))
118
126
 
119
127
 
120
- def pull_objects( # pylint: disable=too-many-arguments
128
+ def pull_objects( # pylint: disable=too-many-arguments,too-many-locals
121
129
  object_ids: list[str],
122
130
  pull_object_fn: Callable[[str], bytes],
123
131
  *,
@@ -209,9 +217,8 @@ def pull_objects( # pylint: disable=too-many-arguments
209
217
  return
210
218
 
211
219
  # Submit all pull tasks concurrently
212
- with concurrent.futures.ThreadPoolExecutor(
213
- max_workers=max_concurrent_pulls
214
- ) as executor:
220
+ num_workers = get_num_workers(max_concurrent_pulls)
221
+ with concurrent.futures.ThreadPoolExecutor(max_workers=num_workers) as executor:
215
222
  futures = {
216
223
  executor.submit(pull_with_retries, obj_id): obj_id for obj_id in object_ids
217
224
  }
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/appio.proto
4
+ # Protobuf Python Version: 4.25.1
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
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
16
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
17
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/appio.proto\x12\nflwr.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\"\x8a\x01\n\x16PushAppMessagesRequest\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcc\x01\n\x17PushAppMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12O\n\x0fobjects_to_push\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PushAppMessagesResponse.ObjectsToPushEntry\x1aK\n\x12ObjectsToPushEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"=\n\x16PullAppMessagesRequest\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\"\xe3\x01\n\x17PullAppMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12O\n\x0fobjects_to_pull\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PullAppMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x16\n\x14PullAppInputsRequest\"y\n\x15PullAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"M\n\x15PushAppOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x18\n\x16PushAppOutputsResponseb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.appio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
28
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
29
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
30
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
31
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_start=109
32
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_end=247
33
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_start=250
34
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_end=454
35
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=379
36
+ _globals['_PUSHAPPMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=454
37
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_start=456
38
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_end=517
39
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_start=520
40
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_end=747
41
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=672
42
+ _globals['_PULLAPPMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=747
43
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_start=749
44
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_end=771
45
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_start=773
46
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_end=894
47
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_start=896
48
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_end=973
49
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_start=975
50
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_end=999
51
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,167 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.fab_pb2
7
+ import flwr.proto.message_pb2
8
+ import flwr.proto.run_pb2
9
+ import google.protobuf.descriptor
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.message
12
+ import typing
13
+ import typing_extensions
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ class PushAppMessagesRequest(google.protobuf.message.Message):
18
+ """These messages are used by both ServerAppIo and ClientAppIo services
19
+
20
+ PushAppMessages messages
21
+ """
22
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
23
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
24
+ RUN_ID_FIELD_NUMBER: builtins.int
25
+ MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
26
+ @property
27
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
28
+ run_id: builtins.int
29
+ @property
30
+ def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
31
+ def __init__(self,
32
+ *,
33
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
34
+ run_id: builtins.int = ...,
35
+ message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
36
+ ) -> None: ...
37
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
38
+ global___PushAppMessagesRequest = PushAppMessagesRequest
39
+
40
+ class PushAppMessagesResponse(google.protobuf.message.Message):
41
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
42
+ class ObjectsToPushEntry(google.protobuf.message.Message):
43
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
44
+ KEY_FIELD_NUMBER: builtins.int
45
+ VALUE_FIELD_NUMBER: builtins.int
46
+ key: typing.Text
47
+ @property
48
+ def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
49
+ def __init__(self,
50
+ *,
51
+ key: typing.Text = ...,
52
+ value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
53
+ ) -> None: ...
54
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
55
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
56
+
57
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
58
+ OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
59
+ @property
60
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
61
+ @property
62
+ def objects_to_push(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
63
+ def __init__(self,
64
+ *,
65
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
66
+ objects_to_push: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
67
+ ) -> None: ...
68
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","objects_to_push",b"objects_to_push"]) -> None: ...
69
+ global___PushAppMessagesResponse = PushAppMessagesResponse
70
+
71
+ class PullAppMessagesRequest(google.protobuf.message.Message):
72
+ """PullAppMessages messages"""
73
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
74
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
75
+ RUN_ID_FIELD_NUMBER: builtins.int
76
+ @property
77
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
78
+ run_id: builtins.int
79
+ def __init__(self,
80
+ *,
81
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
82
+ run_id: builtins.int = ...,
83
+ ) -> None: ...
84
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
85
+ global___PullAppMessagesRequest = PullAppMessagesRequest
86
+
87
+ class PullAppMessagesResponse(google.protobuf.message.Message):
88
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
89
+ class ObjectsToPullEntry(google.protobuf.message.Message):
90
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
91
+ KEY_FIELD_NUMBER: builtins.int
92
+ VALUE_FIELD_NUMBER: builtins.int
93
+ key: typing.Text
94
+ @property
95
+ def value(self) -> flwr.proto.message_pb2.ObjectIDs: ...
96
+ def __init__(self,
97
+ *,
98
+ key: typing.Text = ...,
99
+ value: typing.Optional[flwr.proto.message_pb2.ObjectIDs] = ...,
100
+ ) -> None: ...
101
+ def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
102
+ def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
103
+
104
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
105
+ OBJECTS_TO_PULL_FIELD_NUMBER: builtins.int
106
+ @property
107
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
108
+ @property
109
+ def objects_to_pull(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.message_pb2.ObjectIDs]: ...
110
+ def __init__(self,
111
+ *,
112
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
113
+ objects_to_pull: typing.Optional[typing.Mapping[typing.Text, flwr.proto.message_pb2.ObjectIDs]] = ...,
114
+ ) -> None: ...
115
+ def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","objects_to_pull",b"objects_to_pull"]) -> None: ...
116
+ global___PullAppMessagesResponse = PullAppMessagesResponse
117
+
118
+ class PullAppInputsRequest(google.protobuf.message.Message):
119
+ """PullAppInputs messages"""
120
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
121
+ def __init__(self,
122
+ ) -> None: ...
123
+ global___PullAppInputsRequest = PullAppInputsRequest
124
+
125
+ class PullAppInputsResponse(google.protobuf.message.Message):
126
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
127
+ CONTEXT_FIELD_NUMBER: builtins.int
128
+ RUN_FIELD_NUMBER: builtins.int
129
+ FAB_FIELD_NUMBER: builtins.int
130
+ @property
131
+ def context(self) -> flwr.proto.message_pb2.Context: ...
132
+ @property
133
+ def run(self) -> flwr.proto.run_pb2.Run: ...
134
+ @property
135
+ def fab(self) -> flwr.proto.fab_pb2.Fab: ...
136
+ def __init__(self,
137
+ *,
138
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
139
+ run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
140
+ fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
141
+ ) -> None: ...
142
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
143
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
144
+ global___PullAppInputsResponse = PullAppInputsResponse
145
+
146
+ class PushAppOutputsRequest(google.protobuf.message.Message):
147
+ """PushAppInputs messages"""
148
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
+ RUN_ID_FIELD_NUMBER: builtins.int
150
+ CONTEXT_FIELD_NUMBER: builtins.int
151
+ run_id: builtins.int
152
+ @property
153
+ def context(self) -> flwr.proto.message_pb2.Context: ...
154
+ def __init__(self,
155
+ *,
156
+ run_id: builtins.int = ...,
157
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
158
+ ) -> None: ...
159
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
160
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
161
+ global___PushAppOutputsRequest = PushAppOutputsRequest
162
+
163
+ class PushAppOutputsResponse(google.protobuf.message.Message):
164
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
165
+ def __init__(self,
166
+ ) -> None: ...
167
+ global___PushAppOutputsResponse = PushAppOutputsResponse
@@ -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
+ """
@@ -17,15 +17,15 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
17
17
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"W\n\x15\x43lientAppOutputStatus\x12-\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1f.flwr.proto.ClientAppOutputCode\x12\x0f\n\x07message\x18\x02 \x01(\t\"+\n\x1aPullClientAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\xa5\x01\n\x1bPullClientAppInputsResponse\x12$\n\x07message\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\"x\n\x1bPushClientAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12$\n\x07message\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x13.flwr.proto.Context\"Q\n\x1cPushClientAppOutputsResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32!.flwr.proto.ClientAppOutputStatus*L\n\x13\x43lientAppOutputCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x01\x12\x11\n\rUNKNOWN_ERROR\x10\x02\x32\xbf\x03\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12h\n\x13PullClientAppInputs\x12&.flwr.proto.PullClientAppInputsRequest\x1a\'.flwr.proto.PullClientAppInputsResponse\"\x00\x12k\n\x14PushClientAppOutputs\x12\'.flwr.proto.PushClientAppOutputsRequest\x1a(.flwr.proto.PushClientAppOutputsResponse\"\x00\x62\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"W\n\x15\x43lientAppOutputStatus\x12-\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1f.flwr.proto.ClientAppOutputCode\x12\x0f\n\x07message\x18\x02 \x01(\t\"+\n\x1aPullClientAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x7f\n\x1bPullClientAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"R\n\x1bPushClientAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"Q\n\x1cPushClientAppOutputsResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32!.flwr.proto.ClientAppOutputStatus\"#\n\x12PullMessageRequest\x12\r\n\x05token\x18\x01 \x01(\t\";\n\x13PullMessageResponse\x12$\n\x07message\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Message\"I\n\x12PushMessageRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12$\n\x07message\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Message\"\x15\n\x13PushMessageResponse*L\n\x13\x43lientAppOutputCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x01\x12\x11\n\rUNKNOWN_ERROR\x10\x02\x32\xe3\x04\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12h\n\x13PullClientAppInputs\x12&.flwr.proto.PullClientAppInputsRequest\x1a\'.flwr.proto.PullClientAppInputsResponse\"\x00\x12k\n\x14PushClientAppOutputs\x12\'.flwr.proto.PushClientAppOutputsRequest\x1a(.flwr.proto.PushClientAppOutputsResponse\"\x00\x12P\n\x0bPushMessage\x12\x1e.flwr.proto.PushMessageRequest\x1a\x1f.flwr.proto.PushMessageResponse\"\x00\x12P\n\x0bPullMessage\x12\x1e.flwr.proto.PullMessageRequest\x1a\x1f.flwr.proto.PullMessageResponse\"\x00\x62\x06proto3')
21
21
 
22
22
  _globals = globals()
23
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
24
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
25
25
  if _descriptor._USE_C_DESCRIPTORS == False:
26
26
  DESCRIPTOR._options = None
27
- _globals['_CLIENTAPPOUTPUTCODE']._serialized_start=795
28
- _globals['_CLIENTAPPOUTPUTCODE']._serialized_end=871
27
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_start=914
28
+ _globals['_CLIENTAPPOUTPUTCODE']._serialized_end=990
29
29
  _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_start=114
30
30
  _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_end=151
31
31
  _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_start=153
@@ -38,12 +38,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
38
38
  _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_end=375
39
39
  _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_start=377
40
40
  _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_end=420
41
- _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_start=423
42
- _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_end=588
43
- _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_start=590
44
- _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_end=710
45
- _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_start=712
46
- _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_end=793
47
- _globals['_CLIENTAPPIO']._serialized_start=874
48
- _globals['_CLIENTAPPIO']._serialized_end=1321
41
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_start=422
42
+ _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_end=549
43
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_start=551
44
+ _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_end=633
45
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_start=635
46
+ _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_end=716
47
+ _globals['_PULLMESSAGEREQUEST']._serialized_start=718
48
+ _globals['_PULLMESSAGEREQUEST']._serialized_end=753
49
+ _globals['_PULLMESSAGERESPONSE']._serialized_start=755
50
+ _globals['_PULLMESSAGERESPONSE']._serialized_end=814
51
+ _globals['_PUSHMESSAGEREQUEST']._serialized_start=816
52
+ _globals['_PUSHMESSAGEREQUEST']._serialized_end=889
53
+ _globals['_PUSHMESSAGERESPONSE']._serialized_start=891
54
+ _globals['_PUSHMESSAGERESPONSE']._serialized_end=912
55
+ _globals['_CLIENTAPPIO']._serialized_start=993
56
+ _globals['_CLIENTAPPIO']._serialized_end=1604
49
57
  # @@protoc_insertion_point(module_scope)
@@ -101,13 +101,10 @@ global___PullClientAppInputsRequest = PullClientAppInputsRequest
101
101
 
102
102
  class PullClientAppInputsResponse(google.protobuf.message.Message):
103
103
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
104
- MESSAGE_FIELD_NUMBER: builtins.int
105
104
  CONTEXT_FIELD_NUMBER: builtins.int
106
105
  RUN_FIELD_NUMBER: builtins.int
107
106
  FAB_FIELD_NUMBER: builtins.int
108
107
  @property
109
- def message(self) -> flwr.proto.message_pb2.Message: ...
110
- @property
111
108
  def context(self) -> flwr.proto.message_pb2.Context: ...
112
109
  @property
113
110
  def run(self) -> flwr.proto.run_pb2.Run: ...
@@ -115,33 +112,28 @@ class PullClientAppInputsResponse(google.protobuf.message.Message):
115
112
  def fab(self) -> flwr.proto.fab_pb2.Fab: ...
116
113
  def __init__(self,
117
114
  *,
118
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
119
115
  context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
120
116
  run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
121
117
  fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
122
118
  ) -> None: ...
123
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> builtins.bool: ...
124
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> None: ...
119
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
120
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
125
121
  global___PullClientAppInputsResponse = PullClientAppInputsResponse
126
122
 
127
123
  class PushClientAppOutputsRequest(google.protobuf.message.Message):
128
124
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
129
125
  TOKEN_FIELD_NUMBER: builtins.int
130
- MESSAGE_FIELD_NUMBER: builtins.int
131
126
  CONTEXT_FIELD_NUMBER: builtins.int
132
127
  token: typing.Text
133
128
  @property
134
- def message(self) -> flwr.proto.message_pb2.Message: ...
135
- @property
136
129
  def context(self) -> flwr.proto.message_pb2.Context: ...
137
130
  def __init__(self,
138
131
  *,
139
132
  token: typing.Text = ...,
140
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
141
133
  context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
142
134
  ) -> None: ...
143
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message"]) -> builtins.bool: ...
144
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","token",b"token"]) -> None: ...
135
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
136
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","token",b"token"]) -> None: ...
145
137
  global___PushClientAppOutputsRequest = PushClientAppOutputsRequest
146
138
 
147
139
  class PushClientAppOutputsResponse(google.protobuf.message.Message):
@@ -156,3 +148,49 @@ class PushClientAppOutputsResponse(google.protobuf.message.Message):
156
148
  def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
157
149
  def ClearField(self, field_name: typing_extensions.Literal["status",b"status"]) -> None: ...
158
150
  global___PushClientAppOutputsResponse = PushClientAppOutputsResponse
151
+
152
+ class PullMessageRequest(google.protobuf.message.Message):
153
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
+ TOKEN_FIELD_NUMBER: builtins.int
155
+ token: typing.Text
156
+ def __init__(self,
157
+ *,
158
+ token: typing.Text = ...,
159
+ ) -> None: ...
160
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
161
+ global___PullMessageRequest = PullMessageRequest
162
+
163
+ class PullMessageResponse(google.protobuf.message.Message):
164
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
165
+ MESSAGE_FIELD_NUMBER: builtins.int
166
+ @property
167
+ def message(self) -> flwr.proto.message_pb2.Message: ...
168
+ def __init__(self,
169
+ *,
170
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
171
+ ) -> None: ...
172
+ def HasField(self, field_name: typing_extensions.Literal["message",b"message"]) -> builtins.bool: ...
173
+ def ClearField(self, field_name: typing_extensions.Literal["message",b"message"]) -> None: ...
174
+ global___PullMessageResponse = PullMessageResponse
175
+
176
+ class PushMessageRequest(google.protobuf.message.Message):
177
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
178
+ TOKEN_FIELD_NUMBER: builtins.int
179
+ MESSAGE_FIELD_NUMBER: builtins.int
180
+ token: typing.Text
181
+ @property
182
+ def message(self) -> flwr.proto.message_pb2.Message: ...
183
+ def __init__(self,
184
+ *,
185
+ token: typing.Text = ...,
186
+ message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
187
+ ) -> None: ...
188
+ def HasField(self, field_name: typing_extensions.Literal["message",b"message"]) -> builtins.bool: ...
189
+ def ClearField(self, field_name: typing_extensions.Literal["message",b"message","token",b"token"]) -> None: ...
190
+ global___PushMessageRequest = PushMessageRequest
191
+
192
+ class PushMessageResponse(google.protobuf.message.Message):
193
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
194
+ def __init__(self,
195
+ ) -> None: ...
196
+ global___PushMessageResponse = PushMessageResponse
@@ -34,6 +34,16 @@ class ClientAppIoStub(object):
34
34
  request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
35
35
  response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
36
36
  )
37
+ self.PushMessage = channel.unary_unary(
38
+ '/flwr.proto.ClientAppIo/PushMessage',
39
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.SerializeToString,
40
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.FromString,
41
+ )
42
+ self.PullMessage = channel.unary_unary(
43
+ '/flwr.proto.ClientAppIo/PullMessage',
44
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.SerializeToString,
45
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.FromString,
46
+ )
37
47
 
38
48
 
39
49
  class ClientAppIoServicer(object):
@@ -67,6 +77,20 @@ class ClientAppIoServicer(object):
67
77
  context.set_details('Method not implemented!')
68
78
  raise NotImplementedError('Method not implemented!')
69
79
 
80
+ def PushMessage(self, request, context):
81
+ """Push Message
82
+ """
83
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
84
+ context.set_details('Method not implemented!')
85
+ raise NotImplementedError('Method not implemented!')
86
+
87
+ def PullMessage(self, request, context):
88
+ """Pull Message
89
+ """
90
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
91
+ context.set_details('Method not implemented!')
92
+ raise NotImplementedError('Method not implemented!')
93
+
70
94
 
71
95
  def add_ClientAppIoServicer_to_server(servicer, server):
72
96
  rpc_method_handlers = {
@@ -90,6 +114,16 @@ def add_ClientAppIoServicer_to_server(servicer, server):
90
114
  request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.FromString,
91
115
  response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.SerializeToString,
92
116
  ),
117
+ 'PushMessage': grpc.unary_unary_rpc_method_handler(
118
+ servicer.PushMessage,
119
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.FromString,
120
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.SerializeToString,
121
+ ),
122
+ 'PullMessage': grpc.unary_unary_rpc_method_handler(
123
+ servicer.PullMessage,
124
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.FromString,
125
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.SerializeToString,
126
+ ),
93
127
  }
94
128
  generic_handler = grpc.method_handlers_generic_handler(
95
129
  'flwr.proto.ClientAppIo', rpc_method_handlers)
@@ -167,3 +201,37 @@ class ClientAppIo(object):
167
201
  flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
168
202
  options, channel_credentials,
169
203
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
204
+
205
+ @staticmethod
206
+ def PushMessage(request,
207
+ target,
208
+ options=(),
209
+ channel_credentials=None,
210
+ call_credentials=None,
211
+ insecure=False,
212
+ compression=None,
213
+ wait_for_ready=None,
214
+ timeout=None,
215
+ metadata=None):
216
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushMessage',
217
+ flwr_dot_proto_dot_clientappio__pb2.PushMessageRequest.SerializeToString,
218
+ flwr_dot_proto_dot_clientappio__pb2.PushMessageResponse.FromString,
219
+ options, channel_credentials,
220
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
221
+
222
+ @staticmethod
223
+ def PullMessage(request,
224
+ target,
225
+ options=(),
226
+ channel_credentials=None,
227
+ call_credentials=None,
228
+ insecure=False,
229
+ compression=None,
230
+ wait_for_ready=None,
231
+ timeout=None,
232
+ metadata=None):
233
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullMessage',
234
+ flwr_dot_proto_dot_clientappio__pb2.PullMessageRequest.SerializeToString,
235
+ flwr_dot_proto_dot_clientappio__pb2.PullMessageResponse.FromString,
236
+ options, channel_credentials,
237
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -28,6 +28,16 @@ class ClientAppIoStub:
28
28
  flwr.proto.clientappio_pb2.PushClientAppOutputsResponse]
29
29
  """Push client app outputs"""
30
30
 
31
+ PushMessage: grpc.UnaryUnaryMultiCallable[
32
+ flwr.proto.clientappio_pb2.PushMessageRequest,
33
+ flwr.proto.clientappio_pb2.PushMessageResponse]
34
+ """Push Message"""
35
+
36
+ PullMessage: grpc.UnaryUnaryMultiCallable[
37
+ flwr.proto.clientappio_pb2.PullMessageRequest,
38
+ flwr.proto.clientappio_pb2.PullMessageResponse]
39
+ """Pull Message"""
40
+
31
41
 
32
42
  class ClientAppIoServicer(metaclass=abc.ABCMeta):
33
43
  @abc.abstractmethod
@@ -62,5 +72,21 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
62
72
  """Push client app outputs"""
63
73
  pass
64
74
 
75
+ @abc.abstractmethod
76
+ def PushMessage(self,
77
+ request: flwr.proto.clientappio_pb2.PushMessageRequest,
78
+ context: grpc.ServicerContext,
79
+ ) -> flwr.proto.clientappio_pb2.PushMessageResponse:
80
+ """Push Message"""
81
+ pass
82
+
83
+ @abc.abstractmethod
84
+ def PullMessage(self,
85
+ request: flwr.proto.clientappio_pb2.PullMessageRequest,
86
+ context: grpc.ServicerContext,
87
+ ) -> flwr.proto.clientappio_pb2.PullMessageResponse:
88
+ """Pull Message"""
89
+ pass
90
+
65
91
 
66
92
  def add_ClientAppIoServicer_to_server(servicer: ClientAppIoServicer, server: grpc.Server) -> None: ...
@@ -18,43 +18,20 @@ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
18
18
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
19
19
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
20
20
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
21
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
21
22
 
22
23
 
23
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node\"\x8a\x01\n\x16PushInsMessagesRequest\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcc\x01\n\x17PushInsMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12O\n\x0fobjects_to_push\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PushInsMessagesResponse.ObjectsToPushEntry\x1aK\n\x12ObjectsToPushEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"=\n\x16PullResMessagesRequest\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\"\xe3\x01\n\x17PullResMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12O\n\x0fobjects_to_pull\x18\x02 \x03(\x0b\x32\x36.flwr.proto.PullResMessagesResponse.ObjectsToPullEntry\x1aK\n\x12ObjectsToPullEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.ObjectIDs:\x02\x38\x01\"\x1c\n\x1aPullServerAppInputsRequest\"\x7f\n\x1bPullServerAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"S\n\x1bPushServerAppOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1e\n\x1cPushServerAppOutputsResponse2\xd7\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushInsMessagesRequest\x1a#.flwr.proto.PushInsMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullResMessagesRequest\x1a#.flwr.proto.PullResMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12h\n\x13PullServerAppInputs\x12&.flwr.proto.PullServerAppInputsRequest\x1a\'.flwr.proto.PullServerAppInputsResponse\"\x00\x12k\n\x14PushServerAppOutputs\x12\'.flwr.proto.PushServerAppOutputsRequest\x1a(.flwr.proto.PushServerAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
24
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xb3\t\n\x0bServerAppIo\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
24
25
 
25
26
  _globals = globals()
26
27
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
28
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
28
29
  if _descriptor._USE_C_DESCRIPTORS == False:
29
30
  DESCRIPTOR._options = None
30
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
31
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
32
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
33
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
34
- _globals['_GETNODESREQUEST']._serialized_start=187
35
- _globals['_GETNODESREQUEST']._serialized_end=220
36
- _globals['_GETNODESRESPONSE']._serialized_start=222
37
- _globals['_GETNODESRESPONSE']._serialized_end=273
38
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_start=276
39
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_end=414
40
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_start=417
41
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_end=621
42
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=546
43
- _globals['_PUSHINSMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=621
44
- _globals['_PULLRESMESSAGESREQUEST']._serialized_start=623
45
- _globals['_PULLRESMESSAGESREQUEST']._serialized_end=684
46
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_start=687
47
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_end=914
48
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=839
49
- _globals['_PULLRESMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=914
50
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=916
51
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=944
52
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=946
53
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=1073
54
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=1075
55
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=1158
56
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=1160
57
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=1190
58
- _globals['_SERVERAPPIO']._serialized_start=1193
59
- _globals['_SERVERAPPIO']._serialized_end=2432
31
+ _globals['_GETNODESREQUEST']._serialized_start=211
32
+ _globals['_GETNODESREQUEST']._serialized_end=244
33
+ _globals['_GETNODESRESPONSE']._serialized_start=246
34
+ _globals['_GETNODESRESPONSE']._serialized_end=297
35
+ _globals['_SERVERAPPIO']._serialized_start=300
36
+ _globals['_SERVERAPPIO']._serialized_end=1503
60
37
  # @@protoc_insertion_point(module_scope)