flwr 1.18.0__py3-none-any.whl → 1.20.0__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.
Files changed (174) hide show
  1. flwr/app/__init__.py +15 -0
  2. flwr/app/error.py +68 -0
  3. flwr/app/metadata.py +223 -0
  4. flwr/cli/build.py +94 -59
  5. flwr/cli/log.py +3 -3
  6. flwr/cli/login/login.py +3 -7
  7. flwr/cli/ls.py +15 -36
  8. flwr/cli/new/new.py +12 -4
  9. flwr/cli/new/templates/app/README.flowertune.md.tpl +2 -0
  10. flwr/cli/new/templates/app/README.md.tpl +5 -0
  11. flwr/cli/new/templates/app/code/client.baseline.py.tpl +1 -1
  12. flwr/cli/new/templates/app/code/model.baseline.py.tpl +1 -1
  13. flwr/cli/new/templates/app/code/server.baseline.py.tpl +2 -3
  14. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +25 -17
  15. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +13 -1
  16. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +21 -2
  17. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +18 -1
  18. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +19 -2
  19. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +18 -1
  20. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +20 -3
  21. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +18 -1
  22. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +18 -1
  23. flwr/cli/run/run.py +48 -49
  24. flwr/cli/stop.py +2 -2
  25. flwr/cli/utils.py +38 -5
  26. flwr/client/__init__.py +2 -2
  27. flwr/client/client_app.py +1 -1
  28. flwr/client/clientapp/__init__.py +0 -7
  29. flwr/client/grpc_adapter_client/connection.py +15 -8
  30. flwr/client/grpc_rere_client/connection.py +142 -97
  31. flwr/client/grpc_rere_client/grpc_adapter.py +34 -6
  32. flwr/client/message_handler/message_handler.py +1 -1
  33. flwr/client/mod/comms_mods.py +36 -17
  34. flwr/client/rest_client/connection.py +176 -103
  35. flwr/clientapp/__init__.py +15 -0
  36. flwr/common/__init__.py +2 -2
  37. flwr/common/auth_plugin/__init__.py +2 -0
  38. flwr/common/auth_plugin/auth_plugin.py +29 -3
  39. flwr/common/constant.py +39 -8
  40. flwr/common/event_log_plugin/event_log_plugin.py +3 -3
  41. flwr/common/exit/exit_code.py +16 -1
  42. flwr/common/exit_handlers.py +30 -0
  43. flwr/common/grpc.py +12 -1
  44. flwr/common/heartbeat.py +165 -0
  45. flwr/common/inflatable.py +290 -0
  46. flwr/common/inflatable_protobuf_utils.py +141 -0
  47. flwr/common/inflatable_utils.py +508 -0
  48. flwr/common/message.py +110 -242
  49. flwr/common/record/__init__.py +2 -1
  50. flwr/common/record/array.py +402 -0
  51. flwr/common/record/arraychunk.py +59 -0
  52. flwr/common/record/arrayrecord.py +103 -225
  53. flwr/common/record/configrecord.py +59 -4
  54. flwr/common/record/conversion_utils.py +1 -1
  55. flwr/common/record/metricrecord.py +55 -4
  56. flwr/common/record/recorddict.py +69 -1
  57. flwr/common/recorddict_compat.py +2 -2
  58. flwr/common/retry_invoker.py +5 -1
  59. flwr/common/serde.py +59 -211
  60. flwr/common/serde_utils.py +175 -0
  61. flwr/common/typing.py +5 -3
  62. flwr/compat/__init__.py +15 -0
  63. flwr/compat/client/__init__.py +15 -0
  64. flwr/{client → compat/client}/app.py +28 -185
  65. flwr/compat/common/__init__.py +15 -0
  66. flwr/compat/server/__init__.py +15 -0
  67. flwr/compat/server/app.py +174 -0
  68. flwr/compat/simulation/__init__.py +15 -0
  69. flwr/proto/appio_pb2.py +43 -0
  70. flwr/proto/appio_pb2.pyi +151 -0
  71. flwr/proto/appio_pb2_grpc.py +4 -0
  72. flwr/proto/appio_pb2_grpc.pyi +4 -0
  73. flwr/proto/clientappio_pb2.py +12 -19
  74. flwr/proto/clientappio_pb2.pyi +23 -101
  75. flwr/proto/clientappio_pb2_grpc.py +269 -28
  76. flwr/proto/clientappio_pb2_grpc.pyi +114 -20
  77. flwr/proto/fleet_pb2.py +24 -27
  78. flwr/proto/fleet_pb2.pyi +19 -35
  79. flwr/proto/fleet_pb2_grpc.py +117 -13
  80. flwr/proto/fleet_pb2_grpc.pyi +47 -6
  81. flwr/proto/heartbeat_pb2.py +33 -0
  82. flwr/proto/heartbeat_pb2.pyi +66 -0
  83. flwr/proto/heartbeat_pb2_grpc.py +4 -0
  84. flwr/proto/heartbeat_pb2_grpc.pyi +4 -0
  85. flwr/proto/message_pb2.py +28 -11
  86. flwr/proto/message_pb2.pyi +125 -0
  87. flwr/proto/recorddict_pb2.py +16 -28
  88. flwr/proto/recorddict_pb2.pyi +46 -64
  89. flwr/proto/run_pb2.py +24 -32
  90. flwr/proto/run_pb2.pyi +4 -52
  91. flwr/proto/serverappio_pb2.py +9 -23
  92. flwr/proto/serverappio_pb2.pyi +0 -110
  93. flwr/proto/serverappio_pb2_grpc.py +177 -72
  94. flwr/proto/serverappio_pb2_grpc.pyi +75 -33
  95. flwr/proto/simulationio_pb2.py +12 -11
  96. flwr/proto/simulationio_pb2_grpc.py +35 -0
  97. flwr/proto/simulationio_pb2_grpc.pyi +14 -0
  98. flwr/server/__init__.py +1 -1
  99. flwr/server/app.py +69 -187
  100. flwr/server/compat/app_utils.py +50 -28
  101. flwr/server/fleet_event_log_interceptor.py +6 -2
  102. flwr/server/grid/grpc_grid.py +148 -41
  103. flwr/server/grid/inmemory_grid.py +5 -4
  104. flwr/server/serverapp/app.py +45 -17
  105. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +21 -3
  106. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +102 -8
  107. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
  108. flwr/server/superlink/fleet/message_handler/message_handler.py +130 -19
  109. flwr/server/superlink/fleet/rest_rere/rest_api.py +73 -13
  110. flwr/server/superlink/fleet/vce/vce_api.py +6 -3
  111. flwr/server/superlink/linkstate/in_memory_linkstate.py +138 -43
  112. flwr/server/superlink/linkstate/linkstate.py +53 -20
  113. flwr/server/superlink/linkstate/sqlite_linkstate.py +149 -55
  114. flwr/server/superlink/linkstate/utils.py +33 -29
  115. flwr/server/superlink/serverappio/serverappio_grpc.py +4 -1
  116. flwr/server/superlink/serverappio/serverappio_servicer.py +230 -84
  117. flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
  118. flwr/server/superlink/simulation/simulationio_servicer.py +26 -2
  119. flwr/server/superlink/utils.py +9 -2
  120. flwr/server/utils/validator.py +2 -2
  121. flwr/serverapp/__init__.py +15 -0
  122. flwr/simulation/app.py +25 -0
  123. flwr/simulation/run_simulation.py +17 -0
  124. flwr/supercore/__init__.py +15 -0
  125. flwr/{server/superlink → supercore}/ffs/__init__.py +2 -0
  126. flwr/{server/superlink → supercore}/ffs/disk_ffs.py +1 -1
  127. flwr/supercore/grpc_health/__init__.py +22 -0
  128. flwr/supercore/grpc_health/simple_health_servicer.py +38 -0
  129. flwr/supercore/license_plugin/__init__.py +22 -0
  130. flwr/supercore/license_plugin/license_plugin.py +26 -0
  131. flwr/supercore/object_store/__init__.py +24 -0
  132. flwr/supercore/object_store/in_memory_object_store.py +229 -0
  133. flwr/supercore/object_store/object_store.py +170 -0
  134. flwr/supercore/object_store/object_store_factory.py +44 -0
  135. flwr/supercore/object_store/utils.py +43 -0
  136. flwr/supercore/scheduler/__init__.py +22 -0
  137. flwr/supercore/scheduler/plugin.py +71 -0
  138. flwr/{client/nodestate/nodestate.py → supercore/utils.py} +14 -13
  139. flwr/superexec/deployment.py +7 -4
  140. flwr/superexec/exec_event_log_interceptor.py +8 -4
  141. flwr/superexec/exec_grpc.py +25 -5
  142. flwr/superexec/exec_license_interceptor.py +82 -0
  143. flwr/superexec/exec_servicer.py +135 -24
  144. flwr/superexec/exec_user_auth_interceptor.py +45 -8
  145. flwr/superexec/executor.py +5 -1
  146. flwr/superexec/simulation.py +8 -3
  147. flwr/superlink/__init__.py +15 -0
  148. flwr/{client/supernode → supernode}/__init__.py +0 -7
  149. flwr/supernode/cli/__init__.py +24 -0
  150. flwr/{client/supernode/app.py → supernode/cli/flower_supernode.py} +3 -19
  151. flwr/supernode/cli/flwr_clientapp.py +88 -0
  152. flwr/supernode/nodestate/in_memory_nodestate.py +199 -0
  153. flwr/supernode/nodestate/nodestate.py +227 -0
  154. flwr/supernode/runtime/__init__.py +15 -0
  155. flwr/{client/clientapp/app.py → supernode/runtime/run_clientapp.py} +135 -89
  156. flwr/supernode/scheduler/__init__.py +22 -0
  157. flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +49 -0
  158. flwr/supernode/servicer/__init__.py +15 -0
  159. flwr/supernode/servicer/clientappio/__init__.py +22 -0
  160. flwr/supernode/servicer/clientappio/clientappio_servicer.py +303 -0
  161. flwr/supernode/start_client_internal.py +589 -0
  162. {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/METADATA +6 -4
  163. {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/RECORD +171 -123
  164. {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/WHEEL +1 -1
  165. {flwr-1.18.0.dist-info → flwr-1.20.0.dist-info}/entry_points.txt +2 -2
  166. flwr/client/clientapp/clientappio_servicer.py +0 -244
  167. flwr/client/heartbeat.py +0 -74
  168. flwr/client/nodestate/in_memory_nodestate.py +0 -38
  169. /flwr/{client → compat/client}/grpc_client/__init__.py +0 -0
  170. /flwr/{client → compat/client}/grpc_client/connection.py +0 -0
  171. /flwr/{server/superlink → supercore}/ffs/ffs.py +0 -0
  172. /flwr/{server/superlink → supercore}/ffs/ffs_factory.py +0 -0
  173. /flwr/{client → supernode}/nodestate/__init__.py +0 -0
  174. /flwr/{client → supernode}/nodestate/nodestate_factory.py +0 -0
@@ -4,6 +4,7 @@ isort:skip_file
4
4
  """
5
5
  import builtins
6
6
  import flwr.proto.error_pb2
7
+ import flwr.proto.node_pb2
7
8
  import flwr.proto.recorddict_pb2
8
9
  import flwr.proto.transport_pb2
9
10
  import google.protobuf.descriptor
@@ -126,3 +127,127 @@ class Metadata(google.protobuf.message.Message):
126
127
  ) -> None: ...
127
128
  def ClearField(self, field_name: typing_extensions.Literal["created_at",b"created_at","dst_node_id",b"dst_node_id","group_id",b"group_id","message_id",b"message_id","message_type",b"message_type","reply_to_message_id",b"reply_to_message_id","run_id",b"run_id","src_node_id",b"src_node_id","ttl",b"ttl"]) -> None: ...
128
129
  global___Metadata = Metadata
130
+
131
+ class ObjectIDs(google.protobuf.message.Message):
132
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
133
+ OBJECT_IDS_FIELD_NUMBER: builtins.int
134
+ @property
135
+ def object_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
136
+ def __init__(self,
137
+ *,
138
+ object_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
139
+ ) -> None: ...
140
+ def ClearField(self, field_name: typing_extensions.Literal["object_ids",b"object_ids"]) -> None: ...
141
+ global___ObjectIDs = ObjectIDs
142
+
143
+ class ObjectTree(google.protobuf.message.Message):
144
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
145
+ OBJECT_ID_FIELD_NUMBER: builtins.int
146
+ CHILDREN_FIELD_NUMBER: builtins.int
147
+ object_id: typing.Text
148
+ @property
149
+ def children(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObjectTree]: ...
150
+ def __init__(self,
151
+ *,
152
+ object_id: typing.Text = ...,
153
+ children: typing.Optional[typing.Iterable[global___ObjectTree]] = ...,
154
+ ) -> None: ...
155
+ def ClearField(self, field_name: typing_extensions.Literal["children",b"children","object_id",b"object_id"]) -> None: ...
156
+ global___ObjectTree = ObjectTree
157
+
158
+ class PushObjectRequest(google.protobuf.message.Message):
159
+ """PushObject messages"""
160
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
161
+ NODE_FIELD_NUMBER: builtins.int
162
+ RUN_ID_FIELD_NUMBER: builtins.int
163
+ OBJECT_ID_FIELD_NUMBER: builtins.int
164
+ OBJECT_CONTENT_FIELD_NUMBER: builtins.int
165
+ @property
166
+ def node(self) -> flwr.proto.node_pb2.Node: ...
167
+ run_id: builtins.int
168
+ object_id: typing.Text
169
+ object_content: builtins.bytes
170
+ def __init__(self,
171
+ *,
172
+ node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
173
+ run_id: builtins.int = ...,
174
+ object_id: typing.Text = ...,
175
+ object_content: builtins.bytes = ...,
176
+ ) -> None: ...
177
+ def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
178
+ 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: ...
179
+ global___PushObjectRequest = PushObjectRequest
180
+
181
+ class PushObjectResponse(google.protobuf.message.Message):
182
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
183
+ STORED_FIELD_NUMBER: builtins.int
184
+ stored: builtins.bool
185
+ def __init__(self,
186
+ *,
187
+ stored: builtins.bool = ...,
188
+ ) -> None: ...
189
+ def ClearField(self, field_name: typing_extensions.Literal["stored",b"stored"]) -> None: ...
190
+ global___PushObjectResponse = PushObjectResponse
191
+
192
+ class PullObjectRequest(google.protobuf.message.Message):
193
+ """PullObject messages"""
194
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
195
+ NODE_FIELD_NUMBER: builtins.int
196
+ RUN_ID_FIELD_NUMBER: builtins.int
197
+ OBJECT_ID_FIELD_NUMBER: builtins.int
198
+ @property
199
+ def node(self) -> flwr.proto.node_pb2.Node: ...
200
+ run_id: builtins.int
201
+ object_id: typing.Text
202
+ def __init__(self,
203
+ *,
204
+ node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
205
+ run_id: builtins.int = ...,
206
+ object_id: typing.Text = ...,
207
+ ) -> None: ...
208
+ def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
209
+ def ClearField(self, field_name: typing_extensions.Literal["node",b"node","object_id",b"object_id","run_id",b"run_id"]) -> None: ...
210
+ global___PullObjectRequest = PullObjectRequest
211
+
212
+ class PullObjectResponse(google.protobuf.message.Message):
213
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
214
+ OBJECT_FOUND_FIELD_NUMBER: builtins.int
215
+ OBJECT_AVAILABLE_FIELD_NUMBER: builtins.int
216
+ OBJECT_CONTENT_FIELD_NUMBER: builtins.int
217
+ object_found: builtins.bool
218
+ object_available: builtins.bool
219
+ object_content: builtins.bytes
220
+ def __init__(self,
221
+ *,
222
+ object_found: builtins.bool = ...,
223
+ object_available: builtins.bool = ...,
224
+ object_content: builtins.bytes = ...,
225
+ ) -> None: ...
226
+ def ClearField(self, field_name: typing_extensions.Literal["object_available",b"object_available","object_content",b"object_content","object_found",b"object_found"]) -> None: ...
227
+ global___PullObjectResponse = PullObjectResponse
228
+
229
+ class ConfirmMessageReceivedRequest(google.protobuf.message.Message):
230
+ """ConfirmMessageReceived messages"""
231
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
232
+ NODE_FIELD_NUMBER: builtins.int
233
+ RUN_ID_FIELD_NUMBER: builtins.int
234
+ MESSAGE_OBJECT_ID_FIELD_NUMBER: builtins.int
235
+ @property
236
+ def node(self) -> flwr.proto.node_pb2.Node: ...
237
+ run_id: builtins.int
238
+ message_object_id: typing.Text
239
+ def __init__(self,
240
+ *,
241
+ node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
242
+ run_id: builtins.int = ...,
243
+ message_object_id: typing.Text = ...,
244
+ ) -> None: ...
245
+ def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
246
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_id",b"message_object_id","node",b"node","run_id",b"run_id"]) -> None: ...
247
+ global___ConfirmMessageReceivedRequest = ConfirmMessageReceivedRequest
248
+
249
+ class ConfirmMessageReceivedResponse(google.protobuf.message.Message):
250
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
251
+ def __init__(self,
252
+ ) -> None: ...
253
+ global___ConfirmMessageReceivedResponse = ConfirmMessageReceivedResponse
@@ -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\"H\n\x0b\x41rrayRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8c\x01\n\x0cMetricRecord\x12\x30\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\".flwr.proto.MetricRecord.DataEntry\x1aJ\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.MetricRecordValue:\x02\x38\x01\"\x8c\x01\n\x0c\x43onfigRecord\x12\x30\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\".flwr.proto.ConfigRecord.DataEntry\x1aJ\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.ConfigRecordValue:\x02\x38\x01\"\x88\x03\n\nRecordDict\x12\x32\n\x06\x61rrays\x18\x01 \x03(\x0b\x32\".flwr.proto.RecordDict.ArraysEntry\x12\x34\n\x07metrics\x18\x02 \x03(\x0b\x32#.flwr.proto.RecordDict.MetricsEntry\x12\x34\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32#.flwr.proto.RecordDict.ConfigsEntry\x1a\x46\n\x0b\x41rraysEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.flwr.proto.ArrayRecord:\x02\x38\x01\x1aH\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.flwr.proto.MetricRecord:\x02\x38\x01\x1aH\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.flwr.proto.ConfigRecord:\x02\x38\x01\x62\x06proto3')
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=966
54
- _globals['_METRICRECORD']._serialized_start=969
55
- _globals['_METRICRECORD']._serialized_end=1109
56
- _globals['_METRICRECORD_DATAENTRY']._serialized_start=1035
57
- _globals['_METRICRECORD_DATAENTRY']._serialized_end=1109
58
- _globals['_CONFIGRECORD']._serialized_start=1112
59
- _globals['_CONFIGRECORD']._serialized_end=1252
60
- _globals['_CONFIGRECORD_DATAENTRY']._serialized_start=1178
61
- _globals['_CONFIGRECORD_DATAENTRY']._serialized_end=1252
62
- _globals['_RECORDDICT']._serialized_start=1255
63
- _globals['_RECORDDICT']._serialized_end=1647
64
- _globals['_RECORDDICT_ARRAYSENTRY']._serialized_start=1429
65
- _globals['_RECORDDICT_ARRAYSENTRY']._serialized_end=1499
66
- _globals['_RECORDDICT_METRICSENTRY']._serialized_start=1501
67
- _globals['_RECORDDICT_METRICSENTRY']._serialized_end=1573
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)
@@ -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
- DATA_KEYS_FIELD_NUMBER: builtins.int
201
- DATA_VALUES_FIELD_NUMBER: builtins.int
202
- @property
203
- def data_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
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 data_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Array]: ...
217
+ def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ArrayRecord.Item]: ...
206
218
  def __init__(self,
207
219
  *,
208
- data_keys: typing.Optional[typing.Iterable[typing.Text]] = ...,
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["data_keys",b"data_keys","data_values",b"data_values"]) -> None: ...
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 DataEntry(google.protobuf.message.Message):
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
- DATA_FIELD_NUMBER: builtins.int
242
+ ITEMS_FIELD_NUMBER: builtins.int
232
243
  @property
233
- def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricRecordValue]: ...
244
+ def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MetricRecord.Item]: ...
234
245
  def __init__(self,
235
246
  *,
236
- data: typing.Optional[typing.Mapping[typing.Text, global___MetricRecordValue]] = ...,
247
+ items: typing.Optional[typing.Iterable[global___MetricRecord.Item]] = ...,
237
248
  ) -> None: ...
238
- def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
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 DataEntry(google.protobuf.message.Message):
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
- DATA_FIELD_NUMBER: builtins.int
269
+ ITEMS_FIELD_NUMBER: builtins.int
259
270
  @property
260
- def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigRecordValue]: ...
271
+ def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConfigRecord.Item]: ...
261
272
  def __init__(self,
262
273
  *,
263
- data: typing.Optional[typing.Mapping[typing.Text, global___ConfigRecordValue]] = ...,
274
+ items: typing.Optional[typing.Iterable[global___ConfigRecord.Item]] = ...,
264
275
  ) -> None: ...
265
- def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
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 ArraysEntry(google.protobuf.message.Message):
281
+ class Item(google.protobuf.message.Message):
271
282
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
272
283
  KEY_FIELD_NUMBER: builtins.int
273
- VALUE_FIELD_NUMBER: builtins.int
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 value(self) -> global___ArrayRecord: ...
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 value(self) -> global___MetricRecord: ...
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 value(self) -> global___ConfigRecord: ...
293
+ def config_record(self) -> global___ConfigRecord: ...
307
294
  def __init__(self,
308
295
  *,
309
296
  key: typing.Text = ...,
310
- value: typing.Optional[global___ConfigRecord] = ...,
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
- ARRAYS_FIELD_NUMBER: builtins.int
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 configs(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigRecord]: ...
307
+ def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RecordDict.Item]: ...
324
308
  def __init__(self,
325
309
  *,
326
- arrays: typing.Optional[typing.Mapping[typing.Text, global___ArrayRecord]] = ...,
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["arrays",b"arrays","configs",b"configs","metrics",b"metrics"]) -> None: ...
312
+ def ClearField(self, field_name: typing_extensions.Literal["items",b"items"]) -> None: ...
331
313
  global___RecordDict = RecordDict
flwr/proto/run_pb2.py CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
18
18
  from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xce\x02\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"\xeb\x01\n\x10\x43reateRunRequest\x12\x0e\n\x06\x66\x61\x62_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x02 \x01(\t\x12I\n\x0foverride_config\x18\x03 \x03(\x0b\x32\x30.flwr.proto.CreateRunRequest.OverrideConfigEntry\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"#\n\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xe0\x02\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -27,38 +27,30 @@ if _descriptor._USE_C_DESCRIPTORS == False:
27
27
  DESCRIPTOR._options = None
28
28
  _globals['_RUN_OVERRIDECONFIGENTRY']._options = None
29
29
  _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
30
- _globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._options = None
31
- _globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
32
30
  _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._options = None
33
31
  _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_options = b'8\001'
34
32
  _globals['_RUN']._serialized_start=139
35
- _globals['_RUN']._serialized_end=473
36
- _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=400
37
- _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=473
38
- _globals['_RUNSTATUS']._serialized_start=475
39
- _globals['_RUNSTATUS']._serialized_end=539
40
- _globals['_CREATERUNREQUEST']._serialized_start=542
41
- _globals['_CREATERUNREQUEST']._serialized_end=777
42
- _globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=400
43
- _globals['_CREATERUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=473
44
- _globals['_CREATERUNRESPONSE']._serialized_start=779
45
- _globals['_CREATERUNRESPONSE']._serialized_end=814
46
- _globals['_GETRUNREQUEST']._serialized_start=816
47
- _globals['_GETRUNREQUEST']._serialized_end=879
48
- _globals['_GETRUNRESPONSE']._serialized_start=881
49
- _globals['_GETRUNRESPONSE']._serialized_end=927
50
- _globals['_UPDATERUNSTATUSREQUEST']._serialized_start=929
51
- _globals['_UPDATERUNSTATUSREQUEST']._serialized_end=1012
52
- _globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=1014
53
- _globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=1039
54
- _globals['_GETRUNSTATUSREQUEST']._serialized_start=1041
55
- _globals['_GETRUNSTATUSREQUEST']._serialized_end=1111
56
- _globals['_GETRUNSTATUSRESPONSE']._serialized_start=1114
57
- _globals['_GETRUNSTATUSRESPONSE']._serialized_end=1291
58
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=1216
59
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1291
60
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1293
61
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1338
62
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1340
63
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1424
33
+ _globals['_RUN']._serialized_end=491
34
+ _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=418
35
+ _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_end=491
36
+ _globals['_RUNSTATUS']._serialized_start=493
37
+ _globals['_RUNSTATUS']._serialized_end=557
38
+ _globals['_GETRUNREQUEST']._serialized_start=559
39
+ _globals['_GETRUNREQUEST']._serialized_end=622
40
+ _globals['_GETRUNRESPONSE']._serialized_start=624
41
+ _globals['_GETRUNRESPONSE']._serialized_end=670
42
+ _globals['_UPDATERUNSTATUSREQUEST']._serialized_start=672
43
+ _globals['_UPDATERUNSTATUSREQUEST']._serialized_end=755
44
+ _globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=757
45
+ _globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=782
46
+ _globals['_GETRUNSTATUSREQUEST']._serialized_start=784
47
+ _globals['_GETRUNSTATUSREQUEST']._serialized_end=854
48
+ _globals['_GETRUNSTATUSRESPONSE']._serialized_start=857
49
+ _globals['_GETRUNSTATUSRESPONSE']._serialized_end=1034
50
+ _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=959
51
+ _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1034
52
+ _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1036
53
+ _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1081
54
+ _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1083
55
+ _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1167
64
56
  # @@protoc_insertion_point(module_scope)
flwr/proto/run_pb2.pyi CHANGED
@@ -3,7 +3,6 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
- import flwr.proto.fab_pb2
7
6
  import flwr.proto.node_pb2
8
7
  import flwr.proto.recorddict_pb2
9
8
  import flwr.proto.transport_pb2
@@ -42,6 +41,7 @@ class Run(google.protobuf.message.Message):
42
41
  RUNNING_AT_FIELD_NUMBER: builtins.int
43
42
  FINISHED_AT_FIELD_NUMBER: builtins.int
44
43
  STATUS_FIELD_NUMBER: builtins.int
44
+ FLWR_AID_FIELD_NUMBER: builtins.int
45
45
  run_id: builtins.int
46
46
  fab_id: typing.Text
47
47
  fab_version: typing.Text
@@ -54,6 +54,7 @@ class Run(google.protobuf.message.Message):
54
54
  finished_at: typing.Text
55
55
  @property
56
56
  def status(self) -> global___RunStatus: ...
57
+ flwr_aid: typing.Text
57
58
  def __init__(self,
58
59
  *,
59
60
  run_id: builtins.int = ...,
@@ -66,9 +67,10 @@ class Run(google.protobuf.message.Message):
66
67
  running_at: typing.Text = ...,
67
68
  finished_at: typing.Text = ...,
68
69
  status: typing.Optional[global___RunStatus] = ...,
70
+ flwr_aid: typing.Text = ...,
69
71
  ) -> None: ...
70
72
  def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
71
- def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","finished_at",b"finished_at","override_config",b"override_config","pending_at",b"pending_at","run_id",b"run_id","running_at",b"running_at","starting_at",b"starting_at","status",b"status"]) -> None: ...
73
+ def ClearField(self, field_name: typing_extensions.Literal["fab_hash",b"fab_hash","fab_id",b"fab_id","fab_version",b"fab_version","finished_at",b"finished_at","flwr_aid",b"flwr_aid","override_config",b"override_config","pending_at",b"pending_at","run_id",b"run_id","running_at",b"running_at","starting_at",b"starting_at","status",b"status"]) -> None: ...
72
74
  global___Run = Run
73
75
 
74
76
  class RunStatus(google.protobuf.message.Message):
@@ -94,56 +96,6 @@ class RunStatus(google.protobuf.message.Message):
94
96
  def ClearField(self, field_name: typing_extensions.Literal["details",b"details","status",b"status","sub_status",b"sub_status"]) -> None: ...
95
97
  global___RunStatus = RunStatus
96
98
 
97
- class CreateRunRequest(google.protobuf.message.Message):
98
- """CreateRun"""
99
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
100
- class OverrideConfigEntry(google.protobuf.message.Message):
101
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
102
- KEY_FIELD_NUMBER: builtins.int
103
- VALUE_FIELD_NUMBER: builtins.int
104
- key: typing.Text
105
- @property
106
- def value(self) -> flwr.proto.transport_pb2.Scalar: ...
107
- def __init__(self,
108
- *,
109
- key: typing.Text = ...,
110
- value: typing.Optional[flwr.proto.transport_pb2.Scalar] = ...,
111
- ) -> None: ...
112
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
113
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
114
-
115
- FAB_ID_FIELD_NUMBER: builtins.int
116
- FAB_VERSION_FIELD_NUMBER: builtins.int
117
- OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
118
- FAB_FIELD_NUMBER: builtins.int
119
- fab_id: typing.Text
120
- fab_version: typing.Text
121
- @property
122
- def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
123
- @property
124
- def fab(self) -> flwr.proto.fab_pb2.Fab: ...
125
- def __init__(self,
126
- *,
127
- fab_id: typing.Text = ...,
128
- fab_version: typing.Text = ...,
129
- override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
130
- fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
131
- ) -> None: ...
132
- def HasField(self, field_name: typing_extensions.Literal["fab",b"fab"]) -> builtins.bool: ...
133
- def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","fab_id",b"fab_id","fab_version",b"fab_version","override_config",b"override_config"]) -> None: ...
134
- global___CreateRunRequest = CreateRunRequest
135
-
136
- class CreateRunResponse(google.protobuf.message.Message):
137
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
138
- RUN_ID_FIELD_NUMBER: builtins.int
139
- run_id: builtins.int
140
- def __init__(self,
141
- *,
142
- run_id: builtins.int = ...,
143
- ) -> None: ...
144
- def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
145
- global___CreateRunResponse = CreateRunResponse
146
-
147
99
  class GetRunRequest(google.protobuf.message.Message):
148
100
  """GetRun"""
149
101
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -12,40 +12,26 @@ from google.protobuf.internal import builder as _builder
12
12
  _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
+ from flwr.proto import heartbeat_pb2 as flwr_dot_proto_dot_heartbeat__pb2
15
16
  from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
16
17
  from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
17
18
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
19
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
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
20
22
 
21
23
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.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\"T\n\x16PushInsMessagesRequest\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x17PushInsMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\"=\n\x16PullResMessagesRequest\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\"E\n\x17PullResMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\"\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\xb1\x07\n\x0bServerAppIo\x12J\n\tCreateRun\x12\x1c.flwr.proto.CreateRunRequest\x1a\x1d.flwr.proto.CreateRunResponse\"\x00\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\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')
23
25
 
24
26
  _globals = globals()
25
27
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
26
28
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
27
29
  if _descriptor._USE_C_DESCRIPTORS == False:
28
30
  DESCRIPTOR._options = None
29
- _globals['_GETNODESREQUEST']._serialized_start=159
30
- _globals['_GETNODESREQUEST']._serialized_end=192
31
- _globals['_GETNODESRESPONSE']._serialized_start=194
32
- _globals['_GETNODESRESPONSE']._serialized_end=245
33
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_start=247
34
- _globals['_PUSHINSMESSAGESREQUEST']._serialized_end=331
35
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_start=333
36
- _globals['_PUSHINSMESSAGESRESPONSE']._serialized_end=379
37
- _globals['_PULLRESMESSAGESREQUEST']._serialized_start=381
38
- _globals['_PULLRESMESSAGESREQUEST']._serialized_end=442
39
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_start=444
40
- _globals['_PULLRESMESSAGESRESPONSE']._serialized_end=513
41
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=515
42
- _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=543
43
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=545
44
- _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=672
45
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=674
46
- _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=757
47
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=759
48
- _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=789
49
- _globals['_SERVERAPPIO']._serialized_start=792
50
- _globals['_SERVERAPPIO']._serialized_end=1737
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
51
37
  # @@protoc_insertion_point(module_scope)