flwr 1.19.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 (94) hide show
  1. flwr/cli/build.py +15 -5
  2. flwr/cli/new/new.py +12 -4
  3. flwr/cli/new/templates/app/README.flowertune.md.tpl +2 -0
  4. flwr/cli/new/templates/app/README.md.tpl +5 -0
  5. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +14 -3
  6. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +13 -1
  7. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +21 -2
  8. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +18 -1
  9. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +19 -2
  10. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +18 -1
  11. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +20 -3
  12. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +18 -1
  13. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +18 -1
  14. flwr/cli/run/run.py +45 -38
  15. flwr/cli/utils.py +12 -5
  16. flwr/client/grpc_adapter_client/connection.py +11 -4
  17. flwr/client/grpc_rere_client/connection.py +92 -117
  18. flwr/client/rest_client/connection.py +131 -164
  19. flwr/common/constant.py +3 -1
  20. flwr/common/exit/exit_code.py +16 -1
  21. flwr/common/grpc.py +12 -1
  22. flwr/common/{inflatable_grpc_utils.py → inflatable_protobuf_utils.py} +52 -10
  23. flwr/common/inflatable_utils.py +191 -24
  24. flwr/common/record/array.py +101 -22
  25. flwr/common/record/arraychunk.py +59 -0
  26. flwr/common/serde.py +0 -28
  27. flwr/compat/client/app.py +14 -31
  28. flwr/proto/appio_pb2.py +43 -0
  29. flwr/proto/appio_pb2.pyi +151 -0
  30. flwr/proto/appio_pb2_grpc.py +4 -0
  31. flwr/proto/appio_pb2_grpc.pyi +4 -0
  32. flwr/proto/clientappio_pb2.py +12 -19
  33. flwr/proto/clientappio_pb2.pyi +23 -101
  34. flwr/proto/clientappio_pb2_grpc.py +269 -28
  35. flwr/proto/clientappio_pb2_grpc.pyi +114 -20
  36. flwr/proto/fleet_pb2.py +12 -20
  37. flwr/proto/fleet_pb2.pyi +6 -36
  38. flwr/proto/serverappio_pb2.py +8 -31
  39. flwr/proto/serverappio_pb2.pyi +0 -152
  40. flwr/proto/serverappio_pb2_grpc.py +39 -38
  41. flwr/proto/serverappio_pb2_grpc.pyi +21 -20
  42. flwr/server/app.py +1 -1
  43. flwr/server/fleet_event_log_interceptor.py +4 -0
  44. flwr/server/grid/grpc_grid.py +91 -54
  45. flwr/server/serverapp/app.py +27 -17
  46. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +8 -0
  47. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +1 -1
  48. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -5
  49. flwr/server/superlink/fleet/message_handler/message_handler.py +10 -16
  50. flwr/server/superlink/fleet/rest_rere/rest_api.py +1 -2
  51. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -1
  52. flwr/server/superlink/serverappio/serverappio_servicer.py +35 -43
  53. flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
  54. flwr/server/superlink/simulation/simulationio_servicer.py +1 -1
  55. flwr/server/superlink/utils.py +0 -35
  56. flwr/simulation/app.py +8 -0
  57. flwr/simulation/run_simulation.py +17 -0
  58. flwr/{server/superlink → supercore}/ffs/disk_ffs.py +1 -1
  59. flwr/supercore/grpc_health/__init__.py +22 -0
  60. flwr/supercore/grpc_health/simple_health_servicer.py +38 -0
  61. flwr/supercore/license_plugin/__init__.py +22 -0
  62. flwr/supercore/license_plugin/license_plugin.py +26 -0
  63. flwr/supercore/object_store/in_memory_object_store.py +31 -31
  64. flwr/supercore/object_store/object_store.py +20 -42
  65. flwr/supercore/object_store/utils.py +43 -0
  66. flwr/supercore/scheduler/__init__.py +22 -0
  67. flwr/supercore/scheduler/plugin.py +71 -0
  68. flwr/supercore/utils.py +32 -0
  69. flwr/superexec/deployment.py +1 -2
  70. flwr/superexec/exec_event_log_interceptor.py +4 -0
  71. flwr/superexec/exec_grpc.py +18 -2
  72. flwr/superexec/exec_license_interceptor.py +82 -0
  73. flwr/superexec/exec_servicer.py +10 -1
  74. flwr/superexec/exec_user_auth_interceptor.py +10 -2
  75. flwr/superexec/executor.py +1 -1
  76. flwr/superexec/simulation.py +1 -2
  77. flwr/supernode/cli/flower_supernode.py +0 -7
  78. flwr/supernode/cli/flwr_clientapp.py +10 -3
  79. flwr/supernode/nodestate/in_memory_nodestate.py +11 -2
  80. flwr/supernode/nodestate/nodestate.py +15 -0
  81. flwr/supernode/runtime/run_clientapp.py +110 -33
  82. flwr/supernode/scheduler/__init__.py +22 -0
  83. flwr/supernode/scheduler/simple_clientapp_scheduler_plugin.py +49 -0
  84. flwr/supernode/servicer/clientappio/__init__.py +1 -3
  85. flwr/supernode/servicer/clientappio/clientappio_servicer.py +223 -164
  86. flwr/supernode/start_client_internal.py +202 -104
  87. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/METADATA +2 -1
  88. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/RECORD +93 -78
  89. flwr/common/inflatable_rest_utils.py +0 -99
  90. /flwr/{server/superlink → supercore}/ffs/__init__.py +0 -0
  91. /flwr/{server/superlink → supercore}/ffs/ffs.py +0 -0
  92. /flwr/{server/superlink → supercore}/ffs/ffs_factory.py +0 -0
  93. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/WHEEL +0 -0
  94. {flwr-1.19.0.dist-info → flwr-1.20.0.dist-info}/entry_points.txt +0 -0
@@ -2,7 +2,10 @@
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
4
 
5
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
5
6
  from flwr.proto import clientappio_pb2 as flwr_dot_proto_dot_clientappio__pb2
7
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
8
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
6
9
 
7
10
 
8
11
  class ClientAppIoStub(object):
@@ -14,42 +17,126 @@ class ClientAppIoStub(object):
14
17
  Args:
15
18
  channel: A grpc.Channel.
16
19
  """
17
- self.GetToken = channel.unary_unary(
18
- '/flwr.proto.ClientAppIo/GetToken',
19
- request_serializer=flwr_dot_proto_dot_clientappio__pb2.GetTokenRequest.SerializeToString,
20
- response_deserializer=flwr_dot_proto_dot_clientappio__pb2.GetTokenResponse.FromString,
20
+ self.GetRunIdsWithPendingMessages = channel.unary_unary(
21
+ '/flwr.proto.ClientAppIo/GetRunIdsWithPendingMessages',
22
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesRequest.SerializeToString,
23
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesResponse.FromString,
24
+ )
25
+ self.RequestToken = channel.unary_unary(
26
+ '/flwr.proto.ClientAppIo/RequestToken',
27
+ request_serializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenRequest.SerializeToString,
28
+ response_deserializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenResponse.FromString,
29
+ )
30
+ self.GetRun = channel.unary_unary(
31
+ '/flwr.proto.ClientAppIo/GetRun',
32
+ request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
33
+ response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
21
34
  )
22
35
  self.PullClientAppInputs = channel.unary_unary(
23
36
  '/flwr.proto.ClientAppIo/PullClientAppInputs',
24
- request_serializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.SerializeToString,
25
- response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.FromString,
37
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
38
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
26
39
  )
27
40
  self.PushClientAppOutputs = channel.unary_unary(
28
41
  '/flwr.proto.ClientAppIo/PushClientAppOutputs',
29
- request_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
30
- response_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
42
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
43
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
44
+ )
45
+ self.PushMessage = channel.unary_unary(
46
+ '/flwr.proto.ClientAppIo/PushMessage',
47
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
48
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
49
+ )
50
+ self.PullMessage = channel.unary_unary(
51
+ '/flwr.proto.ClientAppIo/PullMessage',
52
+ request_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
53
+ response_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
54
+ )
55
+ self.PushObject = channel.unary_unary(
56
+ '/flwr.proto.ClientAppIo/PushObject',
57
+ request_serializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
58
+ response_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
59
+ )
60
+ self.PullObject = channel.unary_unary(
61
+ '/flwr.proto.ClientAppIo/PullObject',
62
+ request_serializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
63
+ response_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
64
+ )
65
+ self.ConfirmMessageReceived = channel.unary_unary(
66
+ '/flwr.proto.ClientAppIo/ConfirmMessageReceived',
67
+ request_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
68
+ response_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
31
69
  )
32
70
 
33
71
 
34
72
  class ClientAppIoServicer(object):
35
73
  """Missing associated documentation comment in .proto file."""
36
74
 
37
- def GetToken(self, request, context):
38
- """Get token
75
+ def GetRunIdsWithPendingMessages(self, request, context):
76
+ """Get run IDs with pending messages
77
+ """
78
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
79
+ context.set_details('Method not implemented!')
80
+ raise NotImplementedError('Method not implemented!')
81
+
82
+ def RequestToken(self, request, context):
83
+ """Request token
84
+ """
85
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
86
+ context.set_details('Method not implemented!')
87
+ raise NotImplementedError('Method not implemented!')
88
+
89
+ def GetRun(self, request, context):
90
+ """Get run details
39
91
  """
40
92
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
41
93
  context.set_details('Method not implemented!')
42
94
  raise NotImplementedError('Method not implemented!')
43
95
 
44
96
  def PullClientAppInputs(self, request, context):
45
- """Get Message, Context, and Run
97
+ """Pull client app inputs
46
98
  """
47
99
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
48
100
  context.set_details('Method not implemented!')
49
101
  raise NotImplementedError('Method not implemented!')
50
102
 
51
103
  def PushClientAppOutputs(self, request, context):
52
- """Send updated Message and Context
104
+ """Push client app outputs
105
+ """
106
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
107
+ context.set_details('Method not implemented!')
108
+ raise NotImplementedError('Method not implemented!')
109
+
110
+ def PushMessage(self, request, context):
111
+ """Push Message
112
+ """
113
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
114
+ context.set_details('Method not implemented!')
115
+ raise NotImplementedError('Method not implemented!')
116
+
117
+ def PullMessage(self, request, context):
118
+ """Pull Message
119
+ """
120
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
121
+ context.set_details('Method not implemented!')
122
+ raise NotImplementedError('Method not implemented!')
123
+
124
+ def PushObject(self, request, context):
125
+ """Push Object
126
+ """
127
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
128
+ context.set_details('Method not implemented!')
129
+ raise NotImplementedError('Method not implemented!')
130
+
131
+ def PullObject(self, request, context):
132
+ """Pull Object
133
+ """
134
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
135
+ context.set_details('Method not implemented!')
136
+ raise NotImplementedError('Method not implemented!')
137
+
138
+ def ConfirmMessageReceived(self, request, context):
139
+ """Confirm Message Received
53
140
  """
54
141
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
55
142
  context.set_details('Method not implemented!')
@@ -58,20 +145,55 @@ class ClientAppIoServicer(object):
58
145
 
59
146
  def add_ClientAppIoServicer_to_server(servicer, server):
60
147
  rpc_method_handlers = {
61
- 'GetToken': grpc.unary_unary_rpc_method_handler(
62
- servicer.GetToken,
63
- request_deserializer=flwr_dot_proto_dot_clientappio__pb2.GetTokenRequest.FromString,
64
- response_serializer=flwr_dot_proto_dot_clientappio__pb2.GetTokenResponse.SerializeToString,
148
+ 'GetRunIdsWithPendingMessages': grpc.unary_unary_rpc_method_handler(
149
+ servicer.GetRunIdsWithPendingMessages,
150
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesRequest.FromString,
151
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesResponse.SerializeToString,
152
+ ),
153
+ 'RequestToken': grpc.unary_unary_rpc_method_handler(
154
+ servicer.RequestToken,
155
+ request_deserializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenRequest.FromString,
156
+ response_serializer=flwr_dot_proto_dot_clientappio__pb2.RequestTokenResponse.SerializeToString,
157
+ ),
158
+ 'GetRun': grpc.unary_unary_rpc_method_handler(
159
+ servicer.GetRun,
160
+ request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
161
+ response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
65
162
  ),
66
163
  'PullClientAppInputs': grpc.unary_unary_rpc_method_handler(
67
164
  servicer.PullClientAppInputs,
68
- request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.FromString,
69
- response_serializer=flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.SerializeToString,
165
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.FromString,
166
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.SerializeToString,
70
167
  ),
71
168
  'PushClientAppOutputs': grpc.unary_unary_rpc_method_handler(
72
169
  servicer.PushClientAppOutputs,
73
- request_deserializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.FromString,
74
- response_serializer=flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.SerializeToString,
170
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.FromString,
171
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.SerializeToString,
172
+ ),
173
+ 'PushMessage': grpc.unary_unary_rpc_method_handler(
174
+ servicer.PushMessage,
175
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.FromString,
176
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.SerializeToString,
177
+ ),
178
+ 'PullMessage': grpc.unary_unary_rpc_method_handler(
179
+ servicer.PullMessage,
180
+ request_deserializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.FromString,
181
+ response_serializer=flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.SerializeToString,
182
+ ),
183
+ 'PushObject': grpc.unary_unary_rpc_method_handler(
184
+ servicer.PushObject,
185
+ request_deserializer=flwr_dot_proto_dot_message__pb2.PushObjectRequest.FromString,
186
+ response_serializer=flwr_dot_proto_dot_message__pb2.PushObjectResponse.SerializeToString,
187
+ ),
188
+ 'PullObject': grpc.unary_unary_rpc_method_handler(
189
+ servicer.PullObject,
190
+ request_deserializer=flwr_dot_proto_dot_message__pb2.PullObjectRequest.FromString,
191
+ response_serializer=flwr_dot_proto_dot_message__pb2.PullObjectResponse.SerializeToString,
192
+ ),
193
+ 'ConfirmMessageReceived': grpc.unary_unary_rpc_method_handler(
194
+ servicer.ConfirmMessageReceived,
195
+ request_deserializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.FromString,
196
+ response_serializer=flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.SerializeToString,
75
197
  ),
76
198
  }
77
199
  generic_handler = grpc.method_handlers_generic_handler(
@@ -84,7 +206,41 @@ class ClientAppIo(object):
84
206
  """Missing associated documentation comment in .proto file."""
85
207
 
86
208
  @staticmethod
87
- def GetToken(request,
209
+ def GetRunIdsWithPendingMessages(request,
210
+ target,
211
+ options=(),
212
+ channel_credentials=None,
213
+ call_credentials=None,
214
+ insecure=False,
215
+ compression=None,
216
+ wait_for_ready=None,
217
+ timeout=None,
218
+ metadata=None):
219
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/GetRunIdsWithPendingMessages',
220
+ flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesRequest.SerializeToString,
221
+ flwr_dot_proto_dot_clientappio__pb2.GetRunIdsWithPendingMessagesResponse.FromString,
222
+ options, channel_credentials,
223
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
224
+
225
+ @staticmethod
226
+ def RequestToken(request,
227
+ target,
228
+ options=(),
229
+ channel_credentials=None,
230
+ call_credentials=None,
231
+ insecure=False,
232
+ compression=None,
233
+ wait_for_ready=None,
234
+ timeout=None,
235
+ metadata=None):
236
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/RequestToken',
237
+ flwr_dot_proto_dot_clientappio__pb2.RequestTokenRequest.SerializeToString,
238
+ flwr_dot_proto_dot_clientappio__pb2.RequestTokenResponse.FromString,
239
+ options, channel_credentials,
240
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
241
+
242
+ @staticmethod
243
+ def GetRun(request,
88
244
  target,
89
245
  options=(),
90
246
  channel_credentials=None,
@@ -94,9 +250,9 @@ class ClientAppIo(object):
94
250
  wait_for_ready=None,
95
251
  timeout=None,
96
252
  metadata=None):
97
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/GetToken',
98
- flwr_dot_proto_dot_clientappio__pb2.GetTokenRequest.SerializeToString,
99
- flwr_dot_proto_dot_clientappio__pb2.GetTokenResponse.FromString,
253
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/GetRun',
254
+ flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
255
+ flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
100
256
  options, channel_credentials,
101
257
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
102
258
 
@@ -112,8 +268,8 @@ class ClientAppIo(object):
112
268
  timeout=None,
113
269
  metadata=None):
114
270
  return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullClientAppInputs',
115
- flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsRequest.SerializeToString,
116
- flwr_dot_proto_dot_clientappio__pb2.PullClientAppInputsResponse.FromString,
271
+ flwr_dot_proto_dot_appio__pb2.PullAppInputsRequest.SerializeToString,
272
+ flwr_dot_proto_dot_appio__pb2.PullAppInputsResponse.FromString,
117
273
  options, channel_credentials,
118
274
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
119
275
 
@@ -129,7 +285,92 @@ class ClientAppIo(object):
129
285
  timeout=None,
130
286
  metadata=None):
131
287
  return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushClientAppOutputs',
132
- flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsRequest.SerializeToString,
133
- flwr_dot_proto_dot_clientappio__pb2.PushClientAppOutputsResponse.FromString,
288
+ flwr_dot_proto_dot_appio__pb2.PushAppOutputsRequest.SerializeToString,
289
+ flwr_dot_proto_dot_appio__pb2.PushAppOutputsResponse.FromString,
290
+ options, channel_credentials,
291
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
292
+
293
+ @staticmethod
294
+ def PushMessage(request,
295
+ target,
296
+ options=(),
297
+ channel_credentials=None,
298
+ call_credentials=None,
299
+ insecure=False,
300
+ compression=None,
301
+ wait_for_ready=None,
302
+ timeout=None,
303
+ metadata=None):
304
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushMessage',
305
+ flwr_dot_proto_dot_appio__pb2.PushAppMessagesRequest.SerializeToString,
306
+ flwr_dot_proto_dot_appio__pb2.PushAppMessagesResponse.FromString,
307
+ options, channel_credentials,
308
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
309
+
310
+ @staticmethod
311
+ def PullMessage(request,
312
+ target,
313
+ options=(),
314
+ channel_credentials=None,
315
+ call_credentials=None,
316
+ insecure=False,
317
+ compression=None,
318
+ wait_for_ready=None,
319
+ timeout=None,
320
+ metadata=None):
321
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullMessage',
322
+ flwr_dot_proto_dot_appio__pb2.PullAppMessagesRequest.SerializeToString,
323
+ flwr_dot_proto_dot_appio__pb2.PullAppMessagesResponse.FromString,
324
+ options, channel_credentials,
325
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
326
+
327
+ @staticmethod
328
+ def PushObject(request,
329
+ target,
330
+ options=(),
331
+ channel_credentials=None,
332
+ call_credentials=None,
333
+ insecure=False,
334
+ compression=None,
335
+ wait_for_ready=None,
336
+ timeout=None,
337
+ metadata=None):
338
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PushObject',
339
+ flwr_dot_proto_dot_message__pb2.PushObjectRequest.SerializeToString,
340
+ flwr_dot_proto_dot_message__pb2.PushObjectResponse.FromString,
341
+ options, channel_credentials,
342
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
343
+
344
+ @staticmethod
345
+ def PullObject(request,
346
+ target,
347
+ options=(),
348
+ channel_credentials=None,
349
+ call_credentials=None,
350
+ insecure=False,
351
+ compression=None,
352
+ wait_for_ready=None,
353
+ timeout=None,
354
+ metadata=None):
355
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/PullObject',
356
+ flwr_dot_proto_dot_message__pb2.PullObjectRequest.SerializeToString,
357
+ flwr_dot_proto_dot_message__pb2.PullObjectResponse.FromString,
358
+ options, channel_credentials,
359
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
360
+
361
+ @staticmethod
362
+ def ConfirmMessageReceived(request,
363
+ target,
364
+ options=(),
365
+ channel_credentials=None,
366
+ call_credentials=None,
367
+ insecure=False,
368
+ compression=None,
369
+ wait_for_ready=None,
370
+ timeout=None,
371
+ metadata=None):
372
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ClientAppIo/ConfirmMessageReceived',
373
+ flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedRequest.SerializeToString,
374
+ flwr_dot_proto_dot_message__pb2.ConfirmMessageReceivedResponse.FromString,
134
375
  options, channel_credentials,
135
376
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -3,50 +3,144 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import abc
6
+ import flwr.proto.appio_pb2
6
7
  import flwr.proto.clientappio_pb2
8
+ import flwr.proto.message_pb2
9
+ import flwr.proto.run_pb2
7
10
  import grpc
8
11
 
9
12
  class ClientAppIoStub:
10
13
  def __init__(self, channel: grpc.Channel) -> None: ...
11
- GetToken: grpc.UnaryUnaryMultiCallable[
12
- flwr.proto.clientappio_pb2.GetTokenRequest,
13
- flwr.proto.clientappio_pb2.GetTokenResponse]
14
- """Get token"""
14
+ GetRunIdsWithPendingMessages: grpc.UnaryUnaryMultiCallable[
15
+ flwr.proto.clientappio_pb2.GetRunIdsWithPendingMessagesRequest,
16
+ flwr.proto.clientappio_pb2.GetRunIdsWithPendingMessagesResponse]
17
+ """Get run IDs with pending messages"""
18
+
19
+ RequestToken: grpc.UnaryUnaryMultiCallable[
20
+ flwr.proto.clientappio_pb2.RequestTokenRequest,
21
+ flwr.proto.clientappio_pb2.RequestTokenResponse]
22
+ """Request token"""
23
+
24
+ GetRun: grpc.UnaryUnaryMultiCallable[
25
+ flwr.proto.run_pb2.GetRunRequest,
26
+ flwr.proto.run_pb2.GetRunResponse]
27
+ """Get run details"""
15
28
 
16
29
  PullClientAppInputs: grpc.UnaryUnaryMultiCallable[
17
- flwr.proto.clientappio_pb2.PullClientAppInputsRequest,
18
- flwr.proto.clientappio_pb2.PullClientAppInputsResponse]
19
- """Get Message, Context, and Run"""
30
+ flwr.proto.appio_pb2.PullAppInputsRequest,
31
+ flwr.proto.appio_pb2.PullAppInputsResponse]
32
+ """Pull client app inputs"""
20
33
 
21
34
  PushClientAppOutputs: grpc.UnaryUnaryMultiCallable[
22
- flwr.proto.clientappio_pb2.PushClientAppOutputsRequest,
23
- flwr.proto.clientappio_pb2.PushClientAppOutputsResponse]
24
- """Send updated Message and Context"""
35
+ flwr.proto.appio_pb2.PushAppOutputsRequest,
36
+ flwr.proto.appio_pb2.PushAppOutputsResponse]
37
+ """Push client app outputs"""
38
+
39
+ PushMessage: grpc.UnaryUnaryMultiCallable[
40
+ flwr.proto.appio_pb2.PushAppMessagesRequest,
41
+ flwr.proto.appio_pb2.PushAppMessagesResponse]
42
+ """Push Message"""
43
+
44
+ PullMessage: grpc.UnaryUnaryMultiCallable[
45
+ flwr.proto.appio_pb2.PullAppMessagesRequest,
46
+ flwr.proto.appio_pb2.PullAppMessagesResponse]
47
+ """Pull Message"""
48
+
49
+ PushObject: grpc.UnaryUnaryMultiCallable[
50
+ flwr.proto.message_pb2.PushObjectRequest,
51
+ flwr.proto.message_pb2.PushObjectResponse]
52
+ """Push Object"""
53
+
54
+ PullObject: grpc.UnaryUnaryMultiCallable[
55
+ flwr.proto.message_pb2.PullObjectRequest,
56
+ flwr.proto.message_pb2.PullObjectResponse]
57
+ """Pull Object"""
58
+
59
+ ConfirmMessageReceived: grpc.UnaryUnaryMultiCallable[
60
+ flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
61
+ flwr.proto.message_pb2.ConfirmMessageReceivedResponse]
62
+ """Confirm Message Received"""
25
63
 
26
64
 
27
65
  class ClientAppIoServicer(metaclass=abc.ABCMeta):
28
66
  @abc.abstractmethod
29
- def GetToken(self,
30
- request: flwr.proto.clientappio_pb2.GetTokenRequest,
67
+ def GetRunIdsWithPendingMessages(self,
68
+ request: flwr.proto.clientappio_pb2.GetRunIdsWithPendingMessagesRequest,
69
+ context: grpc.ServicerContext,
70
+ ) -> flwr.proto.clientappio_pb2.GetRunIdsWithPendingMessagesResponse:
71
+ """Get run IDs with pending messages"""
72
+ pass
73
+
74
+ @abc.abstractmethod
75
+ def RequestToken(self,
76
+ request: flwr.proto.clientappio_pb2.RequestTokenRequest,
31
77
  context: grpc.ServicerContext,
32
- ) -> flwr.proto.clientappio_pb2.GetTokenResponse:
33
- """Get token"""
78
+ ) -> flwr.proto.clientappio_pb2.RequestTokenResponse:
79
+ """Request token"""
80
+ pass
81
+
82
+ @abc.abstractmethod
83
+ def GetRun(self,
84
+ request: flwr.proto.run_pb2.GetRunRequest,
85
+ context: grpc.ServicerContext,
86
+ ) -> flwr.proto.run_pb2.GetRunResponse:
87
+ """Get run details"""
34
88
  pass
35
89
 
36
90
  @abc.abstractmethod
37
91
  def PullClientAppInputs(self,
38
- request: flwr.proto.clientappio_pb2.PullClientAppInputsRequest,
92
+ request: flwr.proto.appio_pb2.PullAppInputsRequest,
39
93
  context: grpc.ServicerContext,
40
- ) -> flwr.proto.clientappio_pb2.PullClientAppInputsResponse:
41
- """Get Message, Context, and Run"""
94
+ ) -> flwr.proto.appio_pb2.PullAppInputsResponse:
95
+ """Pull client app inputs"""
42
96
  pass
43
97
 
44
98
  @abc.abstractmethod
45
99
  def PushClientAppOutputs(self,
46
- request: flwr.proto.clientappio_pb2.PushClientAppOutputsRequest,
100
+ request: flwr.proto.appio_pb2.PushAppOutputsRequest,
101
+ context: grpc.ServicerContext,
102
+ ) -> flwr.proto.appio_pb2.PushAppOutputsResponse:
103
+ """Push client app outputs"""
104
+ pass
105
+
106
+ @abc.abstractmethod
107
+ def PushMessage(self,
108
+ request: flwr.proto.appio_pb2.PushAppMessagesRequest,
109
+ context: grpc.ServicerContext,
110
+ ) -> flwr.proto.appio_pb2.PushAppMessagesResponse:
111
+ """Push Message"""
112
+ pass
113
+
114
+ @abc.abstractmethod
115
+ def PullMessage(self,
116
+ request: flwr.proto.appio_pb2.PullAppMessagesRequest,
117
+ context: grpc.ServicerContext,
118
+ ) -> flwr.proto.appio_pb2.PullAppMessagesResponse:
119
+ """Pull Message"""
120
+ pass
121
+
122
+ @abc.abstractmethod
123
+ def PushObject(self,
124
+ request: flwr.proto.message_pb2.PushObjectRequest,
125
+ context: grpc.ServicerContext,
126
+ ) -> flwr.proto.message_pb2.PushObjectResponse:
127
+ """Push Object"""
128
+ pass
129
+
130
+ @abc.abstractmethod
131
+ def PullObject(self,
132
+ request: flwr.proto.message_pb2.PullObjectRequest,
133
+ context: grpc.ServicerContext,
134
+ ) -> flwr.proto.message_pb2.PullObjectResponse:
135
+ """Pull Object"""
136
+ pass
137
+
138
+ @abc.abstractmethod
139
+ def ConfirmMessageReceived(self,
140
+ request: flwr.proto.message_pb2.ConfirmMessageReceivedRequest,
47
141
  context: grpc.ServicerContext,
48
- ) -> flwr.proto.clientappio_pb2.PushClientAppOutputsResponse:
49
- """Send updated Message and Context"""
142
+ ) -> flwr.proto.message_pb2.ConfirmMessageReceivedResponse:
143
+ """Confirm Message Received"""
50
144
  pass
51
145
 
52
146
 
flwr/proto/fleet_pb2.py CHANGED
@@ -19,19 +19,15 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
19
19
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
20
20
 
21
21
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\"/\n\x11\x43reateNodeRequest\x12\x1a\n\x12heartbeat_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\x87\x02\n\x14PullMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12L\n\x0fobjects_to_pull\x18\x03 \x03(\x0b\x32\x33.flwr.proto.PullMessagesResponse.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\"\x97\x01\n\x13PushMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xcb\x02\n\x14PushMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12>\n\x07results\x18\x02 \x03(\x0b\x32-.flwr.proto.PushMessagesResponse.ResultsEntry\x12L\n\x0fobjects_to_push\x18\x03 \x03(\x0b\x32\x33.flwr.proto.PushMessagesResponse.ObjectsToPushEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\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\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\xca\x06\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12\x62\n\x11SendNodeHeartbeat\x12$.flwr.proto.SendNodeHeartbeatRequest\x1a%.flwr.proto.SendNodeHeartbeatResponse\"\x00\x12S\n\x0cPullMessages\x12\x1f.flwr.proto.PullMessagesRequest\x1a .flwr.proto.PullMessagesResponse\"\x00\x12S\n\x0cPushMessages\x12\x1f.flwr.proto.PushMessagesRequest\x1a .flwr.proto.PushMessagesResponse\"\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\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')
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/fleet.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x18\x66lwr/proto/message.proto\"/\n\x11\x43reateNodeRequest\x12\x1a\n\x12heartbeat_interval\x18\x01 \x01(\x01\"4\n\x12\x43reateNodeResponse\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"3\n\x11\x44\x65leteNodeRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\"\x14\n\x12\x44\x65leteNodeResponse\"J\n\x13PullMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\"\xa2\x01\n\x14PullMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\x97\x01\n\x13PushMessagesRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x03 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"\xc9\x01\n\x14PushMessagesResponse\x12(\n\treconnect\x18\x01 \x01(\x0b\x32\x15.flwr.proto.Reconnect\x12>\n\x07results\x18\x02 \x03(\x0b\x32-.flwr.proto.PushMessagesResponse.ResultsEntry\x12\x17\n\x0fobjects_to_push\x18\x03 \x03(\t\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x1e\n\tReconnect\x12\x11\n\treconnect\x18\x01 \x01(\x04\x32\xca\x06\n\x05\x46leet\x12M\n\nCreateNode\x12\x1d.flwr.proto.CreateNodeRequest\x1a\x1e.flwr.proto.CreateNodeResponse\"\x00\x12M\n\nDeleteNode\x12\x1d.flwr.proto.DeleteNodeRequest\x1a\x1e.flwr.proto.DeleteNodeResponse\"\x00\x12\x62\n\x11SendNodeHeartbeat\x12$.flwr.proto.SendNodeHeartbeatRequest\x1a%.flwr.proto.SendNodeHeartbeatResponse\"\x00\x12S\n\x0cPullMessages\x12\x1f.flwr.proto.PullMessagesRequest\x1a .flwr.proto.PullMessagesResponse\"\x00\x12S\n\x0cPushMessages\x12\x1f.flwr.proto.PushMessagesRequest\x1a .flwr.proto.PushMessagesResponse\"\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\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
23
 
24
24
  _globals = globals()
25
25
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
26
26
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.fleet_pb2', _globals)
27
27
  if _descriptor._USE_C_DESCRIPTORS == False:
28
28
  DESCRIPTOR._options = None
29
- _globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._options = None
30
- _globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_options = b'8\001'
31
29
  _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._options = None
32
30
  _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
33
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._options = None
34
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_options = b'8\001'
35
31
  _globals['_CREATENODEREQUEST']._serialized_start=159
36
32
  _globals['_CREATENODEREQUEST']._serialized_end=206
37
33
  _globals['_CREATENODERESPONSE']._serialized_start=208
@@ -43,19 +39,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
43
39
  _globals['_PULLMESSAGESREQUEST']._serialized_start=337
44
40
  _globals['_PULLMESSAGESREQUEST']._serialized_end=411
45
41
  _globals['_PULLMESSAGESRESPONSE']._serialized_start=414
46
- _globals['_PULLMESSAGESRESPONSE']._serialized_end=677
47
- _globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_start=602
48
- _globals['_PULLMESSAGESRESPONSE_OBJECTSTOPULLENTRY']._serialized_end=677
49
- _globals['_PUSHMESSAGESREQUEST']._serialized_start=680
50
- _globals['_PUSHMESSAGESREQUEST']._serialized_end=831
51
- _globals['_PUSHMESSAGESRESPONSE']._serialized_start=834
52
- _globals['_PUSHMESSAGESRESPONSE']._serialized_end=1165
53
- _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=1042
54
- _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=1088
55
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_start=1090
56
- _globals['_PUSHMESSAGESRESPONSE_OBJECTSTOPUSHENTRY']._serialized_end=1165
57
- _globals['_RECONNECT']._serialized_start=1167
58
- _globals['_RECONNECT']._serialized_end=1197
59
- _globals['_FLEET']._serialized_start=1200
60
- _globals['_FLEET']._serialized_end=2042
42
+ _globals['_PULLMESSAGESRESPONSE']._serialized_end=576
43
+ _globals['_PUSHMESSAGESREQUEST']._serialized_start=579
44
+ _globals['_PUSHMESSAGESREQUEST']._serialized_end=730
45
+ _globals['_PUSHMESSAGESRESPONSE']._serialized_start=733
46
+ _globals['_PUSHMESSAGESRESPONSE']._serialized_end=934
47
+ _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_start=888
48
+ _globals['_PUSHMESSAGESRESPONSE_RESULTSENTRY']._serialized_end=934
49
+ _globals['_RECONNECT']._serialized_start=936
50
+ _globals['_RECONNECT']._serialized_end=966
51
+ _globals['_FLEET']._serialized_start=969
52
+ _globals['_FLEET']._serialized_end=1811
61
53
  # @@protoc_insertion_point(module_scope)