flwr 1.22.0__py3-none-any.whl → 1.24.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 (301) hide show
  1. flwr/__init__.py +16 -5
  2. flwr/app/error.py +2 -2
  3. flwr/app/exception.py +3 -3
  4. flwr/cli/app.py +34 -1
  5. flwr/cli/app_cmd/__init__.py +23 -0
  6. flwr/cli/app_cmd/publish.py +285 -0
  7. flwr/cli/app_cmd/review.py +252 -0
  8. flwr/cli/auth_plugin/__init__.py +15 -6
  9. flwr/cli/auth_plugin/auth_plugin.py +94 -0
  10. flwr/cli/auth_plugin/noop_auth_plugin.py +101 -0
  11. flwr/cli/auth_plugin/oidc_cli_plugin.py +46 -32
  12. flwr/cli/build.py +166 -53
  13. flwr/cli/{cli_user_auth_interceptor.py → cli_account_auth_interceptor.py} +29 -11
  14. flwr/cli/config_utils.py +101 -13
  15. flwr/cli/federation/__init__.py +24 -0
  16. flwr/cli/federation/ls.py +140 -0
  17. flwr/cli/federation/show.py +317 -0
  18. flwr/cli/install.py +91 -13
  19. flwr/cli/log.py +54 -11
  20. flwr/cli/login/login.py +41 -27
  21. flwr/cli/ls.py +177 -133
  22. flwr/cli/new/new.py +175 -40
  23. flwr/cli/new/templates/app/code/task.pytorch.py.tpl +1 -0
  24. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  25. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  26. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  27. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  28. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  29. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  30. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -3
  31. flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +1 -1
  32. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  33. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
  34. flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +1 -1
  35. flwr/cli/pull.py +12 -7
  36. flwr/cli/run/run.py +82 -31
  37. flwr/cli/run_utils.py +130 -0
  38. flwr/cli/stop.py +27 -9
  39. flwr/cli/supernode/__init__.py +25 -0
  40. flwr/cli/supernode/ls.py +268 -0
  41. flwr/cli/supernode/register.py +190 -0
  42. flwr/cli/supernode/unregister.py +140 -0
  43. flwr/cli/utils.py +464 -81
  44. flwr/client/__init__.py +2 -1
  45. flwr/client/dpfedavg_numpy_client.py +4 -1
  46. flwr/client/grpc_adapter_client/connection.py +12 -15
  47. flwr/client/grpc_rere_client/connection.py +68 -41
  48. flwr/client/grpc_rere_client/grpc_adapter.py +34 -14
  49. flwr/client/grpc_rere_client/{client_interceptor.py → node_auth_client_interceptor.py} +5 -7
  50. flwr/client/message_handler/message_handler.py +2 -2
  51. flwr/client/mod/secure_aggregation/secaggplus_mod.py +10 -8
  52. flwr/client/numpy_client.py +1 -1
  53. flwr/client/rest_client/connection.py +94 -51
  54. flwr/client/run_info_store.py +4 -5
  55. flwr/client/typing.py +1 -1
  56. flwr/clientapp/__init__.py +1 -2
  57. flwr/{client → clientapp}/client_app.py +9 -10
  58. flwr/clientapp/mod/centraldp_mods.py +16 -17
  59. flwr/clientapp/mod/localdp_mod.py +8 -9
  60. flwr/clientapp/typing.py +1 -1
  61. flwr/{client/clientapp → clientapp}/utils.py +4 -4
  62. flwr/common/address.py +1 -2
  63. flwr/common/args.py +3 -4
  64. flwr/common/config.py +13 -16
  65. flwr/common/constant.py +56 -13
  66. flwr/common/differential_privacy.py +3 -4
  67. flwr/common/event_log_plugin/event_log_plugin.py +3 -4
  68. flwr/common/exit/exit.py +15 -2
  69. flwr/common/exit/exit_code.py +39 -10
  70. flwr/common/exit/exit_handler.py +6 -2
  71. flwr/common/exit/signal_handler.py +5 -5
  72. flwr/common/grpc.py +6 -6
  73. flwr/common/inflatable_protobuf_utils.py +1 -1
  74. flwr/common/inflatable_utils.py +48 -31
  75. flwr/common/logger.py +19 -19
  76. flwr/common/message.py +4 -4
  77. flwr/common/object_ref.py +7 -7
  78. flwr/common/record/array.py +6 -6
  79. flwr/common/record/arrayrecord.py +18 -21
  80. flwr/common/record/configrecord.py +3 -3
  81. flwr/common/record/recorddict.py +5 -5
  82. flwr/common/record/typeddict.py +9 -2
  83. flwr/common/recorddict_compat.py +7 -10
  84. flwr/common/retry_invoker.py +20 -20
  85. flwr/common/secure_aggregation/crypto/symmetric_encryption.py +1 -89
  86. flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
  87. flwr/common/serde.py +9 -6
  88. flwr/common/serde_utils.py +2 -2
  89. flwr/common/telemetry.py +9 -5
  90. flwr/common/typing.py +59 -43
  91. flwr/compat/client/app.py +39 -38
  92. flwr/compat/client/grpc_client/connection.py +13 -13
  93. flwr/compat/server/app.py +5 -6
  94. flwr/proto/appio_pb2.py +13 -3
  95. flwr/proto/appio_pb2.pyi +134 -65
  96. flwr/proto/appio_pb2_grpc.py +20 -0
  97. flwr/proto/appio_pb2_grpc.pyi +27 -0
  98. flwr/proto/clientappio_pb2.py +17 -7
  99. flwr/proto/clientappio_pb2.pyi +15 -0
  100. flwr/proto/clientappio_pb2_grpc.py +206 -40
  101. flwr/proto/clientappio_pb2_grpc.pyi +168 -53
  102. flwr/proto/control_pb2.py +72 -40
  103. flwr/proto/control_pb2.pyi +319 -87
  104. flwr/proto/control_pb2_grpc.py +339 -28
  105. flwr/proto/control_pb2_grpc.pyi +209 -37
  106. flwr/proto/error_pb2.py +13 -3
  107. flwr/proto/error_pb2.pyi +24 -6
  108. flwr/proto/error_pb2_grpc.py +20 -0
  109. flwr/proto/error_pb2_grpc.pyi +27 -0
  110. flwr/proto/fab_pb2.py +24 -10
  111. flwr/proto/fab_pb2.pyi +68 -20
  112. flwr/proto/fab_pb2_grpc.py +20 -0
  113. flwr/proto/fab_pb2_grpc.pyi +27 -0
  114. flwr/proto/federation_pb2.py +38 -0
  115. flwr/proto/federation_pb2.pyi +56 -0
  116. flwr/proto/federation_pb2_grpc.py +24 -0
  117. flwr/proto/federation_pb2_grpc.pyi +31 -0
  118. flwr/proto/fleet_pb2.py +45 -27
  119. flwr/proto/fleet_pb2.pyi +186 -70
  120. flwr/proto/fleet_pb2_grpc.py +277 -66
  121. flwr/proto/fleet_pb2_grpc.pyi +201 -55
  122. flwr/proto/grpcadapter_pb2.py +14 -4
  123. flwr/proto/grpcadapter_pb2.pyi +38 -16
  124. flwr/proto/grpcadapter_pb2_grpc.py +35 -4
  125. flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
  126. flwr/proto/heartbeat_pb2.py +17 -7
  127. flwr/proto/heartbeat_pb2.pyi +51 -22
  128. flwr/proto/heartbeat_pb2_grpc.py +20 -0
  129. flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
  130. flwr/proto/log_pb2.py +13 -3
  131. flwr/proto/log_pb2.pyi +34 -11
  132. flwr/proto/log_pb2_grpc.py +20 -0
  133. flwr/proto/log_pb2_grpc.pyi +27 -0
  134. flwr/proto/message_pb2.py +15 -5
  135. flwr/proto/message_pb2.pyi +154 -86
  136. flwr/proto/message_pb2_grpc.py +20 -0
  137. flwr/proto/message_pb2_grpc.pyi +27 -0
  138. flwr/proto/node_pb2.py +16 -4
  139. flwr/proto/node_pb2.pyi +77 -4
  140. flwr/proto/node_pb2_grpc.py +20 -0
  141. flwr/proto/node_pb2_grpc.pyi +27 -0
  142. flwr/proto/recorddict_pb2.py +13 -3
  143. flwr/proto/recorddict_pb2.pyi +184 -107
  144. flwr/proto/recorddict_pb2_grpc.py +20 -0
  145. flwr/proto/recorddict_pb2_grpc.pyi +27 -0
  146. flwr/proto/run_pb2.py +40 -31
  147. flwr/proto/run_pb2.pyi +149 -84
  148. flwr/proto/run_pb2_grpc.py +20 -0
  149. flwr/proto/run_pb2_grpc.pyi +27 -0
  150. flwr/proto/serverappio_pb2.py +13 -3
  151. flwr/proto/serverappio_pb2.pyi +32 -8
  152. flwr/proto/serverappio_pb2_grpc.py +246 -65
  153. flwr/proto/serverappio_pb2_grpc.pyi +221 -85
  154. flwr/proto/simulationio_pb2.py +16 -8
  155. flwr/proto/simulationio_pb2.pyi +15 -0
  156. flwr/proto/simulationio_pb2_grpc.py +162 -41
  157. flwr/proto/simulationio_pb2_grpc.pyi +149 -55
  158. flwr/proto/transport_pb2.py +20 -10
  159. flwr/proto/transport_pb2.pyi +249 -160
  160. flwr/proto/transport_pb2_grpc.py +35 -4
  161. flwr/proto/transport_pb2_grpc.pyi +38 -8
  162. flwr/server/app.py +173 -127
  163. flwr/server/client_manager.py +4 -5
  164. flwr/server/client_proxy.py +10 -11
  165. flwr/server/compat/app.py +4 -5
  166. flwr/server/compat/app_utils.py +2 -1
  167. flwr/server/compat/grid_client_proxy.py +10 -12
  168. flwr/server/compat/legacy_context.py +3 -4
  169. flwr/server/fleet_event_log_interceptor.py +2 -1
  170. flwr/server/grid/grid.py +2 -3
  171. flwr/server/grid/grpc_grid.py +10 -8
  172. flwr/server/grid/inmemory_grid.py +4 -4
  173. flwr/server/run_serverapp.py +2 -3
  174. flwr/server/server.py +34 -39
  175. flwr/server/server_app.py +7 -8
  176. flwr/server/server_config.py +1 -2
  177. flwr/server/serverapp/app.py +34 -28
  178. flwr/server/serverapp_components.py +4 -5
  179. flwr/server/strategy/aggregate.py +9 -8
  180. flwr/server/strategy/bulyan.py +13 -11
  181. flwr/server/strategy/dp_adaptive_clipping.py +16 -20
  182. flwr/server/strategy/dp_fixed_clipping.py +12 -17
  183. flwr/server/strategy/dpfedavg_adaptive.py +3 -4
  184. flwr/server/strategy/dpfedavg_fixed.py +6 -10
  185. flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
  186. flwr/server/strategy/fedadagrad.py +18 -14
  187. flwr/server/strategy/fedadam.py +16 -14
  188. flwr/server/strategy/fedavg.py +16 -17
  189. flwr/server/strategy/fedavg_android.py +15 -15
  190. flwr/server/strategy/fedavgm.py +21 -18
  191. flwr/server/strategy/fedmedian.py +2 -3
  192. flwr/server/strategy/fedopt.py +11 -10
  193. flwr/server/strategy/fedprox.py +10 -9
  194. flwr/server/strategy/fedtrimmedavg.py +12 -11
  195. flwr/server/strategy/fedxgb_bagging.py +13 -11
  196. flwr/server/strategy/fedxgb_cyclic.py +6 -6
  197. flwr/server/strategy/fedxgb_nn_avg.py +4 -4
  198. flwr/server/strategy/fedyogi.py +16 -14
  199. flwr/server/strategy/krum.py +12 -11
  200. flwr/server/strategy/qfedavg.py +16 -15
  201. flwr/server/strategy/strategy.py +6 -9
  202. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +19 -8
  203. flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
  204. flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
  205. flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
  206. flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
  207. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +136 -42
  208. flwr/server/superlink/fleet/grpc_rere/{server_interceptor.py → node_auth_server_interceptor.py} +28 -51
  209. flwr/server/superlink/fleet/message_handler/message_handler.py +100 -49
  210. flwr/server/superlink/fleet/rest_rere/rest_api.py +54 -33
  211. flwr/server/superlink/fleet/vce/backend/backend.py +2 -2
  212. flwr/server/superlink/fleet/vce/backend/raybackend.py +6 -6
  213. flwr/server/superlink/fleet/vce/vce_api.py +32 -13
  214. flwr/server/superlink/linkstate/in_memory_linkstate.py +266 -207
  215. flwr/server/superlink/linkstate/linkstate.py +161 -62
  216. flwr/server/superlink/linkstate/linkstate_factory.py +24 -6
  217. flwr/server/superlink/linkstate/sqlite_linkstate.py +698 -638
  218. flwr/server/superlink/linkstate/utils.py +9 -60
  219. flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
  220. flwr/server/superlink/serverappio/serverappio_servicer.py +28 -23
  221. flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
  222. flwr/server/superlink/simulation/simulationio_servicer.py +19 -14
  223. flwr/server/superlink/utils.py +4 -6
  224. flwr/server/typing.py +1 -1
  225. flwr/server/utils/tensorboard.py +15 -8
  226. flwr/server/utils/validator.py +2 -3
  227. flwr/server/workflow/default_workflows.py +5 -5
  228. flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
  229. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +12 -10
  230. flwr/serverapp/strategy/bulyan.py +16 -15
  231. flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
  232. flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
  233. flwr/serverapp/strategy/fedadagrad.py +10 -11
  234. flwr/serverapp/strategy/fedadam.py +10 -11
  235. flwr/serverapp/strategy/fedavg.py +9 -10
  236. flwr/serverapp/strategy/fedavgm.py +17 -16
  237. flwr/serverapp/strategy/fedmedian.py +2 -2
  238. flwr/serverapp/strategy/fedopt.py +10 -11
  239. flwr/serverapp/strategy/fedprox.py +7 -8
  240. flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
  241. flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
  242. flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
  243. flwr/serverapp/strategy/fedyogi.py +9 -11
  244. flwr/serverapp/strategy/krum.py +7 -7
  245. flwr/serverapp/strategy/multikrum.py +9 -9
  246. flwr/serverapp/strategy/qfedavg.py +17 -16
  247. flwr/serverapp/strategy/strategy.py +6 -9
  248. flwr/serverapp/strategy/strategy_utils.py +7 -8
  249. flwr/simulation/app.py +46 -42
  250. flwr/simulation/legacy_app.py +12 -12
  251. flwr/simulation/ray_transport/ray_actor.py +11 -12
  252. flwr/simulation/ray_transport/ray_client_proxy.py +12 -13
  253. flwr/simulation/run_simulation.py +44 -43
  254. flwr/simulation/simulationio_connection.py +4 -4
  255. flwr/supercore/cli/flower_superexec.py +3 -4
  256. flwr/supercore/constant.py +52 -0
  257. flwr/supercore/corestate/corestate.py +24 -3
  258. flwr/supercore/corestate/in_memory_corestate.py +138 -0
  259. flwr/supercore/corestate/sqlite_corestate.py +157 -0
  260. flwr/supercore/ffs/disk_ffs.py +1 -2
  261. flwr/supercore/ffs/ffs.py +1 -2
  262. flwr/supercore/ffs/ffs_factory.py +1 -2
  263. flwr/{common → supercore}/heartbeat.py +20 -25
  264. flwr/supercore/object_store/in_memory_object_store.py +1 -6
  265. flwr/supercore/object_store/object_store.py +1 -2
  266. flwr/supercore/object_store/object_store_factory.py +27 -8
  267. flwr/supercore/object_store/sqlite_object_store.py +253 -0
  268. flwr/{client/clientapp → supercore/primitives}/__init__.py +1 -1
  269. flwr/supercore/primitives/asymmetric.py +117 -0
  270. flwr/supercore/primitives/asymmetric_ed25519.py +175 -0
  271. flwr/supercore/sqlite_mixin.py +159 -0
  272. flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
  273. flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
  274. flwr/supercore/superexec/run_superexec.py +9 -13
  275. flwr/supercore/utils.py +20 -0
  276. flwr/superlink/artifact_provider/artifact_provider.py +1 -2
  277. flwr/{common → superlink}/auth_plugin/__init__.py +6 -6
  278. flwr/superlink/auth_plugin/auth_plugin.py +88 -0
  279. flwr/superlink/auth_plugin/noop_auth_plugin.py +84 -0
  280. flwr/superlink/federation/__init__.py +24 -0
  281. flwr/superlink/federation/federation_manager.py +64 -0
  282. flwr/superlink/federation/noop_federation_manager.py +71 -0
  283. flwr/superlink/servicer/control/{control_user_auth_interceptor.py → control_account_auth_interceptor.py} +41 -32
  284. flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
  285. flwr/superlink/servicer/control/control_grpc.py +18 -17
  286. flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
  287. flwr/superlink/servicer/control/control_servicer.py +239 -63
  288. flwr/supernode/cli/flower_supernode.py +74 -26
  289. flwr/supernode/nodestate/in_memory_nodestate.py +60 -49
  290. flwr/supernode/nodestate/nodestate.py +7 -8
  291. flwr/supernode/nodestate/nodestate_factory.py +7 -4
  292. flwr/supernode/runtime/run_clientapp.py +43 -24
  293. flwr/supernode/servicer/clientappio/clientappio_servicer.py +40 -10
  294. flwr/supernode/start_client_internal.py +175 -51
  295. {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/METADATA +8 -8
  296. flwr-1.24.0.dist-info/RECORD +454 -0
  297. flwr/common/auth_plugin/auth_plugin.py +0 -149
  298. flwr/supercore/object_store/utils.py +0 -43
  299. flwr-1.22.0.dist-info/RECORD +0 -428
  300. {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/WHEEL +0 -0
  301. {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/entry_points.txt +0 -0
@@ -1,20 +1,42 @@
1
1
  """
2
2
  @generated by mypy-protobuf. Do not edit manually!
3
3
  isort:skip_file
4
+ Copyright 2020 Flower Labs GmbH. All Rights Reserved.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ ==============================================================================
4
18
  """
19
+
5
20
  import builtins
21
+ import collections.abc
6
22
  import google.protobuf.descriptor
7
23
  import google.protobuf.internal.containers
8
24
  import google.protobuf.internal.enum_type_wrapper
9
25
  import google.protobuf.message
26
+ import sys
10
27
  import typing
11
- import typing_extensions
28
+
29
+ if sys.version_info >= (3, 10):
30
+ import typing as typing_extensions
31
+ else:
32
+ import typing_extensions
12
33
 
13
34
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
35
 
15
36
  class _Code:
16
- ValueType = typing.NewType('ValueType', builtins.int)
37
+ ValueType = typing.NewType("ValueType", builtins.int)
17
38
  V: typing_extensions.TypeAlias = ValueType
39
+
18
40
  class _CodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Code.ValueType], builtins.type):
19
41
  DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
20
42
  OK: _Code.ValueType # 0
@@ -22,8 +44,8 @@ class _CodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeW
22
44
  GET_PARAMETERS_NOT_IMPLEMENTED: _Code.ValueType # 2
23
45
  FIT_NOT_IMPLEMENTED: _Code.ValueType # 3
24
46
  EVALUATE_NOT_IMPLEMENTED: _Code.ValueType # 4
25
- class Code(_Code, metaclass=_CodeEnumTypeWrapper):
26
- pass
47
+
48
+ class Code(_Code, metaclass=_CodeEnumTypeWrapper): ...
27
49
 
28
50
  OK: Code.ValueType # 0
29
51
  GET_PROPERTIES_NOT_IMPLEMENTED: Code.ValueType # 1
@@ -32,10 +54,10 @@ FIT_NOT_IMPLEMENTED: Code.ValueType # 3
32
54
  EVALUATE_NOT_IMPLEMENTED: Code.ValueType # 4
33
55
  global___Code = Code
34
56
 
35
-
36
57
  class _Reason:
37
- ValueType = typing.NewType('ValueType', builtins.int)
58
+ ValueType = typing.NewType("ValueType", builtins.int)
38
59
  V: typing_extensions.TypeAlias = ValueType
60
+
39
61
  class _ReasonEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Reason.ValueType], builtins.type):
40
62
  DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
41
63
  UNKNOWN: _Reason.ValueType # 0
@@ -43,8 +65,8 @@ class _ReasonEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTyp
43
65
  POWER_DISCONNECTED: _Reason.ValueType # 2
44
66
  WIFI_UNAVAILABLE: _Reason.ValueType # 3
45
67
  ACK: _Reason.ValueType # 4
46
- class Reason(_Reason, metaclass=_ReasonEnumTypeWrapper):
47
- pass
68
+
69
+ class Reason(_Reason, metaclass=_ReasonEnumTypeWrapper): ...
48
70
 
49
71
  UNKNOWN: Reason.ValueType # 0
50
72
  RECONNECT: Reason.ValueType # 1
@@ -53,161 +75,197 @@ WIFI_UNAVAILABLE: Reason.ValueType # 3
53
75
  ACK: Reason.ValueType # 4
54
76
  global___Reason = Reason
55
77
 
56
-
78
+ @typing.final
57
79
  class Status(google.protobuf.message.Message):
58
80
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
81
+
59
82
  CODE_FIELD_NUMBER: builtins.int
60
83
  MESSAGE_FIELD_NUMBER: builtins.int
61
84
  code: global___Code.ValueType
62
- message: typing.Text
63
- def __init__(self,
85
+ message: builtins.str
86
+ def __init__(
87
+ self,
64
88
  *,
65
89
  code: global___Code.ValueType = ...,
66
- message: typing.Text = ...,
67
- ) -> None: ...
68
- def ClearField(self, field_name: typing_extensions.Literal["code",b"code","message",b"message"]) -> None: ...
90
+ message: builtins.str = ...,
91
+ ) -> None: ...
92
+ def ClearField(self, field_name: typing.Literal["code", b"code", "message", b"message"]) -> None: ...
93
+
69
94
  global___Status = Status
70
95
 
96
+ @typing.final
71
97
  class Parameters(google.protobuf.message.Message):
72
98
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
99
+
73
100
  TENSORS_FIELD_NUMBER: builtins.int
74
101
  TENSOR_TYPE_FIELD_NUMBER: builtins.int
102
+ tensor_type: builtins.str
75
103
  @property
76
104
  def tensors(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
77
- tensor_type: typing.Text
78
- def __init__(self,
105
+ def __init__(
106
+ self,
79
107
  *,
80
- tensors: typing.Optional[typing.Iterable[builtins.bytes]] = ...,
81
- tensor_type: typing.Text = ...,
82
- ) -> None: ...
83
- def ClearField(self, field_name: typing_extensions.Literal["tensor_type",b"tensor_type","tensors",b"tensors"]) -> None: ...
108
+ tensors: collections.abc.Iterable[builtins.bytes] | None = ...,
109
+ tensor_type: builtins.str = ...,
110
+ ) -> None: ...
111
+ def ClearField(self, field_name: typing.Literal["tensor_type", b"tensor_type", "tensors", b"tensors"]) -> None: ...
112
+
84
113
  global___Parameters = Parameters
85
114
 
115
+ @typing.final
86
116
  class ServerMessage(google.protobuf.message.Message):
87
117
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
118
+
119
+ @typing.final
88
120
  class ReconnectIns(google.protobuf.message.Message):
89
121
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
122
+
90
123
  SECONDS_FIELD_NUMBER: builtins.int
91
124
  seconds: builtins.int
92
- def __init__(self,
125
+ def __init__(
126
+ self,
93
127
  *,
94
128
  seconds: builtins.int = ...,
95
- ) -> None: ...
96
- def ClearField(self, field_name: typing_extensions.Literal["seconds",b"seconds"]) -> None: ...
129
+ ) -> None: ...
130
+ def ClearField(self, field_name: typing.Literal["seconds", b"seconds"]) -> None: ...
97
131
 
132
+ @typing.final
98
133
  class GetPropertiesIns(google.protobuf.message.Message):
99
134
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
135
+
136
+ @typing.final
100
137
  class ConfigEntry(google.protobuf.message.Message):
101
138
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
139
+
102
140
  KEY_FIELD_NUMBER: builtins.int
103
141
  VALUE_FIELD_NUMBER: builtins.int
104
- key: typing.Text
142
+ key: builtins.str
105
143
  @property
106
144
  def value(self) -> global___Scalar: ...
107
- def __init__(self,
145
+ def __init__(
146
+ self,
108
147
  *,
109
- key: typing.Text = ...,
110
- value: typing.Optional[global___Scalar] = ...,
111
- ) -> None: ...
112
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
113
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
148
+ key: builtins.str = ...,
149
+ value: global___Scalar | None = ...,
150
+ ) -> None: ...
151
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
152
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
114
153
 
115
154
  CONFIG_FIELD_NUMBER: builtins.int
116
155
  @property
117
- def config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
118
- def __init__(self,
156
+ def config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
157
+ def __init__(
158
+ self,
119
159
  *,
120
- config: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
121
- ) -> None: ...
122
- def ClearField(self, field_name: typing_extensions.Literal["config",b"config"]) -> None: ...
160
+ config: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
161
+ ) -> None: ...
162
+ def ClearField(self, field_name: typing.Literal["config", b"config"]) -> None: ...
123
163
 
164
+ @typing.final
124
165
  class GetParametersIns(google.protobuf.message.Message):
125
166
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
167
+
168
+ @typing.final
126
169
  class ConfigEntry(google.protobuf.message.Message):
127
170
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
171
+
128
172
  KEY_FIELD_NUMBER: builtins.int
129
173
  VALUE_FIELD_NUMBER: builtins.int
130
- key: typing.Text
174
+ key: builtins.str
131
175
  @property
132
176
  def value(self) -> global___Scalar: ...
133
- def __init__(self,
177
+ def __init__(
178
+ self,
134
179
  *,
135
- key: typing.Text = ...,
136
- value: typing.Optional[global___Scalar] = ...,
137
- ) -> None: ...
138
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
139
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
180
+ key: builtins.str = ...,
181
+ value: global___Scalar | None = ...,
182
+ ) -> None: ...
183
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
184
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
140
185
 
141
186
  CONFIG_FIELD_NUMBER: builtins.int
142
187
  @property
143
- def config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
144
- def __init__(self,
188
+ def config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
189
+ def __init__(
190
+ self,
145
191
  *,
146
- config: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
147
- ) -> None: ...
148
- def ClearField(self, field_name: typing_extensions.Literal["config",b"config"]) -> None: ...
192
+ config: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
193
+ ) -> None: ...
194
+ def ClearField(self, field_name: typing.Literal["config", b"config"]) -> None: ...
149
195
 
196
+ @typing.final
150
197
  class FitIns(google.protobuf.message.Message):
151
198
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
199
+
200
+ @typing.final
152
201
  class ConfigEntry(google.protobuf.message.Message):
153
202
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
203
+
154
204
  KEY_FIELD_NUMBER: builtins.int
155
205
  VALUE_FIELD_NUMBER: builtins.int
156
- key: typing.Text
206
+ key: builtins.str
157
207
  @property
158
208
  def value(self) -> global___Scalar: ...
159
- def __init__(self,
209
+ def __init__(
210
+ self,
160
211
  *,
161
- key: typing.Text = ...,
162
- value: typing.Optional[global___Scalar] = ...,
163
- ) -> None: ...
164
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
165
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
212
+ key: builtins.str = ...,
213
+ value: global___Scalar | None = ...,
214
+ ) -> None: ...
215
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
216
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
166
217
 
167
218
  PARAMETERS_FIELD_NUMBER: builtins.int
168
219
  CONFIG_FIELD_NUMBER: builtins.int
169
220
  @property
170
221
  def parameters(self) -> global___Parameters: ...
171
222
  @property
172
- def config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
173
- def __init__(self,
223
+ def config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
224
+ def __init__(
225
+ self,
174
226
  *,
175
- parameters: typing.Optional[global___Parameters] = ...,
176
- config: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
177
- ) -> None: ...
178
- def HasField(self, field_name: typing_extensions.Literal["parameters",b"parameters"]) -> builtins.bool: ...
179
- def ClearField(self, field_name: typing_extensions.Literal["config",b"config","parameters",b"parameters"]) -> None: ...
227
+ parameters: global___Parameters | None = ...,
228
+ config: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
229
+ ) -> None: ...
230
+ def HasField(self, field_name: typing.Literal["parameters", b"parameters"]) -> builtins.bool: ...
231
+ def ClearField(self, field_name: typing.Literal["config", b"config", "parameters", b"parameters"]) -> None: ...
180
232
 
233
+ @typing.final
181
234
  class EvaluateIns(google.protobuf.message.Message):
182
235
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
236
+
237
+ @typing.final
183
238
  class ConfigEntry(google.protobuf.message.Message):
184
239
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
240
+
185
241
  KEY_FIELD_NUMBER: builtins.int
186
242
  VALUE_FIELD_NUMBER: builtins.int
187
- key: typing.Text
243
+ key: builtins.str
188
244
  @property
189
245
  def value(self) -> global___Scalar: ...
190
- def __init__(self,
246
+ def __init__(
247
+ self,
191
248
  *,
192
- key: typing.Text = ...,
193
- value: typing.Optional[global___Scalar] = ...,
194
- ) -> None: ...
195
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
196
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
249
+ key: builtins.str = ...,
250
+ value: global___Scalar | None = ...,
251
+ ) -> None: ...
252
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
253
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
197
254
 
198
255
  PARAMETERS_FIELD_NUMBER: builtins.int
199
256
  CONFIG_FIELD_NUMBER: builtins.int
200
257
  @property
201
258
  def parameters(self) -> global___Parameters: ...
202
259
  @property
203
- def config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
204
- def __init__(self,
260
+ def config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
261
+ def __init__(
262
+ self,
205
263
  *,
206
- parameters: typing.Optional[global___Parameters] = ...,
207
- config: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
208
- ) -> None: ...
209
- def HasField(self, field_name: typing_extensions.Literal["parameters",b"parameters"]) -> builtins.bool: ...
210
- def ClearField(self, field_name: typing_extensions.Literal["config",b"config","parameters",b"parameters"]) -> None: ...
264
+ parameters: global___Parameters | None = ...,
265
+ config: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
266
+ ) -> None: ...
267
+ def HasField(self, field_name: typing.Literal["parameters", b"parameters"]) -> builtins.bool: ...
268
+ def ClearField(self, field_name: typing.Literal["config", b"config", "parameters", b"parameters"]) -> None: ...
211
269
 
212
270
  RECONNECT_INS_FIELD_NUMBER: builtins.int
213
271
  GET_PROPERTIES_INS_FIELD_NUMBER: builtins.int
@@ -224,152 +282,180 @@ class ServerMessage(google.protobuf.message.Message):
224
282
  def fit_ins(self) -> global___ServerMessage.FitIns: ...
225
283
  @property
226
284
  def evaluate_ins(self) -> global___ServerMessage.EvaluateIns: ...
227
- def __init__(self,
285
+ def __init__(
286
+ self,
228
287
  *,
229
- reconnect_ins: typing.Optional[global___ServerMessage.ReconnectIns] = ...,
230
- get_properties_ins: typing.Optional[global___ServerMessage.GetPropertiesIns] = ...,
231
- get_parameters_ins: typing.Optional[global___ServerMessage.GetParametersIns] = ...,
232
- fit_ins: typing.Optional[global___ServerMessage.FitIns] = ...,
233
- evaluate_ins: typing.Optional[global___ServerMessage.EvaluateIns] = ...,
234
- ) -> None: ...
235
- def HasField(self, field_name: typing_extensions.Literal["evaluate_ins",b"evaluate_ins","fit_ins",b"fit_ins","get_parameters_ins",b"get_parameters_ins","get_properties_ins",b"get_properties_ins","msg",b"msg","reconnect_ins",b"reconnect_ins"]) -> builtins.bool: ...
236
- def ClearField(self, field_name: typing_extensions.Literal["evaluate_ins",b"evaluate_ins","fit_ins",b"fit_ins","get_parameters_ins",b"get_parameters_ins","get_properties_ins",b"get_properties_ins","msg",b"msg","reconnect_ins",b"reconnect_ins"]) -> None: ...
237
- def WhichOneof(self, oneof_group: typing_extensions.Literal["msg",b"msg"]) -> typing.Optional[typing_extensions.Literal["reconnect_ins","get_properties_ins","get_parameters_ins","fit_ins","evaluate_ins"]]: ...
288
+ reconnect_ins: global___ServerMessage.ReconnectIns | None = ...,
289
+ get_properties_ins: global___ServerMessage.GetPropertiesIns | None = ...,
290
+ get_parameters_ins: global___ServerMessage.GetParametersIns | None = ...,
291
+ fit_ins: global___ServerMessage.FitIns | None = ...,
292
+ evaluate_ins: global___ServerMessage.EvaluateIns | None = ...,
293
+ ) -> None: ...
294
+ def HasField(self, field_name: typing.Literal["evaluate_ins", b"evaluate_ins", "fit_ins", b"fit_ins", "get_parameters_ins", b"get_parameters_ins", "get_properties_ins", b"get_properties_ins", "msg", b"msg", "reconnect_ins", b"reconnect_ins"]) -> builtins.bool: ...
295
+ def ClearField(self, field_name: typing.Literal["evaluate_ins", b"evaluate_ins", "fit_ins", b"fit_ins", "get_parameters_ins", b"get_parameters_ins", "get_properties_ins", b"get_properties_ins", "msg", b"msg", "reconnect_ins", b"reconnect_ins"]) -> None: ...
296
+ def WhichOneof(self, oneof_group: typing.Literal["msg", b"msg"]) -> typing.Literal["reconnect_ins", "get_properties_ins", "get_parameters_ins", "fit_ins", "evaluate_ins"] | None: ...
297
+
238
298
  global___ServerMessage = ServerMessage
239
299
 
300
+ @typing.final
240
301
  class ClientMessage(google.protobuf.message.Message):
241
302
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
303
+
304
+ @typing.final
242
305
  class DisconnectRes(google.protobuf.message.Message):
243
306
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
307
+
244
308
  REASON_FIELD_NUMBER: builtins.int
245
309
  reason: global___Reason.ValueType
246
- def __init__(self,
310
+ def __init__(
311
+ self,
247
312
  *,
248
313
  reason: global___Reason.ValueType = ...,
249
- ) -> None: ...
250
- def ClearField(self, field_name: typing_extensions.Literal["reason",b"reason"]) -> None: ...
314
+ ) -> None: ...
315
+ def ClearField(self, field_name: typing.Literal["reason", b"reason"]) -> None: ...
251
316
 
317
+ @typing.final
252
318
  class GetPropertiesRes(google.protobuf.message.Message):
253
319
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
320
+
321
+ @typing.final
254
322
  class PropertiesEntry(google.protobuf.message.Message):
255
323
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
324
+
256
325
  KEY_FIELD_NUMBER: builtins.int
257
326
  VALUE_FIELD_NUMBER: builtins.int
258
- key: typing.Text
327
+ key: builtins.str
259
328
  @property
260
329
  def value(self) -> global___Scalar: ...
261
- def __init__(self,
330
+ def __init__(
331
+ self,
262
332
  *,
263
- key: typing.Text = ...,
264
- value: typing.Optional[global___Scalar] = ...,
265
- ) -> None: ...
266
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
267
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
333
+ key: builtins.str = ...,
334
+ value: global___Scalar | None = ...,
335
+ ) -> None: ...
336
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
337
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
268
338
 
269
339
  STATUS_FIELD_NUMBER: builtins.int
270
340
  PROPERTIES_FIELD_NUMBER: builtins.int
271
341
  @property
272
342
  def status(self) -> global___Status: ...
273
343
  @property
274
- def properties(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
275
- def __init__(self,
344
+ def properties(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
345
+ def __init__(
346
+ self,
276
347
  *,
277
- status: typing.Optional[global___Status] = ...,
278
- properties: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
279
- ) -> None: ...
280
- def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
281
- def ClearField(self, field_name: typing_extensions.Literal["properties",b"properties","status",b"status"]) -> None: ...
348
+ status: global___Status | None = ...,
349
+ properties: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
350
+ ) -> None: ...
351
+ def HasField(self, field_name: typing.Literal["status", b"status"]) -> builtins.bool: ...
352
+ def ClearField(self, field_name: typing.Literal["properties", b"properties", "status", b"status"]) -> None: ...
282
353
 
354
+ @typing.final
283
355
  class GetParametersRes(google.protobuf.message.Message):
284
356
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
357
+
285
358
  STATUS_FIELD_NUMBER: builtins.int
286
359
  PARAMETERS_FIELD_NUMBER: builtins.int
287
360
  @property
288
361
  def status(self) -> global___Status: ...
289
362
  @property
290
363
  def parameters(self) -> global___Parameters: ...
291
- def __init__(self,
364
+ def __init__(
365
+ self,
292
366
  *,
293
- status: typing.Optional[global___Status] = ...,
294
- parameters: typing.Optional[global___Parameters] = ...,
295
- ) -> None: ...
296
- def HasField(self, field_name: typing_extensions.Literal["parameters",b"parameters","status",b"status"]) -> builtins.bool: ...
297
- def ClearField(self, field_name: typing_extensions.Literal["parameters",b"parameters","status",b"status"]) -> None: ...
367
+ status: global___Status | None = ...,
368
+ parameters: global___Parameters | None = ...,
369
+ ) -> None: ...
370
+ def HasField(self, field_name: typing.Literal["parameters", b"parameters", "status", b"status"]) -> builtins.bool: ...
371
+ def ClearField(self, field_name: typing.Literal["parameters", b"parameters", "status", b"status"]) -> None: ...
298
372
 
373
+ @typing.final
299
374
  class FitRes(google.protobuf.message.Message):
300
375
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
376
+
377
+ @typing.final
301
378
  class MetricsEntry(google.protobuf.message.Message):
302
379
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
380
+
303
381
  KEY_FIELD_NUMBER: builtins.int
304
382
  VALUE_FIELD_NUMBER: builtins.int
305
- key: typing.Text
383
+ key: builtins.str
306
384
  @property
307
385
  def value(self) -> global___Scalar: ...
308
- def __init__(self,
386
+ def __init__(
387
+ self,
309
388
  *,
310
- key: typing.Text = ...,
311
- value: typing.Optional[global___Scalar] = ...,
312
- ) -> None: ...
313
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
314
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
389
+ key: builtins.str = ...,
390
+ value: global___Scalar | None = ...,
391
+ ) -> None: ...
392
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
393
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
315
394
 
316
395
  STATUS_FIELD_NUMBER: builtins.int
317
396
  PARAMETERS_FIELD_NUMBER: builtins.int
318
397
  NUM_EXAMPLES_FIELD_NUMBER: builtins.int
319
398
  METRICS_FIELD_NUMBER: builtins.int
399
+ num_examples: builtins.int
320
400
  @property
321
401
  def status(self) -> global___Status: ...
322
402
  @property
323
403
  def parameters(self) -> global___Parameters: ...
324
- num_examples: builtins.int
325
404
  @property
326
- def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
327
- def __init__(self,
405
+ def metrics(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
406
+ def __init__(
407
+ self,
328
408
  *,
329
- status: typing.Optional[global___Status] = ...,
330
- parameters: typing.Optional[global___Parameters] = ...,
409
+ status: global___Status | None = ...,
410
+ parameters: global___Parameters | None = ...,
331
411
  num_examples: builtins.int = ...,
332
- metrics: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
333
- ) -> None: ...
334
- def HasField(self, field_name: typing_extensions.Literal["parameters",b"parameters","status",b"status"]) -> builtins.bool: ...
335
- def ClearField(self, field_name: typing_extensions.Literal["metrics",b"metrics","num_examples",b"num_examples","parameters",b"parameters","status",b"status"]) -> None: ...
412
+ metrics: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
413
+ ) -> None: ...
414
+ def HasField(self, field_name: typing.Literal["parameters", b"parameters", "status", b"status"]) -> builtins.bool: ...
415
+ def ClearField(self, field_name: typing.Literal["metrics", b"metrics", "num_examples", b"num_examples", "parameters", b"parameters", "status", b"status"]) -> None: ...
336
416
 
417
+ @typing.final
337
418
  class EvaluateRes(google.protobuf.message.Message):
338
419
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
420
+
421
+ @typing.final
339
422
  class MetricsEntry(google.protobuf.message.Message):
340
423
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
424
+
341
425
  KEY_FIELD_NUMBER: builtins.int
342
426
  VALUE_FIELD_NUMBER: builtins.int
343
- key: typing.Text
427
+ key: builtins.str
344
428
  @property
345
429
  def value(self) -> global___Scalar: ...
346
- def __init__(self,
430
+ def __init__(
431
+ self,
347
432
  *,
348
- key: typing.Text = ...,
349
- value: typing.Optional[global___Scalar] = ...,
350
- ) -> None: ...
351
- def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
352
- def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
433
+ key: builtins.str = ...,
434
+ value: global___Scalar | None = ...,
435
+ ) -> None: ...
436
+ def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
437
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
353
438
 
354
439
  STATUS_FIELD_NUMBER: builtins.int
355
440
  LOSS_FIELD_NUMBER: builtins.int
356
441
  NUM_EXAMPLES_FIELD_NUMBER: builtins.int
357
442
  METRICS_FIELD_NUMBER: builtins.int
358
- @property
359
- def status(self) -> global___Status: ...
360
443
  loss: builtins.float
361
444
  num_examples: builtins.int
362
445
  @property
363
- def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___Scalar]: ...
364
- def __init__(self,
446
+ def status(self) -> global___Status: ...
447
+ @property
448
+ def metrics(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Scalar]: ...
449
+ def __init__(
450
+ self,
365
451
  *,
366
- status: typing.Optional[global___Status] = ...,
452
+ status: global___Status | None = ...,
367
453
  loss: builtins.float = ...,
368
454
  num_examples: builtins.int = ...,
369
- metrics: typing.Optional[typing.Mapping[typing.Text, global___Scalar]] = ...,
370
- ) -> None: ...
371
- def HasField(self, field_name: typing_extensions.Literal["status",b"status"]) -> builtins.bool: ...
372
- def ClearField(self, field_name: typing_extensions.Literal["loss",b"loss","metrics",b"metrics","num_examples",b"num_examples","status",b"status"]) -> None: ...
455
+ metrics: collections.abc.Mapping[builtins.str, global___Scalar] | None = ...,
456
+ ) -> None: ...
457
+ def HasField(self, field_name: typing.Literal["status", b"status"]) -> builtins.bool: ...
458
+ def ClearField(self, field_name: typing.Literal["loss", b"loss", "metrics", b"metrics", "num_examples", b"num_examples", "status", b"status"]) -> None: ...
373
459
 
374
460
  DISCONNECT_RES_FIELD_NUMBER: builtins.int
375
461
  GET_PROPERTIES_RES_FIELD_NUMBER: builtins.int
@@ -386,21 +472,25 @@ class ClientMessage(google.protobuf.message.Message):
386
472
  def fit_res(self) -> global___ClientMessage.FitRes: ...
387
473
  @property
388
474
  def evaluate_res(self) -> global___ClientMessage.EvaluateRes: ...
389
- def __init__(self,
475
+ def __init__(
476
+ self,
390
477
  *,
391
- disconnect_res: typing.Optional[global___ClientMessage.DisconnectRes] = ...,
392
- get_properties_res: typing.Optional[global___ClientMessage.GetPropertiesRes] = ...,
393
- get_parameters_res: typing.Optional[global___ClientMessage.GetParametersRes] = ...,
394
- fit_res: typing.Optional[global___ClientMessage.FitRes] = ...,
395
- evaluate_res: typing.Optional[global___ClientMessage.EvaluateRes] = ...,
396
- ) -> None: ...
397
- def HasField(self, field_name: typing_extensions.Literal["disconnect_res",b"disconnect_res","evaluate_res",b"evaluate_res","fit_res",b"fit_res","get_parameters_res",b"get_parameters_res","get_properties_res",b"get_properties_res","msg",b"msg"]) -> builtins.bool: ...
398
- def ClearField(self, field_name: typing_extensions.Literal["disconnect_res",b"disconnect_res","evaluate_res",b"evaluate_res","fit_res",b"fit_res","get_parameters_res",b"get_parameters_res","get_properties_res",b"get_properties_res","msg",b"msg"]) -> None: ...
399
- def WhichOneof(self, oneof_group: typing_extensions.Literal["msg",b"msg"]) -> typing.Optional[typing_extensions.Literal["disconnect_res","get_properties_res","get_parameters_res","fit_res","evaluate_res"]]: ...
478
+ disconnect_res: global___ClientMessage.DisconnectRes | None = ...,
479
+ get_properties_res: global___ClientMessage.GetPropertiesRes | None = ...,
480
+ get_parameters_res: global___ClientMessage.GetParametersRes | None = ...,
481
+ fit_res: global___ClientMessage.FitRes | None = ...,
482
+ evaluate_res: global___ClientMessage.EvaluateRes | None = ...,
483
+ ) -> None: ...
484
+ def HasField(self, field_name: typing.Literal["disconnect_res", b"disconnect_res", "evaluate_res", b"evaluate_res", "fit_res", b"fit_res", "get_parameters_res", b"get_parameters_res", "get_properties_res", b"get_properties_res", "msg", b"msg"]) -> builtins.bool: ...
485
+ def ClearField(self, field_name: typing.Literal["disconnect_res", b"disconnect_res", "evaluate_res", b"evaluate_res", "fit_res", b"fit_res", "get_parameters_res", b"get_parameters_res", "get_properties_res", b"get_properties_res", "msg", b"msg"]) -> None: ...
486
+ def WhichOneof(self, oneof_group: typing.Literal["msg", b"msg"]) -> typing.Literal["disconnect_res", "get_properties_res", "get_parameters_res", "fit_res", "evaluate_res"] | None: ...
487
+
400
488
  global___ClientMessage = ClientMessage
401
489
 
490
+ @typing.final
402
491
  class Scalar(google.protobuf.message.Message):
403
492
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
493
+
404
494
  DOUBLE_FIELD_NUMBER: builtins.int
405
495
  UINT64_FIELD_NUMBER: builtins.int
406
496
  SINT64_FIELD_NUMBER: builtins.int
@@ -414,29 +504,28 @@ class Scalar(google.protobuf.message.Message):
414
504
  int64 int64 = 4;
415
505
  uint32 uint32 = 5;
416
506
  """
417
-
418
507
  sint64: builtins.int
419
508
  """sint32 sint32 = 7;"""
420
-
421
509
  bool: builtins.bool
422
510
  """fixed32 fixed32 = 9;
423
511
  fixed64 fixed64 = 10;
424
512
  sfixed32 sfixed32 = 11;
425
513
  sfixed64 sfixed64 = 12;
426
514
  """
427
-
428
- string: typing.Text
515
+ string: builtins.str
429
516
  bytes: builtins.bytes
430
- def __init__(self,
517
+ def __init__(
518
+ self,
431
519
  *,
432
520
  double: builtins.float = ...,
433
521
  uint64: builtins.int = ...,
434
522
  sint64: builtins.int = ...,
435
523
  bool: builtins.bool = ...,
436
- string: typing.Text = ...,
524
+ string: builtins.str = ...,
437
525
  bytes: builtins.bytes = ...,
438
- ) -> None: ...
439
- def HasField(self, field_name: typing_extensions.Literal["bool",b"bool","bytes",b"bytes","double",b"double","scalar",b"scalar","sint64",b"sint64","string",b"string","uint64",b"uint64"]) -> builtins.bool: ...
440
- def ClearField(self, field_name: typing_extensions.Literal["bool",b"bool","bytes",b"bytes","double",b"double","scalar",b"scalar","sint64",b"sint64","string",b"string","uint64",b"uint64"]) -> None: ...
441
- def WhichOneof(self, oneof_group: typing_extensions.Literal["scalar",b"scalar"]) -> typing.Optional[typing_extensions.Literal["double","uint64","sint64","bool","string","bytes"]]: ...
526
+ ) -> None: ...
527
+ def HasField(self, field_name: typing.Literal["bool", b"bool", "bytes", b"bytes", "double", b"double", "scalar", b"scalar", "sint64", b"sint64", "string", b"string", "uint64", b"uint64"]) -> builtins.bool: ...
528
+ def ClearField(self, field_name: typing.Literal["bool", b"bool", "bytes", b"bytes", "double", b"double", "scalar", b"scalar", "sint64", b"sint64", "string", b"string", "uint64", b"uint64"]) -> None: ...
529
+ def WhichOneof(self, oneof_group: typing.Literal["scalar", b"scalar"]) -> typing.Literal["double", "uint64", "sint64", "bool", "string", "bytes"] | None: ...
530
+
442
531
  global___Scalar = Scalar