flwr-nightly 1.13.0.dev20241021__py3-none-any.whl → 1.13.0.dev20241111__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.

Potentially problematic release.


This version of flwr-nightly might be problematic. Click here for more details.

Files changed (92) hide show
  1. flwr/cli/build.py +2 -2
  2. flwr/cli/config_utils.py +97 -0
  3. flwr/cli/log.py +63 -97
  4. flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +1 -1
  5. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -0
  6. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  7. flwr/cli/run/run.py +34 -88
  8. flwr/client/app.py +23 -20
  9. flwr/client/clientapp/app.py +22 -18
  10. flwr/client/nodestate/__init__.py +25 -0
  11. flwr/client/nodestate/in_memory_nodestate.py +38 -0
  12. flwr/client/nodestate/nodestate.py +30 -0
  13. flwr/client/nodestate/nodestate_factory.py +37 -0
  14. flwr/client/{node_state.py → run_info_store.py} +4 -3
  15. flwr/client/supernode/app.py +6 -8
  16. flwr/common/args.py +83 -0
  17. flwr/common/config.py +10 -0
  18. flwr/common/constant.py +39 -5
  19. flwr/common/context.py +9 -4
  20. flwr/common/date.py +3 -3
  21. flwr/common/logger.py +108 -1
  22. flwr/common/object_ref.py +47 -16
  23. flwr/common/serde.py +24 -0
  24. flwr/common/telemetry.py +0 -6
  25. flwr/common/typing.py +10 -1
  26. flwr/proto/exec_pb2.py +14 -17
  27. flwr/proto/exec_pb2.pyi +14 -22
  28. flwr/proto/log_pb2.py +29 -0
  29. flwr/proto/log_pb2.pyi +39 -0
  30. flwr/proto/log_pb2_grpc.py +4 -0
  31. flwr/proto/log_pb2_grpc.pyi +4 -0
  32. flwr/proto/message_pb2.py +8 -8
  33. flwr/proto/message_pb2.pyi +4 -1
  34. flwr/proto/run_pb2.py +32 -27
  35. flwr/proto/run_pb2.pyi +26 -0
  36. flwr/proto/serverappio_pb2.py +52 -0
  37. flwr/proto/{driver_pb2.pyi → serverappio_pb2.pyi} +54 -0
  38. flwr/proto/serverappio_pb2_grpc.py +376 -0
  39. flwr/proto/serverappio_pb2_grpc.pyi +147 -0
  40. flwr/proto/simulationio_pb2.py +38 -0
  41. flwr/proto/simulationio_pb2.pyi +65 -0
  42. flwr/proto/simulationio_pb2_grpc.py +205 -0
  43. flwr/proto/simulationio_pb2_grpc.pyi +81 -0
  44. flwr/server/app.py +272 -105
  45. flwr/server/driver/driver.py +15 -1
  46. flwr/server/driver/grpc_driver.py +25 -36
  47. flwr/server/driver/inmemory_driver.py +6 -16
  48. flwr/server/run_serverapp.py +29 -23
  49. flwr/server/{superlink/state → serverapp}/__init__.py +3 -9
  50. flwr/server/serverapp/app.py +214 -0
  51. flwr/server/strategy/aggregate.py +4 -4
  52. flwr/server/strategy/fedadam.py +11 -1
  53. flwr/server/superlink/driver/__init__.py +1 -1
  54. flwr/server/superlink/driver/{driver_grpc.py → serverappio_grpc.py} +19 -16
  55. flwr/server/superlink/driver/{driver_servicer.py → serverappio_servicer.py} +125 -39
  56. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +4 -2
  57. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +2 -2
  58. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +4 -2
  59. flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +2 -2
  60. flwr/server/superlink/fleet/message_handler/message_handler.py +7 -7
  61. flwr/server/superlink/fleet/rest_rere/rest_api.py +7 -7
  62. flwr/server/superlink/fleet/vce/vce_api.py +23 -23
  63. flwr/server/superlink/linkstate/__init__.py +28 -0
  64. flwr/server/superlink/{state/in_memory_state.py → linkstate/in_memory_linkstate.py} +184 -36
  65. flwr/server/superlink/{state/state.py → linkstate/linkstate.py} +149 -19
  66. flwr/server/superlink/{state/state_factory.py → linkstate/linkstate_factory.py} +9 -9
  67. flwr/server/superlink/{state/sqlite_state.py → linkstate/sqlite_linkstate.py} +306 -65
  68. flwr/server/superlink/{state → linkstate}/utils.py +81 -30
  69. flwr/server/superlink/simulation/__init__.py +15 -0
  70. flwr/server/superlink/simulation/simulationio_grpc.py +65 -0
  71. flwr/server/superlink/simulation/simulationio_servicer.py +153 -0
  72. flwr/simulation/__init__.py +5 -1
  73. flwr/simulation/app.py +273 -345
  74. flwr/simulation/legacy_app.py +382 -0
  75. flwr/simulation/ray_transport/ray_client_proxy.py +2 -2
  76. flwr/simulation/run_simulation.py +57 -131
  77. flwr/simulation/simulationio_connection.py +86 -0
  78. flwr/superexec/app.py +6 -134
  79. flwr/superexec/deployment.py +61 -66
  80. flwr/superexec/exec_grpc.py +15 -8
  81. flwr/superexec/exec_servicer.py +36 -65
  82. flwr/superexec/executor.py +26 -7
  83. flwr/superexec/simulation.py +54 -107
  84. {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/METADATA +5 -4
  85. {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/RECORD +88 -69
  86. {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/entry_points.txt +2 -0
  87. flwr/client/node_state_tests.py +0 -66
  88. flwr/proto/driver_pb2.py +0 -42
  89. flwr/proto/driver_pb2_grpc.py +0 -239
  90. flwr/proto/driver_pb2_grpc.pyi +0 -94
  91. {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/LICENSE +0 -0
  92. {flwr_nightly-1.13.0.dev20241021.dist-info → flwr_nightly-1.13.0.dev20241111.dist-info}/WHEEL +0 -0
@@ -0,0 +1,52 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/serverappio.proto
4
+ # Protobuf Python Version: 4.25.0
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
16
+ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
17
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
+ from flwr.proto import task_pb2 as flwr_dot_proto_dot_task__pb2
19
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
20
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
21
+
22
+
23
+ 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\x15\x66lwr/proto/task.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\"@\n\x12PushTaskInsRequest\x12*\n\rtask_ins_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskIns\"\'\n\x13PushTaskInsResponse\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"F\n\x12PullTaskResRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x10\n\x08task_ids\x18\x02 \x03(\t\"A\n\x13PullTaskResResponse\x12*\n\rtask_res_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.TaskRes\"\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\xca\x06\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\x12P\n\x0bPushTaskIns\x12\x1e.flwr.proto.PushTaskInsRequest\x1a\x1f.flwr.proto.PushTaskInsResponse\"\x00\x12P\n\x0bPullTaskRes\x12\x1e.flwr.proto.PullTaskResRequest\x1a\x1f.flwr.proto.PullTaskResResponse\"\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\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x62\x06proto3')
24
+
25
+ _globals = globals()
26
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.serverappio_pb2', _globals)
28
+ if _descriptor._USE_C_DESCRIPTORS == False:
29
+ DESCRIPTOR._options = None
30
+ _globals['_GETNODESREQUEST']._serialized_start=182
31
+ _globals['_GETNODESREQUEST']._serialized_end=215
32
+ _globals['_GETNODESRESPONSE']._serialized_start=217
33
+ _globals['_GETNODESRESPONSE']._serialized_end=268
34
+ _globals['_PUSHTASKINSREQUEST']._serialized_start=270
35
+ _globals['_PUSHTASKINSREQUEST']._serialized_end=334
36
+ _globals['_PUSHTASKINSRESPONSE']._serialized_start=336
37
+ _globals['_PUSHTASKINSRESPONSE']._serialized_end=375
38
+ _globals['_PULLTASKRESREQUEST']._serialized_start=377
39
+ _globals['_PULLTASKRESREQUEST']._serialized_end=447
40
+ _globals['_PULLTASKRESRESPONSE']._serialized_start=449
41
+ _globals['_PULLTASKRESRESPONSE']._serialized_end=514
42
+ _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_start=516
43
+ _globals['_PULLSERVERAPPINPUTSREQUEST']._serialized_end=544
44
+ _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_start=546
45
+ _globals['_PULLSERVERAPPINPUTSRESPONSE']._serialized_end=673
46
+ _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_start=675
47
+ _globals['_PUSHSERVERAPPOUTPUTSREQUEST']._serialized_end=758
48
+ _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_start=760
49
+ _globals['_PUSHSERVERAPPOUTPUTSRESPONSE']._serialized_end=790
50
+ _globals['_SERVERAPPIO']._serialized_start=793
51
+ _globals['_SERVERAPPIO']._serialized_end=1635
52
+ # @@protoc_insertion_point(module_scope)
@@ -3,7 +3,10 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
+ import flwr.proto.fab_pb2
7
+ import flwr.proto.message_pb2
6
8
  import flwr.proto.node_pb2
9
+ import flwr.proto.run_pb2
7
10
  import flwr.proto.task_pb2
8
11
  import google.protobuf.descriptor
9
12
  import google.protobuf.internal.containers
@@ -91,3 +94,54 @@ class PullTaskResResponse(google.protobuf.message.Message):
91
94
  ) -> None: ...
92
95
  def ClearField(self, field_name: typing_extensions.Literal["task_res_list",b"task_res_list"]) -> None: ...
93
96
  global___PullTaskResResponse = PullTaskResResponse
97
+
98
+ class PullServerAppInputsRequest(google.protobuf.message.Message):
99
+ """PullServerAppInputs messages"""
100
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
101
+ def __init__(self,
102
+ ) -> None: ...
103
+ global___PullServerAppInputsRequest = PullServerAppInputsRequest
104
+
105
+ class PullServerAppInputsResponse(google.protobuf.message.Message):
106
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
107
+ CONTEXT_FIELD_NUMBER: builtins.int
108
+ RUN_FIELD_NUMBER: builtins.int
109
+ FAB_FIELD_NUMBER: builtins.int
110
+ @property
111
+ def context(self) -> flwr.proto.message_pb2.Context: ...
112
+ @property
113
+ def run(self) -> flwr.proto.run_pb2.Run: ...
114
+ @property
115
+ def fab(self) -> flwr.proto.fab_pb2.Fab: ...
116
+ def __init__(self,
117
+ *,
118
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
119
+ run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
120
+ fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
121
+ ) -> None: ...
122
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
123
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
124
+ global___PullServerAppInputsResponse = PullServerAppInputsResponse
125
+
126
+ class PushServerAppOutputsRequest(google.protobuf.message.Message):
127
+ """PushServerAppOutputs messages"""
128
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
129
+ RUN_ID_FIELD_NUMBER: builtins.int
130
+ CONTEXT_FIELD_NUMBER: builtins.int
131
+ run_id: builtins.int
132
+ @property
133
+ def context(self) -> flwr.proto.message_pb2.Context: ...
134
+ def __init__(self,
135
+ *,
136
+ run_id: builtins.int = ...,
137
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
138
+ ) -> None: ...
139
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
140
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id"]) -> None: ...
141
+ global___PushServerAppOutputsRequest = PushServerAppOutputsRequest
142
+
143
+ class PushServerAppOutputsResponse(google.protobuf.message.Message):
144
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
145
+ def __init__(self,
146
+ ) -> None: ...
147
+ global___PushServerAppOutputsResponse = PushServerAppOutputsResponse
@@ -0,0 +1,376 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
6
+ from flwr.proto import log_pb2 as flwr_dot_proto_dot_log__pb2
7
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
8
+ from flwr.proto import serverappio_pb2 as flwr_dot_proto_dot_serverappio__pb2
9
+
10
+
11
+ class ServerAppIoStub(object):
12
+ """Missing associated documentation comment in .proto file."""
13
+
14
+ def __init__(self, channel):
15
+ """Constructor.
16
+
17
+ Args:
18
+ channel: A grpc.Channel.
19
+ """
20
+ self.CreateRun = channel.unary_unary(
21
+ '/flwr.proto.ServerAppIo/CreateRun',
22
+ request_serializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
23
+ response_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
24
+ )
25
+ self.GetNodes = channel.unary_unary(
26
+ '/flwr.proto.ServerAppIo/GetNodes',
27
+ request_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.SerializeToString,
28
+ response_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.FromString,
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,
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,
39
+ )
40
+ self.GetRun = channel.unary_unary(
41
+ '/flwr.proto.ServerAppIo/GetRun',
42
+ request_serializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
43
+ response_deserializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
44
+ )
45
+ self.GetFab = channel.unary_unary(
46
+ '/flwr.proto.ServerAppIo/GetFab',
47
+ request_serializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
48
+ response_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
49
+ )
50
+ self.PullServerAppInputs = channel.unary_unary(
51
+ '/flwr.proto.ServerAppIo/PullServerAppInputs',
52
+ request_serializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.SerializeToString,
53
+ response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.FromString,
54
+ )
55
+ self.PushServerAppOutputs = channel.unary_unary(
56
+ '/flwr.proto.ServerAppIo/PushServerAppOutputs',
57
+ request_serializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.SerializeToString,
58
+ response_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.FromString,
59
+ )
60
+ self.UpdateRunStatus = channel.unary_unary(
61
+ '/flwr.proto.ServerAppIo/UpdateRunStatus',
62
+ request_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
63
+ response_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.FromString,
64
+ )
65
+ self.PushLogs = channel.unary_unary(
66
+ '/flwr.proto.ServerAppIo/PushLogs',
67
+ request_serializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.SerializeToString,
68
+ response_deserializer=flwr_dot_proto_dot_log__pb2.PushLogsResponse.FromString,
69
+ )
70
+
71
+
72
+ class ServerAppIoServicer(object):
73
+ """Missing associated documentation comment in .proto file."""
74
+
75
+ def CreateRun(self, request, context):
76
+ """Request run_id
77
+ """
78
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
79
+ context.set_details('Method not implemented!')
80
+ raise NotImplementedError('Method not implemented!')
81
+
82
+ def GetNodes(self, request, context):
83
+ """Return a set of nodes
84
+ """
85
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
86
+ context.set_details('Method not implemented!')
87
+ raise NotImplementedError('Method not implemented!')
88
+
89
+ def PushTaskIns(self, request, context):
90
+ """Create one or more tasks
91
+ """
92
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
93
+ context.set_details('Method not implemented!')
94
+ raise NotImplementedError('Method not implemented!')
95
+
96
+ def PullTaskRes(self, request, context):
97
+ """Get task results
98
+ """
99
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
100
+ context.set_details('Method not implemented!')
101
+ raise NotImplementedError('Method not implemented!')
102
+
103
+ def GetRun(self, request, context):
104
+ """Get run details
105
+ """
106
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
107
+ context.set_details('Method not implemented!')
108
+ raise NotImplementedError('Method not implemented!')
109
+
110
+ def GetFab(self, request, context):
111
+ """Get FAB
112
+ """
113
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
114
+ context.set_details('Method not implemented!')
115
+ raise NotImplementedError('Method not implemented!')
116
+
117
+ def PullServerAppInputs(self, request, context):
118
+ """Pull ServerApp inputs
119
+ """
120
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
121
+ context.set_details('Method not implemented!')
122
+ raise NotImplementedError('Method not implemented!')
123
+
124
+ def PushServerAppOutputs(self, request, context):
125
+ """Push ServerApp outputs
126
+ """
127
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
128
+ context.set_details('Method not implemented!')
129
+ raise NotImplementedError('Method not implemented!')
130
+
131
+ def UpdateRunStatus(self, request, context):
132
+ """Update the status of a given run
133
+ """
134
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
135
+ context.set_details('Method not implemented!')
136
+ raise NotImplementedError('Method not implemented!')
137
+
138
+ def PushLogs(self, request, context):
139
+ """Push ServerApp logs
140
+ """
141
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
142
+ context.set_details('Method not implemented!')
143
+ raise NotImplementedError('Method not implemented!')
144
+
145
+
146
+ def add_ServerAppIoServicer_to_server(servicer, server):
147
+ rpc_method_handlers = {
148
+ 'CreateRun': grpc.unary_unary_rpc_method_handler(
149
+ servicer.CreateRun,
150
+ request_deserializer=flwr_dot_proto_dot_run__pb2.CreateRunRequest.FromString,
151
+ response_serializer=flwr_dot_proto_dot_run__pb2.CreateRunResponse.SerializeToString,
152
+ ),
153
+ 'GetNodes': grpc.unary_unary_rpc_method_handler(
154
+ servicer.GetNodes,
155
+ request_deserializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.FromString,
156
+ response_serializer=flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.SerializeToString,
157
+ ),
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,
162
+ ),
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,
167
+ ),
168
+ 'GetRun': grpc.unary_unary_rpc_method_handler(
169
+ servicer.GetRun,
170
+ request_deserializer=flwr_dot_proto_dot_run__pb2.GetRunRequest.FromString,
171
+ response_serializer=flwr_dot_proto_dot_run__pb2.GetRunResponse.SerializeToString,
172
+ ),
173
+ 'GetFab': grpc.unary_unary_rpc_method_handler(
174
+ servicer.GetFab,
175
+ request_deserializer=flwr_dot_proto_dot_fab__pb2.GetFabRequest.FromString,
176
+ response_serializer=flwr_dot_proto_dot_fab__pb2.GetFabResponse.SerializeToString,
177
+ ),
178
+ 'PullServerAppInputs': grpc.unary_unary_rpc_method_handler(
179
+ servicer.PullServerAppInputs,
180
+ request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.FromString,
181
+ response_serializer=flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.SerializeToString,
182
+ ),
183
+ 'PushServerAppOutputs': grpc.unary_unary_rpc_method_handler(
184
+ servicer.PushServerAppOutputs,
185
+ request_deserializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.FromString,
186
+ response_serializer=flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.SerializeToString,
187
+ ),
188
+ 'UpdateRunStatus': grpc.unary_unary_rpc_method_handler(
189
+ servicer.UpdateRunStatus,
190
+ request_deserializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.FromString,
191
+ response_serializer=flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.SerializeToString,
192
+ ),
193
+ 'PushLogs': grpc.unary_unary_rpc_method_handler(
194
+ servicer.PushLogs,
195
+ request_deserializer=flwr_dot_proto_dot_log__pb2.PushLogsRequest.FromString,
196
+ response_serializer=flwr_dot_proto_dot_log__pb2.PushLogsResponse.SerializeToString,
197
+ ),
198
+ }
199
+ generic_handler = grpc.method_handlers_generic_handler(
200
+ 'flwr.proto.ServerAppIo', rpc_method_handlers)
201
+ server.add_generic_rpc_handlers((generic_handler,))
202
+
203
+
204
+ # This class is part of an EXPERIMENTAL API.
205
+ class ServerAppIo(object):
206
+ """Missing associated documentation comment in .proto file."""
207
+
208
+ @staticmethod
209
+ def CreateRun(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.ServerAppIo/CreateRun',
220
+ flwr_dot_proto_dot_run__pb2.CreateRunRequest.SerializeToString,
221
+ flwr_dot_proto_dot_run__pb2.CreateRunResponse.FromString,
222
+ options, channel_credentials,
223
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
224
+
225
+ @staticmethod
226
+ def GetNodes(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.ServerAppIo/GetNodes',
237
+ flwr_dot_proto_dot_serverappio__pb2.GetNodesRequest.SerializeToString,
238
+ flwr_dot_proto_dot_serverappio__pb2.GetNodesResponse.FromString,
239
+ options, channel_credentials,
240
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
241
+
242
+ @staticmethod
243
+ def PushTaskIns(request,
244
+ target,
245
+ options=(),
246
+ channel_credentials=None,
247
+ call_credentials=None,
248
+ insecure=False,
249
+ compression=None,
250
+ wait_for_ready=None,
251
+ timeout=None,
252
+ 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,
256
+ options, channel_credentials,
257
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
258
+
259
+ @staticmethod
260
+ def PullTaskRes(request,
261
+ target,
262
+ options=(),
263
+ channel_credentials=None,
264
+ call_credentials=None,
265
+ insecure=False,
266
+ compression=None,
267
+ wait_for_ready=None,
268
+ timeout=None,
269
+ 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,
273
+ options, channel_credentials,
274
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
275
+
276
+ @staticmethod
277
+ def GetRun(request,
278
+ target,
279
+ options=(),
280
+ channel_credentials=None,
281
+ call_credentials=None,
282
+ insecure=False,
283
+ compression=None,
284
+ wait_for_ready=None,
285
+ timeout=None,
286
+ metadata=None):
287
+ return grpc.experimental.unary_unary(request, target, '/flwr.proto.ServerAppIo/GetRun',
288
+ flwr_dot_proto_dot_run__pb2.GetRunRequest.SerializeToString,
289
+ flwr_dot_proto_dot_run__pb2.GetRunResponse.FromString,
290
+ options, channel_credentials,
291
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
292
+
293
+ @staticmethod
294
+ def GetFab(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.ServerAppIo/GetFab',
305
+ flwr_dot_proto_dot_fab__pb2.GetFabRequest.SerializeToString,
306
+ flwr_dot_proto_dot_fab__pb2.GetFabResponse.FromString,
307
+ options, channel_credentials,
308
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
309
+
310
+ @staticmethod
311
+ def PullServerAppInputs(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.ServerAppIo/PullServerAppInputs',
322
+ flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsRequest.SerializeToString,
323
+ flwr_dot_proto_dot_serverappio__pb2.PullServerAppInputsResponse.FromString,
324
+ options, channel_credentials,
325
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
326
+
327
+ @staticmethod
328
+ def PushServerAppOutputs(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.ServerAppIo/PushServerAppOutputs',
339
+ flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsRequest.SerializeToString,
340
+ flwr_dot_proto_dot_serverappio__pb2.PushServerAppOutputsResponse.FromString,
341
+ options, channel_credentials,
342
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
343
+
344
+ @staticmethod
345
+ def UpdateRunStatus(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.ServerAppIo/UpdateRunStatus',
356
+ flwr_dot_proto_dot_run__pb2.UpdateRunStatusRequest.SerializeToString,
357
+ flwr_dot_proto_dot_run__pb2.UpdateRunStatusResponse.FromString,
358
+ options, channel_credentials,
359
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
360
+
361
+ @staticmethod
362
+ def PushLogs(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.ServerAppIo/PushLogs',
373
+ flwr_dot_proto_dot_log__pb2.PushLogsRequest.SerializeToString,
374
+ flwr_dot_proto_dot_log__pb2.PushLogsResponse.FromString,
375
+ options, channel_credentials,
376
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,147 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import abc
6
+ import flwr.proto.fab_pb2
7
+ import flwr.proto.log_pb2
8
+ import flwr.proto.run_pb2
9
+ import flwr.proto.serverappio_pb2
10
+ import grpc
11
+
12
+ class ServerAppIoStub:
13
+ def __init__(self, channel: grpc.Channel) -> None: ...
14
+ CreateRun: grpc.UnaryUnaryMultiCallable[
15
+ flwr.proto.run_pb2.CreateRunRequest,
16
+ flwr.proto.run_pb2.CreateRunResponse]
17
+ """Request run_id"""
18
+
19
+ GetNodes: grpc.UnaryUnaryMultiCallable[
20
+ flwr.proto.serverappio_pb2.GetNodesRequest,
21
+ flwr.proto.serverappio_pb2.GetNodesResponse]
22
+ """Return a set of nodes"""
23
+
24
+ PushTaskIns: grpc.UnaryUnaryMultiCallable[
25
+ flwr.proto.serverappio_pb2.PushTaskInsRequest,
26
+ flwr.proto.serverappio_pb2.PushTaskInsResponse]
27
+ """Create one or more tasks"""
28
+
29
+ PullTaskRes: grpc.UnaryUnaryMultiCallable[
30
+ flwr.proto.serverappio_pb2.PullTaskResRequest,
31
+ flwr.proto.serverappio_pb2.PullTaskResResponse]
32
+ """Get task results"""
33
+
34
+ GetRun: grpc.UnaryUnaryMultiCallable[
35
+ flwr.proto.run_pb2.GetRunRequest,
36
+ flwr.proto.run_pb2.GetRunResponse]
37
+ """Get run details"""
38
+
39
+ GetFab: grpc.UnaryUnaryMultiCallable[
40
+ flwr.proto.fab_pb2.GetFabRequest,
41
+ flwr.proto.fab_pb2.GetFabResponse]
42
+ """Get FAB"""
43
+
44
+ PullServerAppInputs: grpc.UnaryUnaryMultiCallable[
45
+ flwr.proto.serverappio_pb2.PullServerAppInputsRequest,
46
+ flwr.proto.serverappio_pb2.PullServerAppInputsResponse]
47
+ """Pull ServerApp inputs"""
48
+
49
+ PushServerAppOutputs: grpc.UnaryUnaryMultiCallable[
50
+ flwr.proto.serverappio_pb2.PushServerAppOutputsRequest,
51
+ flwr.proto.serverappio_pb2.PushServerAppOutputsResponse]
52
+ """Push ServerApp outputs"""
53
+
54
+ UpdateRunStatus: grpc.UnaryUnaryMultiCallable[
55
+ flwr.proto.run_pb2.UpdateRunStatusRequest,
56
+ flwr.proto.run_pb2.UpdateRunStatusResponse]
57
+ """Update the status of a given run"""
58
+
59
+ PushLogs: grpc.UnaryUnaryMultiCallable[
60
+ flwr.proto.log_pb2.PushLogsRequest,
61
+ flwr.proto.log_pb2.PushLogsResponse]
62
+ """Push ServerApp logs"""
63
+
64
+
65
+ class ServerAppIoServicer(metaclass=abc.ABCMeta):
66
+ @abc.abstractmethod
67
+ def CreateRun(self,
68
+ request: flwr.proto.run_pb2.CreateRunRequest,
69
+ context: grpc.ServicerContext,
70
+ ) -> flwr.proto.run_pb2.CreateRunResponse:
71
+ """Request run_id"""
72
+ pass
73
+
74
+ @abc.abstractmethod
75
+ def GetNodes(self,
76
+ request: flwr.proto.serverappio_pb2.GetNodesRequest,
77
+ context: grpc.ServicerContext,
78
+ ) -> flwr.proto.serverappio_pb2.GetNodesResponse:
79
+ """Return a set of nodes"""
80
+ pass
81
+
82
+ @abc.abstractmethod
83
+ def PushTaskIns(self,
84
+ request: flwr.proto.serverappio_pb2.PushTaskInsRequest,
85
+ context: grpc.ServicerContext,
86
+ ) -> flwr.proto.serverappio_pb2.PushTaskInsResponse:
87
+ """Create one or more tasks"""
88
+ pass
89
+
90
+ @abc.abstractmethod
91
+ def PullTaskRes(self,
92
+ request: flwr.proto.serverappio_pb2.PullTaskResRequest,
93
+ context: grpc.ServicerContext,
94
+ ) -> flwr.proto.serverappio_pb2.PullTaskResResponse:
95
+ """Get task results"""
96
+ pass
97
+
98
+ @abc.abstractmethod
99
+ def GetRun(self,
100
+ request: flwr.proto.run_pb2.GetRunRequest,
101
+ context: grpc.ServicerContext,
102
+ ) -> flwr.proto.run_pb2.GetRunResponse:
103
+ """Get run details"""
104
+ pass
105
+
106
+ @abc.abstractmethod
107
+ def GetFab(self,
108
+ request: flwr.proto.fab_pb2.GetFabRequest,
109
+ context: grpc.ServicerContext,
110
+ ) -> flwr.proto.fab_pb2.GetFabResponse:
111
+ """Get FAB"""
112
+ pass
113
+
114
+ @abc.abstractmethod
115
+ def PullServerAppInputs(self,
116
+ request: flwr.proto.serverappio_pb2.PullServerAppInputsRequest,
117
+ context: grpc.ServicerContext,
118
+ ) -> flwr.proto.serverappio_pb2.PullServerAppInputsResponse:
119
+ """Pull ServerApp inputs"""
120
+ pass
121
+
122
+ @abc.abstractmethod
123
+ def PushServerAppOutputs(self,
124
+ request: flwr.proto.serverappio_pb2.PushServerAppOutputsRequest,
125
+ context: grpc.ServicerContext,
126
+ ) -> flwr.proto.serverappio_pb2.PushServerAppOutputsResponse:
127
+ """Push ServerApp outputs"""
128
+ pass
129
+
130
+ @abc.abstractmethod
131
+ def UpdateRunStatus(self,
132
+ request: flwr.proto.run_pb2.UpdateRunStatusRequest,
133
+ context: grpc.ServicerContext,
134
+ ) -> flwr.proto.run_pb2.UpdateRunStatusResponse:
135
+ """Update the status of a given run"""
136
+ pass
137
+
138
+ @abc.abstractmethod
139
+ def PushLogs(self,
140
+ request: flwr.proto.log_pb2.PushLogsRequest,
141
+ context: grpc.ServicerContext,
142
+ ) -> flwr.proto.log_pb2.PushLogsResponse:
143
+ """Push ServerApp logs"""
144
+ pass
145
+
146
+
147
+ def add_ServerAppIoServicer_to_server(servicer: ServerAppIoServicer, server: grpc.Server) -> None: ...