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
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/appio.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
16
+ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
17
+ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x66lwr/proto/appio.proto\x12\nflwr.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\"\x99\x01\n\x16PushAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12*\n\rmessages_list\x18\x02 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\x12\x34\n\x14message_object_trees\x18\x04 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"G\n\x17PushAppMessagesResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t\x12\x17\n\x0fobjects_to_push\x18\x02 \x03(\t\"L\n\x16PullAppMessagesRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x13\n\x0bmessage_ids\x18\x02 \x03(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x04\"{\n\x17PullAppMessagesResponse\x12*\n\rmessages_list\x18\x01 \x03(\x0b\x32\x13.flwr.proto.Message\x12\x34\n\x14message_object_trees\x18\x02 \x03(\x0b\x32\x16.flwr.proto.ObjectTree\"%\n\x14PullAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\"y\n\x15PullAppInputsResponse\x12$\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Fab\"\\\n\x15PushAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\x12$\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x13.flwr.proto.Context\"\x18\n\x16PushAppOutputsResponseb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.appio_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_start=109
28
+ _globals['_PUSHAPPMESSAGESREQUEST']._serialized_end=262
29
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_start=264
30
+ _globals['_PUSHAPPMESSAGESRESPONSE']._serialized_end=335
31
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_start=337
32
+ _globals['_PULLAPPMESSAGESREQUEST']._serialized_end=413
33
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_start=415
34
+ _globals['_PULLAPPMESSAGESRESPONSE']._serialized_end=538
35
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_start=540
36
+ _globals['_PULLAPPINPUTSREQUEST']._serialized_end=577
37
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_start=579
38
+ _globals['_PULLAPPINPUTSRESPONSE']._serialized_end=700
39
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_start=702
40
+ _globals['_PUSHAPPOUTPUTSREQUEST']._serialized_end=794
41
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_start=796
42
+ _globals['_PUSHAPPOUTPUTSRESPONSE']._serialized_end=820
43
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,151 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import flwr.proto.fab_pb2
7
+ import flwr.proto.message_pb2
8
+ import flwr.proto.run_pb2
9
+ import google.protobuf.descriptor
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.message
12
+ import typing
13
+ import typing_extensions
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ class PushAppMessagesRequest(google.protobuf.message.Message):
18
+ """These messages are used by both ServerAppIo and ClientAppIo services
19
+
20
+ PushAppMessages messages
21
+ """
22
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
23
+ TOKEN_FIELD_NUMBER: builtins.int
24
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
25
+ RUN_ID_FIELD_NUMBER: builtins.int
26
+ MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
27
+ token: typing.Text
28
+ @property
29
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
30
+ run_id: builtins.int
31
+ @property
32
+ def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
33
+ def __init__(self,
34
+ *,
35
+ token: typing.Text = ...,
36
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
37
+ run_id: builtins.int = ...,
38
+ message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
39
+ ) -> None: ...
40
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list","run_id",b"run_id","token",b"token"]) -> None: ...
41
+ global___PushAppMessagesRequest = PushAppMessagesRequest
42
+
43
+ class PushAppMessagesResponse(google.protobuf.message.Message):
44
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
45
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
46
+ OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
47
+ @property
48
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
49
+ @property
50
+ def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
51
+ def __init__(self,
52
+ *,
53
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
54
+ objects_to_push: typing.Optional[typing.Iterable[typing.Text]] = ...,
55
+ ) -> None: ...
56
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","objects_to_push",b"objects_to_push"]) -> None: ...
57
+ global___PushAppMessagesResponse = PushAppMessagesResponse
58
+
59
+ class PullAppMessagesRequest(google.protobuf.message.Message):
60
+ """PullAppMessages messages"""
61
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
62
+ TOKEN_FIELD_NUMBER: builtins.int
63
+ MESSAGE_IDS_FIELD_NUMBER: builtins.int
64
+ RUN_ID_FIELD_NUMBER: builtins.int
65
+ token: typing.Text
66
+ @property
67
+ def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
68
+ run_id: builtins.int
69
+ def __init__(self,
70
+ *,
71
+ token: typing.Text = ...,
72
+ message_ids: typing.Optional[typing.Iterable[typing.Text]] = ...,
73
+ run_id: builtins.int = ...,
74
+ ) -> None: ...
75
+ def ClearField(self, field_name: typing_extensions.Literal["message_ids",b"message_ids","run_id",b"run_id","token",b"token"]) -> None: ...
76
+ global___PullAppMessagesRequest = PullAppMessagesRequest
77
+
78
+ class PullAppMessagesResponse(google.protobuf.message.Message):
79
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
80
+ MESSAGES_LIST_FIELD_NUMBER: builtins.int
81
+ MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
82
+ @property
83
+ def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
84
+ @property
85
+ def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
86
+ def __init__(self,
87
+ *,
88
+ messages_list: typing.Optional[typing.Iterable[flwr.proto.message_pb2.Message]] = ...,
89
+ message_object_trees: typing.Optional[typing.Iterable[flwr.proto.message_pb2.ObjectTree]] = ...,
90
+ ) -> None: ...
91
+ def ClearField(self, field_name: typing_extensions.Literal["message_object_trees",b"message_object_trees","messages_list",b"messages_list"]) -> None: ...
92
+ global___PullAppMessagesResponse = PullAppMessagesResponse
93
+
94
+ class PullAppInputsRequest(google.protobuf.message.Message):
95
+ """PullAppInputs messages"""
96
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
97
+ TOKEN_FIELD_NUMBER: builtins.int
98
+ token: typing.Text
99
+ def __init__(self,
100
+ *,
101
+ token: typing.Text = ...,
102
+ ) -> None: ...
103
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
104
+ global___PullAppInputsRequest = PullAppInputsRequest
105
+
106
+ class PullAppInputsResponse(google.protobuf.message.Message):
107
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
108
+ CONTEXT_FIELD_NUMBER: builtins.int
109
+ RUN_FIELD_NUMBER: builtins.int
110
+ FAB_FIELD_NUMBER: builtins.int
111
+ @property
112
+ def context(self) -> flwr.proto.message_pb2.Context: ...
113
+ @property
114
+ def run(self) -> flwr.proto.run_pb2.Run: ...
115
+ @property
116
+ def fab(self) -> flwr.proto.fab_pb2.Fab: ...
117
+ def __init__(self,
118
+ *,
119
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
120
+ run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
121
+ fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
122
+ ) -> None: ...
123
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> builtins.bool: ...
124
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","run",b"run"]) -> None: ...
125
+ global___PullAppInputsResponse = PullAppInputsResponse
126
+
127
+ class PushAppOutputsRequest(google.protobuf.message.Message):
128
+ """PushAppInputs messages"""
129
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
130
+ TOKEN_FIELD_NUMBER: builtins.int
131
+ RUN_ID_FIELD_NUMBER: builtins.int
132
+ CONTEXT_FIELD_NUMBER: builtins.int
133
+ token: typing.Text
134
+ run_id: builtins.int
135
+ @property
136
+ def context(self) -> flwr.proto.message_pb2.Context: ...
137
+ def __init__(self,
138
+ *,
139
+ token: typing.Text = ...,
140
+ run_id: builtins.int = ...,
141
+ context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
142
+ ) -> None: ...
143
+ def HasField(self, field_name: typing_extensions.Literal["context",b"context"]) -> builtins.bool: ...
144
+ def ClearField(self, field_name: typing_extensions.Literal["context",b"context","run_id",b"run_id","token",b"token"]) -> None: ...
145
+ global___PushAppOutputsRequest = PushAppOutputsRequest
146
+
147
+ class PushAppOutputsResponse(google.protobuf.message.Message):
148
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
+ def __init__(self,
150
+ ) -> None: ...
151
+ global___PushAppOutputsResponse = PushAppOutputsResponse
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -0,0 +1,4 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
@@ -15,31 +15,24 @@ _sym_db = _symbol_database.Default()
15
15
  from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
16
16
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
17
17
  from flwr.proto import message_pb2 as flwr_dot_proto_dot_message__pb2
18
+ from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
18
19
 
19
20
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\"W\n\x15\x43lientAppOutputStatus\x12-\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1f.flwr.proto.ClientAppOutputCode\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x11\n\x0fGetTokenRequest\"!\n\x10GetTokenResponse\x12\r\n\x05token\x18\x01 \x01(\x04\"+\n\x1aPullClientAppInputsRequest\x12\r\n\x05token\x18\x01 \x01(\x04\"\xa5\x01\n\x1bPullClientAppInputsResponse\x12$\n\x07message\x18\x01 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Context\x12\x1c\n\x03run\x18\x03 \x01(\x0b\x32\x0f.flwr.proto.Run\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\"x\n\x1bPushClientAppOutputsRequest\x12\r\n\x05token\x18\x01 \x01(\x04\x12$\n\x07message\x18\x02 \x01(\x0b\x32\x13.flwr.proto.Message\x12$\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x13.flwr.proto.Context\"Q\n\x1cPushClientAppOutputsResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32!.flwr.proto.ClientAppOutputStatus*L\n\x13\x43lientAppOutputCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x01\x12\x11\n\rUNKNOWN_ERROR\x10\x02\x32\xad\x02\n\x0b\x43lientAppIo\x12G\n\x08GetToken\x12\x1b.flwr.proto.GetTokenRequest\x1a\x1c.flwr.proto.GetTokenResponse\"\x00\x12h\n\x13PullClientAppInputs\x12&.flwr.proto.PullClientAppInputsRequest\x1a\'.flwr.proto.PullClientAppInputsResponse\"\x00\x12k\n\x14PushClientAppOutputs\x12\'.flwr.proto.PushClientAppOutputsRequest\x1a(.flwr.proto.PushClientAppOutputsResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/clientappio.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x16\x66lwr/proto/appio.proto\"%\n#GetRunIdsWithPendingMessagesRequest\"7\n$GetRunIdsWithPendingMessagesResponse\x12\x0f\n\x07run_ids\x18\x01 \x03(\x04\"%\n\x13RequestTokenRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"%\n\x14RequestTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t2\xaf\x07\n\x0b\x43lientAppIo\x12\x83\x01\n\x1cGetRunIdsWithPendingMessages\x12/.flwr.proto.GetRunIdsWithPendingMessagesRequest\x1a\x30.flwr.proto.GetRunIdsWithPendingMessagesResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\\\n\x13PullClientAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12_\n\x14PushClientAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12X\n\x0bPushMessage\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12X\n\x0bPullMessage\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\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')
21
22
 
22
23
  _globals = globals()
23
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
25
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.clientappio_pb2', _globals)
25
26
  if _descriptor._USE_C_DESCRIPTORS == False:
26
27
  DESCRIPTOR._options = None
27
- _globals['_CLIENTAPPOUTPUTCODE']._serialized_start=675
28
- _globals['_CLIENTAPPOUTPUTCODE']._serialized_end=751
29
- _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_start=114
30
- _globals['_CLIENTAPPOUTPUTSTATUS']._serialized_end=201
31
- _globals['_GETTOKENREQUEST']._serialized_start=203
32
- _globals['_GETTOKENREQUEST']._serialized_end=220
33
- _globals['_GETTOKENRESPONSE']._serialized_start=222
34
- _globals['_GETTOKENRESPONSE']._serialized_end=255
35
- _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_start=257
36
- _globals['_PULLCLIENTAPPINPUTSREQUEST']._serialized_end=300
37
- _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_start=303
38
- _globals['_PULLCLIENTAPPINPUTSRESPONSE']._serialized_end=468
39
- _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_start=470
40
- _globals['_PUSHCLIENTAPPOUTPUTSREQUEST']._serialized_end=590
41
- _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_start=592
42
- _globals['_PUSHCLIENTAPPOUTPUTSRESPONSE']._serialized_end=673
43
- _globals['_CLIENTAPPIO']._serialized_start=754
44
- _globals['_CLIENTAPPIO']._serialized_end=1055
28
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_start=138
29
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESREQUEST']._serialized_end=175
30
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_start=177
31
+ _globals['_GETRUNIDSWITHPENDINGMESSAGESRESPONSE']._serialized_end=232
32
+ _globals['_REQUESTTOKENREQUEST']._serialized_start=234
33
+ _globals['_REQUESTTOKENREQUEST']._serialized_end=271
34
+ _globals['_REQUESTTOKENRESPONSE']._serialized_start=273
35
+ _globals['_REQUESTTOKENRESPONSE']._serialized_end=310
36
+ _globals['_CLIENTAPPIO']._serialized_start=313
37
+ _globals['_CLIENTAPPIO']._serialized_end=1256
45
38
  # @@protoc_insertion_point(module_scope)
@@ -3,130 +3,52 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
- import flwr.proto.fab_pb2
7
- import flwr.proto.message_pb2
8
- import flwr.proto.run_pb2
9
6
  import google.protobuf.descriptor
10
- import google.protobuf.internal.enum_type_wrapper
7
+ import google.protobuf.internal.containers
11
8
  import google.protobuf.message
12
9
  import typing
13
10
  import typing_extensions
14
11
 
15
12
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
13
 
17
- class _ClientAppOutputCode:
18
- ValueType = typing.NewType('ValueType', builtins.int)
19
- V: typing_extensions.TypeAlias = ValueType
20
- class _ClientAppOutputCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ClientAppOutputCode.ValueType], builtins.type):
21
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
22
- SUCCESS: _ClientAppOutputCode.ValueType # 0
23
- DEADLINE_EXCEEDED: _ClientAppOutputCode.ValueType # 1
24
- UNKNOWN_ERROR: _ClientAppOutputCode.ValueType # 2
25
- class ClientAppOutputCode(_ClientAppOutputCode, metaclass=_ClientAppOutputCodeEnumTypeWrapper):
26
- pass
27
-
28
- SUCCESS: ClientAppOutputCode.ValueType # 0
29
- DEADLINE_EXCEEDED: ClientAppOutputCode.ValueType # 1
30
- UNKNOWN_ERROR: ClientAppOutputCode.ValueType # 2
31
- global___ClientAppOutputCode = ClientAppOutputCode
32
-
33
-
34
- class ClientAppOutputStatus(google.protobuf.message.Message):
35
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
36
- CODE_FIELD_NUMBER: builtins.int
37
- MESSAGE_FIELD_NUMBER: builtins.int
38
- code: global___ClientAppOutputCode.ValueType
39
- message: typing.Text
40
- def __init__(self,
41
- *,
42
- code: global___ClientAppOutputCode.ValueType = ...,
43
- message: typing.Text = ...,
44
- ) -> None: ...
45
- def ClearField(self, field_name: typing_extensions.Literal["code",b"code","message",b"message"]) -> None: ...
46
- global___ClientAppOutputStatus = ClientAppOutputStatus
47
-
48
- class GetTokenRequest(google.protobuf.message.Message):
14
+ class GetRunIdsWithPendingMessagesRequest(google.protobuf.message.Message):
49
15
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
50
16
  def __init__(self,
51
17
  ) -> None: ...
52
- global___GetTokenRequest = GetTokenRequest
18
+ global___GetRunIdsWithPendingMessagesRequest = GetRunIdsWithPendingMessagesRequest
53
19
 
54
- class GetTokenResponse(google.protobuf.message.Message):
20
+ class GetRunIdsWithPendingMessagesResponse(google.protobuf.message.Message):
55
21
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
56
- TOKEN_FIELD_NUMBER: builtins.int
57
- token: builtins.int
58
- def __init__(self,
59
- *,
60
- token: builtins.int = ...,
61
- ) -> None: ...
62
- def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
63
- global___GetTokenResponse = GetTokenResponse
64
-
65
- class PullClientAppInputsRequest(google.protobuf.message.Message):
66
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
67
- TOKEN_FIELD_NUMBER: builtins.int
68
- token: builtins.int
69
- def __init__(self,
70
- *,
71
- token: builtins.int = ...,
72
- ) -> None: ...
73
- def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
74
- global___PullClientAppInputsRequest = PullClientAppInputsRequest
75
-
76
- class PullClientAppInputsResponse(google.protobuf.message.Message):
77
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
78
- MESSAGE_FIELD_NUMBER: builtins.int
79
- CONTEXT_FIELD_NUMBER: builtins.int
80
- RUN_FIELD_NUMBER: builtins.int
81
- FAB_FIELD_NUMBER: builtins.int
82
- @property
83
- def message(self) -> flwr.proto.message_pb2.Message: ...
84
- @property
85
- def context(self) -> flwr.proto.message_pb2.Context: ...
22
+ RUN_IDS_FIELD_NUMBER: builtins.int
86
23
  @property
87
- def run(self) -> flwr.proto.run_pb2.Run: ...
88
- @property
89
- def fab(self) -> flwr.proto.fab_pb2.Fab: ...
24
+ def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
25
+ """List of run IDs"""
26
+ pass
90
27
  def __init__(self,
91
28
  *,
92
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
93
- context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
94
- run: typing.Optional[flwr.proto.run_pb2.Run] = ...,
95
- fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
29
+ run_ids: typing.Optional[typing.Iterable[builtins.int]] = ...,
96
30
  ) -> None: ...
97
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> builtins.bool: ...
98
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","fab",b"fab","message",b"message","run",b"run"]) -> None: ...
99
- global___PullClientAppInputsResponse = PullClientAppInputsResponse
31
+ def ClearField(self, field_name: typing_extensions.Literal["run_ids",b"run_ids"]) -> None: ...
32
+ global___GetRunIdsWithPendingMessagesResponse = GetRunIdsWithPendingMessagesResponse
100
33
 
101
- class PushClientAppOutputsRequest(google.protobuf.message.Message):
34
+ class RequestTokenRequest(google.protobuf.message.Message):
102
35
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
103
- TOKEN_FIELD_NUMBER: builtins.int
104
- MESSAGE_FIELD_NUMBER: builtins.int
105
- CONTEXT_FIELD_NUMBER: builtins.int
106
- token: builtins.int
107
- @property
108
- def message(self) -> flwr.proto.message_pb2.Message: ...
109
- @property
110
- def context(self) -> flwr.proto.message_pb2.Context: ...
36
+ RUN_ID_FIELD_NUMBER: builtins.int
37
+ run_id: builtins.int
111
38
  def __init__(self,
112
39
  *,
113
- token: builtins.int = ...,
114
- message: typing.Optional[flwr.proto.message_pb2.Message] = ...,
115
- context: typing.Optional[flwr.proto.message_pb2.Context] = ...,
40
+ run_id: builtins.int = ...,
116
41
  ) -> None: ...
117
- def HasField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message"]) -> builtins.bool: ...
118
- def ClearField(self, field_name: typing_extensions.Literal["context",b"context","message",b"message","token",b"token"]) -> None: ...
119
- global___PushClientAppOutputsRequest = PushClientAppOutputsRequest
42
+ def ClearField(self, field_name: typing_extensions.Literal["run_id",b"run_id"]) -> None: ...
43
+ global___RequestTokenRequest = RequestTokenRequest
120
44
 
121
- class PushClientAppOutputsResponse(google.protobuf.message.Message):
45
+ class RequestTokenResponse(google.protobuf.message.Message):
122
46
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
123
- STATUS_FIELD_NUMBER: builtins.int
124
- @property
125
- def status(self) -> global___ClientAppOutputStatus: ...
47
+ TOKEN_FIELD_NUMBER: builtins.int
48
+ token: typing.Text
126
49
  def __init__(self,
127
50
  *,
128
- status: typing.Optional[global___ClientAppOutputStatus] = ...,
51
+ token: typing.Text = ...,
129
52
  ) -> None: ...
130
- def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
131
- def ClearField(self, field_name: typing_extensions.Literal["status",b"status"]) -> None: ...
132
- global___PushClientAppOutputsResponse = PushClientAppOutputsResponse
53
+ def ClearField(self, field_name: typing_extensions.Literal["token",b"token"]) -> None: ...
54
+ global___RequestTokenResponse = RequestTokenResponse