flwr 1.13.1__py3-none-any.whl → 1.15.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 (158) hide show
  1. flwr/cli/app.py +5 -0
  2. flwr/cli/auth_plugin/__init__.py +31 -0
  3. flwr/cli/auth_plugin/oidc_cli_plugin.py +150 -0
  4. flwr/cli/build.py +1 -0
  5. flwr/cli/cli_user_auth_interceptor.py +90 -0
  6. flwr/cli/config_utils.py +43 -149
  7. flwr/cli/constant.py +27 -0
  8. flwr/cli/example.py +1 -0
  9. flwr/cli/install.py +2 -1
  10. flwr/cli/log.py +34 -37
  11. flwr/cli/login/__init__.py +22 -0
  12. flwr/cli/login/login.py +116 -0
  13. flwr/cli/ls.py +214 -106
  14. flwr/cli/new/__init__.py +1 -0
  15. flwr/cli/new/new.py +2 -1
  16. flwr/cli/new/templates/app/.gitignore.tpl +3 -0
  17. flwr/cli/new/templates/app/README.md.tpl +3 -2
  18. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +4 -4
  19. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +4 -4
  20. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +4 -4
  21. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +2 -2
  22. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +3 -4
  23. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +2 -2
  24. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +4 -4
  25. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +3 -3
  26. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  27. flwr/cli/run/__init__.py +1 -0
  28. flwr/cli/run/run.py +103 -43
  29. flwr/cli/stop.py +139 -0
  30. flwr/cli/utils.py +186 -8
  31. flwr/client/app.py +49 -50
  32. flwr/client/client.py +1 -32
  33. flwr/client/clientapp/app.py +23 -26
  34. flwr/client/clientapp/utils.py +2 -1
  35. flwr/client/grpc_adapter_client/connection.py +1 -1
  36. flwr/client/grpc_client/connection.py +2 -13
  37. flwr/client/grpc_rere_client/client_interceptor.py +19 -119
  38. flwr/client/grpc_rere_client/connection.py +59 -43
  39. flwr/client/grpc_rere_client/grpc_adapter.py +12 -12
  40. flwr/client/message_handler/message_handler.py +1 -2
  41. flwr/client/message_handler/task_handler.py +0 -17
  42. flwr/client/mod/comms_mods.py +1 -0
  43. flwr/client/mod/localdp_mod.py +1 -1
  44. flwr/client/nodestate/__init__.py +1 -0
  45. flwr/client/nodestate/nodestate.py +1 -0
  46. flwr/client/nodestate/nodestate_factory.py +1 -0
  47. flwr/client/numpy_client.py +0 -44
  48. flwr/client/rest_client/connection.py +37 -29
  49. flwr/client/supernode/app.py +20 -74
  50. flwr/common/address.py +1 -0
  51. flwr/common/args.py +26 -47
  52. flwr/common/auth_plugin/__init__.py +24 -0
  53. flwr/common/auth_plugin/auth_plugin.py +122 -0
  54. flwr/common/config.py +169 -17
  55. flwr/common/constant.py +38 -9
  56. flwr/common/differential_privacy.py +2 -1
  57. flwr/common/exit/__init__.py +24 -0
  58. flwr/common/exit/exit.py +99 -0
  59. flwr/common/exit/exit_code.py +93 -0
  60. flwr/common/exit_handlers.py +24 -10
  61. flwr/common/grpc.py +167 -4
  62. flwr/common/logger.py +66 -7
  63. flwr/common/message.py +1 -0
  64. flwr/common/object_ref.py +57 -54
  65. flwr/common/pyproject.py +1 -0
  66. flwr/common/record/__init__.py +1 -0
  67. flwr/common/record/parametersrecord.py +1 -0
  68. flwr/common/record/recordset.py +1 -1
  69. flwr/common/retry_invoker.py +77 -0
  70. flwr/common/secure_aggregation/crypto/symmetric_encryption.py +45 -0
  71. flwr/common/secure_aggregation/secaggplus_utils.py +2 -2
  72. flwr/common/serde.py +6 -4
  73. flwr/common/telemetry.py +15 -4
  74. flwr/common/typing.py +32 -0
  75. flwr/common/version.py +1 -0
  76. flwr/proto/clientappio_pb2.py +1 -1
  77. flwr/proto/error_pb2.py +1 -1
  78. flwr/proto/exec_pb2.py +27 -15
  79. flwr/proto/exec_pb2.pyi +80 -2
  80. flwr/proto/exec_pb2_grpc.py +102 -0
  81. flwr/proto/exec_pb2_grpc.pyi +39 -0
  82. flwr/proto/fab_pb2.py +5 -5
  83. flwr/proto/fab_pb2.pyi +4 -1
  84. flwr/proto/fleet_pb2.py +31 -31
  85. flwr/proto/fleet_pb2.pyi +23 -23
  86. flwr/proto/fleet_pb2_grpc.py +30 -30
  87. flwr/proto/fleet_pb2_grpc.pyi +20 -20
  88. flwr/proto/grpcadapter_pb2.py +1 -1
  89. flwr/proto/log_pb2.py +1 -1
  90. flwr/proto/message_pb2.py +1 -1
  91. flwr/proto/node_pb2.py +3 -3
  92. flwr/proto/node_pb2.pyi +1 -4
  93. flwr/proto/recordset_pb2.py +1 -1
  94. flwr/proto/run_pb2.py +1 -1
  95. flwr/proto/serverappio_pb2.py +24 -25
  96. flwr/proto/serverappio_pb2.pyi +32 -32
  97. flwr/proto/serverappio_pb2_grpc.py +62 -28
  98. flwr/proto/serverappio_pb2_grpc.pyi +29 -16
  99. flwr/proto/simulationio_pb2.py +3 -3
  100. flwr/proto/simulationio_pb2_grpc.py +34 -0
  101. flwr/proto/simulationio_pb2_grpc.pyi +13 -0
  102. flwr/proto/task_pb2.py +1 -1
  103. flwr/proto/transport_pb2.py +1 -1
  104. flwr/server/app.py +152 -112
  105. flwr/server/compat/app_utils.py +7 -2
  106. flwr/server/compat/driver_client_proxy.py +1 -2
  107. flwr/server/driver/grpc_driver.py +38 -85
  108. flwr/server/driver/inmemory_driver.py +7 -2
  109. flwr/server/run_serverapp.py +8 -9
  110. flwr/server/serverapp/app.py +37 -13
  111. flwr/server/strategy/dpfedavg_fixed.py +1 -0
  112. flwr/server/superlink/driver/serverappio_grpc.py +2 -1
  113. flwr/server/superlink/driver/serverappio_servicer.py +148 -63
  114. flwr/server/superlink/ffs/disk_ffs.py +1 -0
  115. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +20 -87
  116. flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -0
  117. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +2 -165
  118. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +56 -35
  119. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +99 -169
  120. flwr/server/superlink/fleet/message_handler/message_handler.py +69 -29
  121. flwr/server/superlink/fleet/rest_rere/rest_api.py +20 -19
  122. flwr/server/superlink/fleet/vce/__init__.py +1 -0
  123. flwr/server/superlink/fleet/vce/backend/__init__.py +1 -0
  124. flwr/server/superlink/fleet/vce/backend/raybackend.py +1 -0
  125. flwr/server/superlink/fleet/vce/vce_api.py +2 -2
  126. flwr/server/superlink/linkstate/in_memory_linkstate.py +60 -99
  127. flwr/server/superlink/linkstate/linkstate.py +30 -36
  128. flwr/server/superlink/linkstate/sqlite_linkstate.py +105 -188
  129. flwr/server/superlink/linkstate/utils.py +18 -8
  130. flwr/server/superlink/simulation/simulationio_grpc.py +1 -1
  131. flwr/server/superlink/simulation/simulationio_servicer.py +33 -0
  132. flwr/server/superlink/utils.py +65 -0
  133. flwr/server/utils/validator.py +9 -34
  134. flwr/simulation/app.py +20 -10
  135. flwr/simulation/legacy_app.py +4 -2
  136. flwr/simulation/ray_transport/ray_actor.py +1 -0
  137. flwr/simulation/ray_transport/utils.py +1 -0
  138. flwr/simulation/run_simulation.py +36 -22
  139. flwr/simulation/simulationio_connection.py +5 -1
  140. flwr/superexec/app.py +1 -0
  141. flwr/superexec/deployment.py +1 -0
  142. flwr/superexec/exec_grpc.py +20 -2
  143. flwr/superexec/exec_servicer.py +97 -2
  144. flwr/superexec/exec_user_auth_interceptor.py +101 -0
  145. flwr/superexec/executor.py +1 -0
  146. {flwr-1.13.1.dist-info → flwr-1.15.0.dist-info}/METADATA +14 -13
  147. {flwr-1.13.1.dist-info → flwr-1.15.0.dist-info}/RECORD +150 -144
  148. flwr/proto/common_pb2.py +0 -36
  149. flwr/proto/common_pb2.pyi +0 -121
  150. flwr/proto/common_pb2_grpc.py +0 -4
  151. flwr/proto/common_pb2_grpc.pyi +0 -4
  152. flwr/proto/control_pb2.py +0 -27
  153. flwr/proto/control_pb2.pyi +0 -7
  154. flwr/proto/control_pb2_grpc.py +0 -135
  155. flwr/proto/control_pb2_grpc.pyi +0 -53
  156. {flwr-1.13.1.dist-info → flwr-1.15.0.dist-info}/LICENSE +0 -0
  157. {flwr-1.13.1.dist-info → flwr-1.15.0.dist-info}/WHEEL +0 -0
  158. {flwr-1.13.1.dist-info → flwr-1.15.0.dist-info}/entry_points.txt +0 -0
@@ -7,7 +7,6 @@ import flwr.proto.fab_pb2
7
7
  import flwr.proto.message_pb2
8
8
  import flwr.proto.node_pb2
9
9
  import flwr.proto.run_pb2
10
- import flwr.proto.task_pb2
11
10
  import google.protobuf.descriptor
12
11
  import google.protobuf.internal.containers
13
12
  import google.protobuf.message
@@ -40,60 +39,61 @@ class GetNodesResponse(google.protobuf.message.Message):
40
39
  def ClearField(self, field_name: typing_extensions.Literal["nodes",b"nodes"]) -> None: ...
41
40
  global___GetNodesResponse = GetNodesResponse
42
41
 
43
- class PushTaskInsRequest(google.protobuf.message.Message):
44
- """PushTaskIns messages"""
42
+ class PushInsMessagesRequest(google.protobuf.message.Message):
43
+ """PushMessages messages"""
45
44
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
46
- TASK_INS_LIST_FIELD_NUMBER: builtins.int
45
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
46
+ RUN_ID_FIELD_NUMBER: builtins.int
47
47
  @property
48
- def task_ins_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.task_pb2.TaskIns]: ...
48
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
49
+ run_id: builtins.int
49
50
  def __init__(self,
50
51
  *,
51
- task_ins_list: typing.Optional[typing.Iterable[flwr.proto.task_pb2.TaskIns]] = ...,
52
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
53
+ run_id: builtins.int = ...,
52
54
  ) -> None: ...
53
- def ClearField(self, field_name: typing_extensions.Literal["task_ins_list",b"task_ins_list"]) -> None: ...
54
- global___PushTaskInsRequest = PushTaskInsRequest
55
+ def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list","run_id",b"run_id"]) -> None: ...
56
+ global___PushInsMessagesRequest = PushInsMessagesRequest
55
57
 
56
- class PushTaskInsResponse(google.protobuf.message.Message):
58
+ class PushInsMessagesResponse(google.protobuf.message.Message):
57
59
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
58
- TASK_IDS_FIELD_NUMBER: builtins.int
60
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
59
61
  @property
60
- def task_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
62
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
61
63
  def __init__(self,
62
64
  *,
63
- task_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
65
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
64
66
  ) -> None: ...
65
- def ClearField(self, field_name: typing_extensions.Literal["task_ids",b"task_ids"]) -> None: ...
66
- global___PushTaskInsResponse = PushTaskInsResponse
67
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids"]) -> None: ...
68
+ global___PushInsMessagesResponse = PushInsMessagesResponse
67
69
 
68
- class PullTaskResRequest(google.protobuf.message.Message):
69
- """PullTaskRes messages"""
70
+ class PullResMessagesRequest(google.protobuf.message.Message):
71
+ """PullMessages messages"""
70
72
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
71
- NODE_FIELD_NUMBER: builtins.int
72
- TASK_IDS_FIELD_NUMBER: builtins.int
73
- @property
74
- def node(self) -> flwr.proto.node_pb2.Node: ...
73
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
74
+ RUN_ID_FIELD_NUMBER: builtins.int
75
75
  @property
76
- def task_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
76
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
77
+ run_id: builtins.int
77
78
  def __init__(self,
78
79
  *,
79
- node: typing.Optional[flwr.proto.node_pb2.Node] = ...,
80
- task_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
80
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
81
+ run_id: builtins.int = ...,
81
82
  ) -> None: ...
82
- def HasField(self, field_name: typing_extensions.Literal["node",b"node"]) -> builtins.bool: ...
83
- def ClearField(self, field_name: typing_extensions.Literal["node",b"node","task_ids",b"task_ids"]) -> None: ...
84
- global___PullTaskResRequest = PullTaskResRequest
83
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id"]) -> None: ...
84
+ global___PullResMessagesRequest = PullResMessagesRequest
85
85
 
86
- class PullTaskResResponse(google.protobuf.message.Message):
86
+ class PullResMessagesResponse(google.protobuf.message.Message):
87
87
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
88
- TASK_RES_LIST_FIELD_NUMBER: builtins.int
88
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
89
89
  @property
90
- def task_res_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.task_pb2.TaskRes]: ...
90
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
91
91
  def __init__(self,
92
92
  *,
93
- task_res_list: typing.Optional[typing.Iterable[flwr.proto.task_pb2.TaskRes]] = ...,
93
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
94
94
  ) -> None: ...
95
- def ClearField(self, field_name: typing_extensions.Literal["task_res_list",b"task_res_list"]) -> None: ...
96
- global___PullTaskResResponse = PullTaskResResponse
95
+ def ClearField(self, field_name: typing_extensions.Literal["messages_list",b"messages_list"]) -> None: ...
96
+ global___PullResMessagesResponse = PullResMessagesResponse
97
97
 
98
98
  class PullServerAppInputsRequest(google.protobuf.message.Message):
99
99
  """PullServerAppInputs messages"""
@@ -27,15 +27,15 @@ class ServerAppIoStub(object):
27
27
  request_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.SerializeToString,
28
28
  response_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.FromString,
29
29
  )
30
- self.PushTaskIns = channel.unary_unary(
31
- '/flwr.proto.ServerAppIo/PushTaskIns',
32
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PushTaskInsRequest.SerializeToString,
33
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushTaskInsResponse.FromString,
30
+ self.PushMessages = channel.unary_unary(
31
+ '/flwr.proto.ServerAppIo/PushMessages',
32
+ request_serializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.SerializeToString,
33
+ response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.FromString,
34
34
  )
35
- self.PullTaskRes = channel.unary_unary(
36
- '/flwr.proto.ServerAppIo/PullTaskRes',
37
- request_serializer=flwr_dot_proto_dot_serverappio__pb2.PullTaskResRequest.SerializeToString,
38
- response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullTaskResResponse.FromString,
35
+ self.PullMessages = channel.unary_unary(
36
+ '/flwr.proto.ServerAppIo/PullMessages',
37
+ request_serializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.SerializeToString,
38
+ response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.FromString,
39
39
  )
40
40
  self.GetRun = channel.unary_unary(
41
41
  '/flwr.proto.ServerAppIo/GetRun',
@@ -62,6 +62,11 @@ class ServerAppIoStub(object):
62
62
  request_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
63
63
  response_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.FromString,
64
64
  )
65
+ self.GetRunStatus = channel.unary_unary(
66
+ '/flwr.proto.ServerAppIo/GetRunStatus',
67
+ request_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
68
+ response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
69
+ )
65
70
  self.PushLogs = channel.unary_unary(
66
71
  '/flwr.proto.ServerAppIo/PushLogs',
67
72
  request_serializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.SerializeToString,
@@ -86,15 +91,15 @@ class ServerAppIoServicer(object):
86
91
  context.set_details('Method not implemented!')
87
92
  raise NotImplementedError('Method not implemented!')
88
93
 
89
- def PushTaskIns(self, request, context):
90
- """Create one or more tasks
94
+ def PushMessages(self, request, context):
95
+ """Create one or more messages
91
96
  """
92
97
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
93
98
  context.set_details('Method not implemented!')
94
99
  raise NotImplementedError('Method not implemented!')
95
100
 
96
- def PullTaskRes(self, request, context):
97
- """Get task results
101
+ def PullMessages(self, request, context):
102
+ """Get message results
98
103
  """
99
104
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
100
105
  context.set_details('Method not implemented!')
@@ -135,6 +140,13 @@ class ServerAppIoServicer(object):
135
140
  context.set_details('Method not implemented!')
136
141
  raise NotImplementedError('Method not implemented!')
137
142
 
143
+ def GetRunStatus(self, request, context):
144
+ """Get the status of a given run
145
+ """
146
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
147
+ context.set_details('Method not implemented!')
148
+ raise NotImplementedError('Method not implemented!')
149
+
138
150
  def PushLogs(self, request, context):
139
151
  """Push ServerApp logs
140
152
  """
@@ -155,15 +167,15 @@ def add_ServerAppIoServicer_to_server(servicer, server):
155
167
  request_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.FromString,
156
168
  response_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.SerializeToString,
157
169
  ),
158
- 'PushTaskIns': grpc.unary_unary_rpc_method_handler(
159
- servicer.PushTaskIns,
160
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushTaskInsRequest.FromString,
161
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PushTaskInsResponse.SerializeToString,
170
+ 'PushMessages': grpc.unary_unary_rpc_method_handler(
171
+ servicer.PushMessages,
172
+ request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.FromString,
173
+ response_serializer=flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.SerializeToString,
162
174
  ),
163
- 'PullTaskRes': grpc.unary_unary_rpc_method_handler(
164
- servicer.PullTaskRes,
165
- request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullTaskResRequest.FromString,
166
- response_serializer=flwr_dot_proto_dot_serverappio__pb2.PullTaskResResponse.SerializeToString,
175
+ 'PullMessages': grpc.unary_unary_rpc_method_handler(
176
+ servicer.PullMessages,
177
+ request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.FromString,
178
+ response_serializer=flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.SerializeToString,
167
179
  ),
168
180
  'GetRun': grpc.unary_unary_rpc_method_handler(
169
181
  servicer.GetRun,
@@ -190,6 +202,11 @@ def add_ServerAppIoServicer_to_server(servicer, server):
190
202
  request_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.FromString,
191
203
  response_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.SerializeToString,
192
204
  ),
205
+ 'GetRunStatus': grpc.unary_unary_rpc_method_handler(
206
+ servicer.GetRunStatus,
207
+ request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.FromString,
208
+ response_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.SerializeToString,
209
+ ),
193
210
  'PushLogs': grpc.unary_unary_rpc_method_handler(
194
211
  servicer.PushLogs,
195
212
  request_deserializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.FromString,
@@ -240,7 +257,7 @@ class ServerAppIo(object):
240
257
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
241
258
 
242
259
  @staticmethod
243
- def PushTaskIns(request,
260
+ def PushMessages(request,
244
261
  target,
245
262
  options=(),
246
263
  channel_credentials=None,
@@ -250,14 +267,14 @@ class ServerAppIo(object):
250
267
  wait_for_ready=None,
251
268
  timeout=None,
252
269
  metadata=None):
253
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushTaskIns',
254
- flwr_dot_proto_dot_serverappio__pb2.PushTaskInsRequest.SerializeToString,
255
- flwr_dot_proto_dot_serverappio__pb2.PushTaskInsResponse.FromString,
270
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PushMessages',
271
+ flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesRequest.SerializeToString,
272
+ flwr_dot_proto_dot_serverappio__pb2.PushInsMessagesResponse.FromString,
256
273
  options, channel_credentials,
257
274
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
258
275
 
259
276
  @staticmethod
260
- def PullTaskRes(request,
277
+ def PullMessages(request,
261
278
  target,
262
279
  options=(),
263
280
  channel_credentials=None,
@@ -267,9 +284,9 @@ class ServerAppIo(object):
267
284
  wait_for_ready=None,
268
285
  timeout=None,
269
286
  metadata=None):
270
- return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullTaskRes',
271
- flwr_dot_proto_dot_serverappio__pb2.PullTaskResRequest.SerializeToString,
272
- flwr_dot_proto_dot_serverappio__pb2.PullTaskResResponse.FromString,
287
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/PullMessages',
288
+ flwr_dot_proto_dot_serverappio__pb2.PullResMessagesRequest.SerializeToString,
289
+ flwr_dot_proto_dot_serverappio__pb2.PullResMessagesResponse.FromString,
273
290
  options, channel_credentials,
274
291
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
275
292
 
@@ -358,6 +375,23 @@ class ServerAppIo(object):
358
375
  options, channel_credentials,
359
376
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
360
377
 
378
+ @staticmethod
379
+ def GetRunStatus(request,
380
+ target,
381
+ options=(),
382
+ channel_credentials=None,
383
+ call_credentials=None,
384
+ insecure=False,
385
+ compression=None,
386
+ wait_for_ready=None,
387
+ timeout=None,
388
+ metadata=None):
389
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/GetRunStatus',
390
+ flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
391
+ flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
392
+ options, channel_credentials,
393
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
394
+
361
395
  @staticmethod
362
396
  def PushLogs(request,
363
397
  target,
@@ -21,15 +21,15 @@ class ServerAppIoStub:
21
21
  flwr.proto.serverappio_pb2.GetNodesResponse]
22
22
  """Return a set of nodes"""
23
23
 
24
- PushTaskIns: grpc.UnaryUnaryMultiCallable[
25
- flwr.proto.serverappio_pb2.PushTaskInsRequest,
26
- flwr.proto.serverappio_pb2.PushTaskInsResponse]
27
- """Create one or more tasks"""
24
+ PushMessages: grpc.UnaryUnaryMultiCallable[
25
+ flwr.proto.serverappio_pb2.PushInsMessagesRequest,
26
+ flwr.proto.serverappio_pb2.PushInsMessagesResponse]
27
+ """Create one or more messages"""
28
28
 
29
- PullTaskRes: grpc.UnaryUnaryMultiCallable[
30
- flwr.proto.serverappio_pb2.PullTaskResRequest,
31
- flwr.proto.serverappio_pb2.PullTaskResResponse]
32
- """Get task results"""
29
+ PullMessages: grpc.UnaryUnaryMultiCallable[
30
+ flwr.proto.serverappio_pb2.PullResMessagesRequest,
31
+ flwr.proto.serverappio_pb2.PullResMessagesResponse]
32
+ """Get message results"""
33
33
 
34
34
  GetRun: grpc.UnaryUnaryMultiCallable[
35
35
  flwr.proto.run_pb2.GetRunRequest,
@@ -56,6 +56,11 @@ class ServerAppIoStub:
56
56
  flwr.proto.run_pb2.UpdateRunStatusResponse]
57
57
  """Update the status of a given run"""
58
58
 
59
+ GetRunStatus: grpc.UnaryUnaryMultiCallable[
60
+ flwr.proto.run_pb2.GetRunStatusRequest,
61
+ flwr.proto.run_pb2.GetRunStatusResponse]
62
+ """Get the status of a given run"""
63
+
59
64
  PushLogs: grpc.UnaryUnaryMultiCallable[
60
65
  flwr.proto.log_pb2.PushLogsRequest,
61
66
  flwr.proto.log_pb2.PushLogsResponse]
@@ -80,19 +85,19 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
80
85
  pass
81
86
 
82
87
  @abc.abstractmethod
83
- def PushTaskIns(self,
84
- request: flwr.proto.serverappio_pb2.PushTaskInsRequest,
88
+ def PushMessages(self,
89
+ request: flwr.proto.serverappio_pb2.PushInsMessagesRequest,
85
90
  context: grpc.ServicerContext,
86
- ) -> flwr.proto.serverappio_pb2.PushTaskInsResponse:
87
- """Create one or more tasks"""
91
+ ) -> flwr.proto.serverappio_pb2.PushInsMessagesResponse:
92
+ """Create one or more messages"""
88
93
  pass
89
94
 
90
95
  @abc.abstractmethod
91
- def PullTaskRes(self,
92
- request: flwr.proto.serverappio_pb2.PullTaskResRequest,
96
+ def PullMessages(self,
97
+ request: flwr.proto.serverappio_pb2.PullResMessagesRequest,
93
98
  context: grpc.ServicerContext,
94
- ) -> flwr.proto.serverappio_pb2.PullTaskResResponse:
95
- """Get task results"""
99
+ ) -> flwr.proto.serverappio_pb2.PullResMessagesResponse:
100
+ """Get message results"""
96
101
  pass
97
102
 
98
103
  @abc.abstractmethod
@@ -135,6 +140,14 @@ class ServerAppIoServicer(metaclass=abc.ABCMeta):
135
140
  """Update the status of a given run"""
136
141
  pass
137
142
 
143
+ @abc.abstractmethod
144
+ def GetRunStatus(self,
145
+ request: flwr.proto.run_pb2.GetRunStatusRequest,
146
+ context: grpc.ServicerContext,
147
+ ) -> flwr.proto.run_pb2.GetRunStatusResponse:
148
+ """Get the status of a given run"""
149
+ pass
150
+
138
151
  @abc.abstractmethod
139
152
  def PushLogs(self,
140
153
  request: flwr.proto.log_pb2.PushLogsRequest,
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: flwr/proto/simulationio.proto
4
- # Protobuf Python Version: 4.25.0
4
+ # Protobuf Python Version: 4.25.1
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -18,7 +18,7 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
18
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"\x1d\n\x1bPullSimulationInputsRequest\"\x80\x01\n\x1cPullSimulationInputsResponse\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\"T\n\x1cPushSimulationOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1f\n\x1dPushSimulationOutputsResponse2\xff\x03\n\x0cSimulationIo\x12k\n\x14PullSimulationInputs\x12\'.flwr.proto.PullSimulationInputsRequest\x1a(.flwr.proto.PullSimulationInputsResponse\"\x00\x12n\n\x15PushSimulationOutputs\x12(.flwr.proto.PushSimulationOutputsRequest\x1a).flwr.proto.PushSimulationOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lwr/proto/simulationio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\"\x1d\n\x1bPullSimulationInputsRequest\"\x80\x01\n\x1cPullSimulationInputsResponse\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\"T\n\x1cPushSimulationOutputsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\"\x1f\n\x1dPushSimulationOutputsResponse2\xd4\x04\n\x0cSimulationIo\x12k\n\x14PullSimulationInputs\x12\'.flwr.proto.PullSimulationInputsRequest\x1a(.flwr.proto.PullSimulationInputsResponse\"\x00\x12n\n\x15PushSimulationOutputs\x12(.flwr.proto.PushSimulationOutputsRequest\x1a).flwr.proto.PushSimulationOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12k\n\x14GetFederationOptions\x12\'.flwr.proto.GetFederationOptionsRequest\x1a(.flwr.proto.GetFederationOptionsResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -34,5 +34,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
34
34
  _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_start=385
35
35
  _globals['_PUSHSIMULATIONOUTPUTSRESPONSE']._serialized_end=416
36
36
  _globals['_SIMULATIONIO']._serialized_start=419
37
- _globals['_SIMULATIONIO']._serialized_end=930
37
+ _globals['_SIMULATIONIO']._serialized_end=1015
38
38
  # @@protoc_insertion_point(module_scope)
@@ -41,6 +41,11 @@ class SimulationIoStub(object):
41
41
  request_serializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsRequest.SerializeToString,
42
42
  response_deserializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.FromString,
43
43
  )
44
+ self.GetRunStatus = channel.unary_unary(
45
+ '/flwr.proto.SimulationIo/GetRunStatus',
46
+ request_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
47
+ response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
48
+ )
44
49
 
45
50
 
46
51
  class SimulationIoServicer(object):
@@ -81,6 +86,13 @@ class SimulationIoServicer(object):
81
86
  context.set_details('Method not implemented!')
82
87
  raise NotImplementedError('Method not implemented!')
83
88
 
89
+ def GetRunStatus(self, request, context):
90
+ """Get Run Status
91
+ """
92
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
93
+ context.set_details('Method not implemented!')
94
+ raise NotImplementedError('Method not implemented!')
95
+
84
96
 
85
97
  def add_SimulationIoServicer_to_server(servicer, server):
86
98
  rpc_method_handlers = {
@@ -109,6 +121,11 @@ def add_SimulationIoServicer_to_server(servicer, server):
109
121
  request_deserializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsRequest.FromString,
110
122
  response_serializer=flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.SerializeToString,
111
123
  ),
124
+ 'GetRunStatus': grpc.unary_unary_rpc_method_handler(
125
+ servicer.GetRunStatus,
126
+ request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.FromString,
127
+ response_serializer=flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.SerializeToString,
128
+ ),
112
129
  }
113
130
  generic_handler = grpc.method_handlers_generic_handler(
114
131
  'flwr.proto.SimulationIo', rpc_method_handlers)
@@ -203,3 +220,20 @@ class SimulationIo(object):
203
220
  flwr_dot_proto_dot_run__pb2.GetFederationOptionsResponse.FromString,
204
221
  options, channel_credentials,
205
222
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
223
+
224
+ @staticmethod
225
+ def GetRunStatus(request,
226
+ target,
227
+ options=(),
228
+ channel_credentials=None,
229
+ call_credentials=None,
230
+ insecure=False,
231
+ compression=None,
232
+ wait_for_ready=None,
233
+ timeout=None,
234
+ metadata=None):
235
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.SimulationIo/GetRunStatus',
236
+ flwr_dot_proto_dot_run__pb2.GetRunStatusRequest.SerializeToString,
237
+ flwr_dot_proto_dot_run__pb2.GetRunStatusResponse.FromString,
238
+ options, channel_credentials,
239
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -35,6 +35,11 @@ class SimulationIoStub:
35
35
  flwr.proto.run_pb2.GetFederationOptionsResponse]
36
36
  """Get Federation Options"""
37
37
 
38
+ GetRunStatus: grpc.UnaryUnaryMultiCallable[
39
+ flwr.proto.run_pb2.GetRunStatusRequest,
40
+ flwr.proto.run_pb2.GetRunStatusResponse]
41
+ """Get Run Status"""
42
+
38
43
 
39
44
  class SimulationIoServicer(metaclass=abc.ABCMeta):
40
45
  @abc.abstractmethod
@@ -77,5 +82,13 @@ class SimulationIoServicer(metaclass=abc.ABCMeta):
77
82
  """Get Federation Options"""
78
83
  pass
79
84
 
85
+ @abc.abstractmethod
86
+ def GetRunStatus(self,
87
+ request: flwr.proto.run_pb2.GetRunStatusRequest,
88
+ context: grpc.ServicerContext,
89
+ ) -> flwr.proto.run_pb2.GetRunStatusResponse:
90
+ """Get Run Status"""
91
+ pass
92
+
80
93
 
81
94
  def add_SimulationIoServicer_to_server(servicer: SimulationIoServicer, server: grpc.Server) -> None: ...
flwr/proto/task_pb2.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: flwr/proto/task.proto
4
- # Protobuf Python Version: 4.25.0
4
+ # Protobuf Python Version: 4.25.1
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: flwr/proto/transport.proto
4
- # Protobuf Python Version: 4.25.0
4
+ # Protobuf Python Version: 4.25.1
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool