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.
- flwr/__init__.py +16 -5
- flwr/app/error.py +2 -2
- flwr/app/exception.py +3 -3
- flwr/cli/app.py +34 -1
- flwr/cli/app_cmd/__init__.py +23 -0
- flwr/cli/app_cmd/publish.py +285 -0
- flwr/cli/app_cmd/review.py +252 -0
- flwr/cli/auth_plugin/__init__.py +15 -6
- flwr/cli/auth_plugin/auth_plugin.py +94 -0
- flwr/cli/auth_plugin/noop_auth_plugin.py +101 -0
- flwr/cli/auth_plugin/oidc_cli_plugin.py +46 -32
- flwr/cli/build.py +166 -53
- flwr/cli/{cli_user_auth_interceptor.py → cli_account_auth_interceptor.py} +29 -11
- flwr/cli/config_utils.py +101 -13
- flwr/cli/federation/__init__.py +24 -0
- flwr/cli/federation/ls.py +140 -0
- flwr/cli/federation/show.py +317 -0
- flwr/cli/install.py +91 -13
- flwr/cli/log.py +54 -11
- flwr/cli/login/login.py +41 -27
- flwr/cli/ls.py +177 -133
- flwr/cli/new/new.py +175 -40
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +1 -0
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +3 -3
- flwr/cli/new/templates/app/pyproject.pytorch_legacy_api.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +2 -2
- flwr/cli/new/templates/app/pyproject.xgboost.toml.tpl +1 -1
- flwr/cli/pull.py +12 -7
- flwr/cli/run/run.py +82 -31
- flwr/cli/run_utils.py +130 -0
- flwr/cli/stop.py +27 -9
- flwr/cli/supernode/__init__.py +25 -0
- flwr/cli/supernode/ls.py +268 -0
- flwr/cli/supernode/register.py +190 -0
- flwr/cli/supernode/unregister.py +140 -0
- flwr/cli/utils.py +464 -81
- flwr/client/__init__.py +2 -1
- flwr/client/dpfedavg_numpy_client.py +4 -1
- flwr/client/grpc_adapter_client/connection.py +12 -15
- flwr/client/grpc_rere_client/connection.py +68 -41
- flwr/client/grpc_rere_client/grpc_adapter.py +34 -14
- flwr/client/grpc_rere_client/{client_interceptor.py → node_auth_client_interceptor.py} +5 -7
- flwr/client/message_handler/message_handler.py +2 -2
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +10 -8
- flwr/client/numpy_client.py +1 -1
- flwr/client/rest_client/connection.py +94 -51
- flwr/client/run_info_store.py +4 -5
- flwr/client/typing.py +1 -1
- flwr/clientapp/__init__.py +1 -2
- flwr/{client → clientapp}/client_app.py +9 -10
- flwr/clientapp/mod/centraldp_mods.py +16 -17
- flwr/clientapp/mod/localdp_mod.py +8 -9
- flwr/clientapp/typing.py +1 -1
- flwr/{client/clientapp → clientapp}/utils.py +4 -4
- flwr/common/address.py +1 -2
- flwr/common/args.py +3 -4
- flwr/common/config.py +13 -16
- flwr/common/constant.py +56 -13
- flwr/common/differential_privacy.py +3 -4
- flwr/common/event_log_plugin/event_log_plugin.py +3 -4
- flwr/common/exit/exit.py +15 -2
- flwr/common/exit/exit_code.py +39 -10
- flwr/common/exit/exit_handler.py +6 -2
- flwr/common/exit/signal_handler.py +5 -5
- flwr/common/grpc.py +6 -6
- flwr/common/inflatable_protobuf_utils.py +1 -1
- flwr/common/inflatable_utils.py +48 -31
- flwr/common/logger.py +19 -19
- flwr/common/message.py +4 -4
- flwr/common/object_ref.py +7 -7
- flwr/common/record/array.py +6 -6
- flwr/common/record/arrayrecord.py +18 -21
- flwr/common/record/configrecord.py +3 -3
- flwr/common/record/recorddict.py +5 -5
- flwr/common/record/typeddict.py +9 -2
- flwr/common/recorddict_compat.py +7 -10
- flwr/common/retry_invoker.py +20 -20
- flwr/common/secure_aggregation/crypto/symmetric_encryption.py +1 -89
- flwr/common/secure_aggregation/ndarrays_arithmetic.py +3 -3
- flwr/common/serde.py +9 -6
- flwr/common/serde_utils.py +2 -2
- flwr/common/telemetry.py +9 -5
- flwr/common/typing.py +59 -43
- flwr/compat/client/app.py +39 -38
- flwr/compat/client/grpc_client/connection.py +13 -13
- flwr/compat/server/app.py +5 -6
- flwr/proto/appio_pb2.py +13 -3
- flwr/proto/appio_pb2.pyi +134 -65
- flwr/proto/appio_pb2_grpc.py +20 -0
- flwr/proto/appio_pb2_grpc.pyi +27 -0
- flwr/proto/clientappio_pb2.py +17 -7
- flwr/proto/clientappio_pb2.pyi +15 -0
- flwr/proto/clientappio_pb2_grpc.py +206 -40
- flwr/proto/clientappio_pb2_grpc.pyi +168 -53
- flwr/proto/control_pb2.py +72 -40
- flwr/proto/control_pb2.pyi +319 -87
- flwr/proto/control_pb2_grpc.py +339 -28
- flwr/proto/control_pb2_grpc.pyi +209 -37
- flwr/proto/error_pb2.py +13 -3
- flwr/proto/error_pb2.pyi +24 -6
- flwr/proto/error_pb2_grpc.py +20 -0
- flwr/proto/error_pb2_grpc.pyi +27 -0
- flwr/proto/fab_pb2.py +24 -10
- flwr/proto/fab_pb2.pyi +68 -20
- flwr/proto/fab_pb2_grpc.py +20 -0
- flwr/proto/fab_pb2_grpc.pyi +27 -0
- flwr/proto/federation_pb2.py +38 -0
- flwr/proto/federation_pb2.pyi +56 -0
- flwr/proto/federation_pb2_grpc.py +24 -0
- flwr/proto/federation_pb2_grpc.pyi +31 -0
- flwr/proto/fleet_pb2.py +45 -27
- flwr/proto/fleet_pb2.pyi +186 -70
- flwr/proto/fleet_pb2_grpc.py +277 -66
- flwr/proto/fleet_pb2_grpc.pyi +201 -55
- flwr/proto/grpcadapter_pb2.py +14 -4
- flwr/proto/grpcadapter_pb2.pyi +38 -16
- flwr/proto/grpcadapter_pb2_grpc.py +35 -4
- flwr/proto/grpcadapter_pb2_grpc.pyi +38 -7
- flwr/proto/heartbeat_pb2.py +17 -7
- flwr/proto/heartbeat_pb2.pyi +51 -22
- flwr/proto/heartbeat_pb2_grpc.py +20 -0
- flwr/proto/heartbeat_pb2_grpc.pyi +27 -0
- flwr/proto/log_pb2.py +13 -3
- flwr/proto/log_pb2.pyi +34 -11
- flwr/proto/log_pb2_grpc.py +20 -0
- flwr/proto/log_pb2_grpc.pyi +27 -0
- flwr/proto/message_pb2.py +15 -5
- flwr/proto/message_pb2.pyi +154 -86
- flwr/proto/message_pb2_grpc.py +20 -0
- flwr/proto/message_pb2_grpc.pyi +27 -0
- flwr/proto/node_pb2.py +16 -4
- flwr/proto/node_pb2.pyi +77 -4
- flwr/proto/node_pb2_grpc.py +20 -0
- flwr/proto/node_pb2_grpc.pyi +27 -0
- flwr/proto/recorddict_pb2.py +13 -3
- flwr/proto/recorddict_pb2.pyi +184 -107
- flwr/proto/recorddict_pb2_grpc.py +20 -0
- flwr/proto/recorddict_pb2_grpc.pyi +27 -0
- flwr/proto/run_pb2.py +40 -31
- flwr/proto/run_pb2.pyi +149 -84
- flwr/proto/run_pb2_grpc.py +20 -0
- flwr/proto/run_pb2_grpc.pyi +27 -0
- flwr/proto/serverappio_pb2.py +13 -3
- flwr/proto/serverappio_pb2.pyi +32 -8
- flwr/proto/serverappio_pb2_grpc.py +246 -65
- flwr/proto/serverappio_pb2_grpc.pyi +221 -85
- flwr/proto/simulationio_pb2.py +16 -8
- flwr/proto/simulationio_pb2.pyi +15 -0
- flwr/proto/simulationio_pb2_grpc.py +162 -41
- flwr/proto/simulationio_pb2_grpc.pyi +149 -55
- flwr/proto/transport_pb2.py +20 -10
- flwr/proto/transport_pb2.pyi +249 -160
- flwr/proto/transport_pb2_grpc.py +35 -4
- flwr/proto/transport_pb2_grpc.pyi +38 -8
- flwr/server/app.py +173 -127
- flwr/server/client_manager.py +4 -5
- flwr/server/client_proxy.py +10 -11
- flwr/server/compat/app.py +4 -5
- flwr/server/compat/app_utils.py +2 -1
- flwr/server/compat/grid_client_proxy.py +10 -12
- flwr/server/compat/legacy_context.py +3 -4
- flwr/server/fleet_event_log_interceptor.py +2 -1
- flwr/server/grid/grid.py +2 -3
- flwr/server/grid/grpc_grid.py +10 -8
- flwr/server/grid/inmemory_grid.py +4 -4
- flwr/server/run_serverapp.py +2 -3
- flwr/server/server.py +34 -39
- flwr/server/server_app.py +7 -8
- flwr/server/server_config.py +1 -2
- flwr/server/serverapp/app.py +34 -28
- flwr/server/serverapp_components.py +4 -5
- flwr/server/strategy/aggregate.py +9 -8
- flwr/server/strategy/bulyan.py +13 -11
- flwr/server/strategy/dp_adaptive_clipping.py +16 -20
- flwr/server/strategy/dp_fixed_clipping.py +12 -17
- flwr/server/strategy/dpfedavg_adaptive.py +3 -4
- flwr/server/strategy/dpfedavg_fixed.py +6 -10
- flwr/server/strategy/fault_tolerant_fedavg.py +14 -13
- flwr/server/strategy/fedadagrad.py +18 -14
- flwr/server/strategy/fedadam.py +16 -14
- flwr/server/strategy/fedavg.py +16 -17
- flwr/server/strategy/fedavg_android.py +15 -15
- flwr/server/strategy/fedavgm.py +21 -18
- flwr/server/strategy/fedmedian.py +2 -3
- flwr/server/strategy/fedopt.py +11 -10
- flwr/server/strategy/fedprox.py +10 -9
- flwr/server/strategy/fedtrimmedavg.py +12 -11
- flwr/server/strategy/fedxgb_bagging.py +13 -11
- flwr/server/strategy/fedxgb_cyclic.py +6 -6
- flwr/server/strategy/fedxgb_nn_avg.py +4 -4
- flwr/server/strategy/fedyogi.py +16 -14
- flwr/server/strategy/krum.py +12 -11
- flwr/server/strategy/qfedavg.py +16 -15
- flwr/server/strategy/strategy.py +6 -9
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +19 -8
- flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -2
- flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +3 -4
- flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +10 -12
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +1 -3
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +136 -42
- flwr/server/superlink/fleet/grpc_rere/{server_interceptor.py → node_auth_server_interceptor.py} +28 -51
- flwr/server/superlink/fleet/message_handler/message_handler.py +100 -49
- flwr/server/superlink/fleet/rest_rere/rest_api.py +54 -33
- flwr/server/superlink/fleet/vce/backend/backend.py +2 -2
- flwr/server/superlink/fleet/vce/backend/raybackend.py +6 -6
- flwr/server/superlink/fleet/vce/vce_api.py +32 -13
- flwr/server/superlink/linkstate/in_memory_linkstate.py +266 -207
- flwr/server/superlink/linkstate/linkstate.py +161 -62
- flwr/server/superlink/linkstate/linkstate_factory.py +24 -6
- flwr/server/superlink/linkstate/sqlite_linkstate.py +698 -638
- flwr/server/superlink/linkstate/utils.py +9 -60
- flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
- flwr/server/superlink/serverappio/serverappio_servicer.py +28 -23
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
- flwr/server/superlink/simulation/simulationio_servicer.py +19 -14
- flwr/server/superlink/utils.py +4 -6
- flwr/server/typing.py +1 -1
- flwr/server/utils/tensorboard.py +15 -8
- flwr/server/utils/validator.py +2 -3
- flwr/server/workflow/default_workflows.py +5 -5
- flwr/server/workflow/secure_aggregation/secagg_workflow.py +2 -4
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +12 -10
- flwr/serverapp/strategy/bulyan.py +16 -15
- flwr/serverapp/strategy/dp_adaptive_clipping.py +12 -11
- flwr/serverapp/strategy/dp_fixed_clipping.py +11 -14
- flwr/serverapp/strategy/fedadagrad.py +10 -11
- flwr/serverapp/strategy/fedadam.py +10 -11
- flwr/serverapp/strategy/fedavg.py +9 -10
- flwr/serverapp/strategy/fedavgm.py +17 -16
- flwr/serverapp/strategy/fedmedian.py +2 -2
- flwr/serverapp/strategy/fedopt.py +10 -11
- flwr/serverapp/strategy/fedprox.py +7 -8
- flwr/serverapp/strategy/fedtrimmedavg.py +9 -9
- flwr/serverapp/strategy/fedxgb_bagging.py +3 -3
- flwr/serverapp/strategy/fedxgb_cyclic.py +9 -9
- flwr/serverapp/strategy/fedyogi.py +9 -11
- flwr/serverapp/strategy/krum.py +7 -7
- flwr/serverapp/strategy/multikrum.py +9 -9
- flwr/serverapp/strategy/qfedavg.py +17 -16
- flwr/serverapp/strategy/strategy.py +6 -9
- flwr/serverapp/strategy/strategy_utils.py +7 -8
- flwr/simulation/app.py +46 -42
- flwr/simulation/legacy_app.py +12 -12
- flwr/simulation/ray_transport/ray_actor.py +11 -12
- flwr/simulation/ray_transport/ray_client_proxy.py +12 -13
- flwr/simulation/run_simulation.py +44 -43
- flwr/simulation/simulationio_connection.py +4 -4
- flwr/supercore/cli/flower_superexec.py +3 -4
- flwr/supercore/constant.py +52 -0
- flwr/supercore/corestate/corestate.py +24 -3
- flwr/supercore/corestate/in_memory_corestate.py +138 -0
- flwr/supercore/corestate/sqlite_corestate.py +157 -0
- flwr/supercore/ffs/disk_ffs.py +1 -2
- flwr/supercore/ffs/ffs.py +1 -2
- flwr/supercore/ffs/ffs_factory.py +1 -2
- flwr/{common → supercore}/heartbeat.py +20 -25
- flwr/supercore/object_store/in_memory_object_store.py +1 -6
- flwr/supercore/object_store/object_store.py +1 -2
- flwr/supercore/object_store/object_store_factory.py +27 -8
- flwr/supercore/object_store/sqlite_object_store.py +253 -0
- flwr/{client/clientapp → supercore/primitives}/__init__.py +1 -1
- flwr/supercore/primitives/asymmetric.py +117 -0
- flwr/supercore/primitives/asymmetric_ed25519.py +175 -0
- flwr/supercore/sqlite_mixin.py +159 -0
- flwr/supercore/superexec/plugin/base_exec_plugin.py +1 -2
- flwr/supercore/superexec/plugin/exec_plugin.py +3 -3
- flwr/supercore/superexec/run_superexec.py +9 -13
- flwr/supercore/utils.py +20 -0
- flwr/superlink/artifact_provider/artifact_provider.py +1 -2
- flwr/{common → superlink}/auth_plugin/__init__.py +6 -6
- flwr/superlink/auth_plugin/auth_plugin.py +88 -0
- flwr/superlink/auth_plugin/noop_auth_plugin.py +84 -0
- flwr/superlink/federation/__init__.py +24 -0
- flwr/superlink/federation/federation_manager.py +64 -0
- flwr/superlink/federation/noop_federation_manager.py +71 -0
- flwr/superlink/servicer/control/{control_user_auth_interceptor.py → control_account_auth_interceptor.py} +41 -32
- flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
- flwr/superlink/servicer/control/control_grpc.py +18 -17
- flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
- flwr/superlink/servicer/control/control_servicer.py +239 -63
- flwr/supernode/cli/flower_supernode.py +74 -26
- flwr/supernode/nodestate/in_memory_nodestate.py +60 -49
- flwr/supernode/nodestate/nodestate.py +7 -8
- flwr/supernode/nodestate/nodestate_factory.py +7 -4
- flwr/supernode/runtime/run_clientapp.py +43 -24
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +40 -10
- flwr/supernode/start_client_internal.py +175 -51
- {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/METADATA +8 -8
- flwr-1.24.0.dist-info/RECORD +454 -0
- flwr/common/auth_plugin/auth_plugin.py +0 -149
- flwr/supercore/object_store/utils.py +0 -43
- flwr-1.22.0.dist-info/RECORD +0 -428
- {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/WHEEL +0 -0
- {flwr-1.22.0.dist-info → flwr-1.24.0.dist-info}/entry_points.txt +0 -0
flwr/proto/control_pb2.pyi
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
"""
|
|
2
2
|
@generated by mypy-protobuf. Do not edit manually!
|
|
3
3
|
isort:skip_file
|
|
4
|
+
Copyright 2024 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 flwr.proto.fab_pb2
|
|
23
|
+
import flwr.proto.federation_pb2
|
|
24
|
+
import flwr.proto.node_pb2
|
|
7
25
|
import flwr.proto.recorddict_pb2
|
|
8
26
|
import flwr.proto.run_pb2
|
|
9
27
|
import flwr.proto.transport_pb2
|
|
@@ -11,226 +29,440 @@ import google.protobuf.descriptor
|
|
|
11
29
|
import google.protobuf.internal.containers
|
|
12
30
|
import google.protobuf.message
|
|
13
31
|
import typing
|
|
14
|
-
import typing_extensions
|
|
15
32
|
|
|
16
33
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
17
34
|
|
|
35
|
+
@typing.final
|
|
18
36
|
class StartRunRequest(google.protobuf.message.Message):
|
|
19
37
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
38
|
+
|
|
39
|
+
@typing.final
|
|
20
40
|
class OverrideConfigEntry(google.protobuf.message.Message):
|
|
21
41
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
42
|
+
|
|
22
43
|
KEY_FIELD_NUMBER: builtins.int
|
|
23
44
|
VALUE_FIELD_NUMBER: builtins.int
|
|
24
|
-
key:
|
|
45
|
+
key: builtins.str
|
|
25
46
|
@property
|
|
26
47
|
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
27
|
-
def __init__(
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
28
50
|
*,
|
|
29
|
-
key:
|
|
30
|
-
value:
|
|
31
|
-
|
|
32
|
-
def HasField(self, field_name:
|
|
33
|
-
def ClearField(self, field_name:
|
|
51
|
+
key: builtins.str = ...,
|
|
52
|
+
value: flwr.proto.transport_pb2.Scalar | None = ...,
|
|
53
|
+
) -> None: ...
|
|
54
|
+
def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
|
|
55
|
+
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
34
56
|
|
|
35
57
|
FAB_FIELD_NUMBER: builtins.int
|
|
36
58
|
OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
|
|
37
59
|
FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
|
|
60
|
+
APP_SPEC_FIELD_NUMBER: builtins.int
|
|
61
|
+
FEDERATION_FIELD_NUMBER: builtins.int
|
|
62
|
+
app_spec: builtins.str
|
|
63
|
+
federation: builtins.str
|
|
38
64
|
@property
|
|
39
65
|
def fab(self) -> flwr.proto.fab_pb2.Fab: ...
|
|
40
66
|
@property
|
|
41
|
-
def override_config(self) -> google.protobuf.internal.containers.MessageMap[
|
|
67
|
+
def override_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
|
|
42
68
|
@property
|
|
43
69
|
def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigRecord: ...
|
|
44
|
-
def __init__(
|
|
70
|
+
def __init__(
|
|
71
|
+
self,
|
|
45
72
|
*,
|
|
46
|
-
fab:
|
|
47
|
-
override_config:
|
|
48
|
-
federation_options:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
73
|
+
fab: flwr.proto.fab_pb2.Fab | None = ...,
|
|
74
|
+
override_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
|
|
75
|
+
federation_options: flwr.proto.recorddict_pb2.ConfigRecord | None = ...,
|
|
76
|
+
app_spec: builtins.str = ...,
|
|
77
|
+
federation: builtins.str = ...,
|
|
78
|
+
) -> None: ...
|
|
79
|
+
def HasField(self, field_name: typing.Literal["fab", b"fab", "federation_options", b"federation_options"]) -> builtins.bool: ...
|
|
80
|
+
def ClearField(self, field_name: typing.Literal["app_spec", b"app_spec", "fab", b"fab", "federation", b"federation", "federation_options", b"federation_options", "override_config", b"override_config"]) -> None: ...
|
|
81
|
+
|
|
52
82
|
global___StartRunRequest = StartRunRequest
|
|
53
83
|
|
|
84
|
+
@typing.final
|
|
54
85
|
class StartRunResponse(google.protobuf.message.Message):
|
|
55
86
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
87
|
+
|
|
56
88
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
57
89
|
run_id: builtins.int
|
|
58
|
-
def __init__(
|
|
90
|
+
def __init__(
|
|
91
|
+
self,
|
|
59
92
|
*,
|
|
60
|
-
run_id:
|
|
61
|
-
|
|
62
|
-
def HasField(self, field_name:
|
|
63
|
-
def ClearField(self, field_name:
|
|
64
|
-
def WhichOneof(self, oneof_group:
|
|
93
|
+
run_id: builtins.int | None = ...,
|
|
94
|
+
) -> None: ...
|
|
95
|
+
def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
|
|
96
|
+
def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
|
|
97
|
+
def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...
|
|
98
|
+
|
|
65
99
|
global___StartRunResponse = StartRunResponse
|
|
66
100
|
|
|
101
|
+
@typing.final
|
|
67
102
|
class StreamLogsRequest(google.protobuf.message.Message):
|
|
68
103
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
104
|
+
|
|
69
105
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
70
106
|
AFTER_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
71
107
|
run_id: builtins.int
|
|
72
108
|
after_timestamp: builtins.float
|
|
73
|
-
def __init__(
|
|
109
|
+
def __init__(
|
|
110
|
+
self,
|
|
74
111
|
*,
|
|
75
112
|
run_id: builtins.int = ...,
|
|
76
113
|
after_timestamp: builtins.float = ...,
|
|
77
|
-
|
|
78
|
-
def ClearField(self, field_name:
|
|
114
|
+
) -> None: ...
|
|
115
|
+
def ClearField(self, field_name: typing.Literal["after_timestamp", b"after_timestamp", "run_id", b"run_id"]) -> None: ...
|
|
116
|
+
|
|
79
117
|
global___StreamLogsRequest = StreamLogsRequest
|
|
80
118
|
|
|
119
|
+
@typing.final
|
|
81
120
|
class StreamLogsResponse(google.protobuf.message.Message):
|
|
82
121
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
122
|
+
|
|
83
123
|
LOG_OUTPUT_FIELD_NUMBER: builtins.int
|
|
84
124
|
LATEST_TIMESTAMP_FIELD_NUMBER: builtins.int
|
|
85
|
-
log_output:
|
|
125
|
+
log_output: builtins.str
|
|
86
126
|
latest_timestamp: builtins.float
|
|
87
|
-
def __init__(
|
|
127
|
+
def __init__(
|
|
128
|
+
self,
|
|
88
129
|
*,
|
|
89
|
-
log_output:
|
|
130
|
+
log_output: builtins.str = ...,
|
|
90
131
|
latest_timestamp: builtins.float = ...,
|
|
91
|
-
|
|
92
|
-
def ClearField(self, field_name:
|
|
132
|
+
) -> None: ...
|
|
133
|
+
def ClearField(self, field_name: typing.Literal["latest_timestamp", b"latest_timestamp", "log_output", b"log_output"]) -> None: ...
|
|
134
|
+
|
|
93
135
|
global___StreamLogsResponse = StreamLogsResponse
|
|
94
136
|
|
|
137
|
+
@typing.final
|
|
95
138
|
class ListRunsRequest(google.protobuf.message.Message):
|
|
96
139
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
140
|
+
|
|
97
141
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
98
142
|
run_id: builtins.int
|
|
99
|
-
def __init__(
|
|
143
|
+
def __init__(
|
|
144
|
+
self,
|
|
100
145
|
*,
|
|
101
|
-
run_id:
|
|
102
|
-
|
|
103
|
-
def HasField(self, field_name:
|
|
104
|
-
def ClearField(self, field_name:
|
|
105
|
-
def WhichOneof(self, oneof_group:
|
|
146
|
+
run_id: builtins.int | None = ...,
|
|
147
|
+
) -> None: ...
|
|
148
|
+
def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
|
|
149
|
+
def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
|
|
150
|
+
def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...
|
|
151
|
+
|
|
106
152
|
global___ListRunsRequest = ListRunsRequest
|
|
107
153
|
|
|
154
|
+
@typing.final
|
|
108
155
|
class ListRunsResponse(google.protobuf.message.Message):
|
|
109
156
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
157
|
+
|
|
158
|
+
@typing.final
|
|
110
159
|
class RunDictEntry(google.protobuf.message.Message):
|
|
111
160
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
161
|
+
|
|
112
162
|
KEY_FIELD_NUMBER: builtins.int
|
|
113
163
|
VALUE_FIELD_NUMBER: builtins.int
|
|
114
164
|
key: builtins.int
|
|
115
165
|
@property
|
|
116
166
|
def value(self) -> flwr.proto.run_pb2.Run: ...
|
|
117
|
-
def __init__(
|
|
167
|
+
def __init__(
|
|
168
|
+
self,
|
|
118
169
|
*,
|
|
119
170
|
key: builtins.int = ...,
|
|
120
|
-
value:
|
|
121
|
-
|
|
122
|
-
def HasField(self, field_name:
|
|
123
|
-
def ClearField(self, field_name:
|
|
171
|
+
value: flwr.proto.run_pb2.Run | None = ...,
|
|
172
|
+
) -> None: ...
|
|
173
|
+
def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
|
|
174
|
+
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
124
175
|
|
|
125
176
|
RUN_DICT_FIELD_NUMBER: builtins.int
|
|
126
177
|
NOW_FIELD_NUMBER: builtins.int
|
|
178
|
+
now: builtins.str
|
|
127
179
|
@property
|
|
128
180
|
def run_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, flwr.proto.run_pb2.Run]: ...
|
|
129
|
-
|
|
130
|
-
|
|
181
|
+
def __init__(
|
|
182
|
+
self,
|
|
131
183
|
*,
|
|
132
|
-
run_dict:
|
|
133
|
-
now:
|
|
134
|
-
|
|
135
|
-
def ClearField(self, field_name:
|
|
184
|
+
run_dict: collections.abc.Mapping[builtins.int, flwr.proto.run_pb2.Run] | None = ...,
|
|
185
|
+
now: builtins.str = ...,
|
|
186
|
+
) -> None: ...
|
|
187
|
+
def ClearField(self, field_name: typing.Literal["now", b"now", "run_dict", b"run_dict"]) -> None: ...
|
|
188
|
+
|
|
136
189
|
global___ListRunsResponse = ListRunsResponse
|
|
137
190
|
|
|
191
|
+
@typing.final
|
|
138
192
|
class GetLoginDetailsRequest(google.protobuf.message.Message):
|
|
139
193
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
140
|
-
|
|
141
|
-
|
|
194
|
+
|
|
195
|
+
def __init__(
|
|
196
|
+
self,
|
|
197
|
+
) -> None: ...
|
|
198
|
+
|
|
142
199
|
global___GetLoginDetailsRequest = GetLoginDetailsRequest
|
|
143
200
|
|
|
201
|
+
@typing.final
|
|
144
202
|
class GetLoginDetailsResponse(google.protobuf.message.Message):
|
|
145
203
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
146
|
-
|
|
204
|
+
|
|
205
|
+
AUTHN_TYPE_FIELD_NUMBER: builtins.int
|
|
147
206
|
DEVICE_CODE_FIELD_NUMBER: builtins.int
|
|
148
207
|
VERIFICATION_URI_COMPLETE_FIELD_NUMBER: builtins.int
|
|
149
208
|
EXPIRES_IN_FIELD_NUMBER: builtins.int
|
|
150
209
|
INTERVAL_FIELD_NUMBER: builtins.int
|
|
151
|
-
|
|
152
|
-
device_code:
|
|
153
|
-
verification_uri_complete:
|
|
210
|
+
authn_type: builtins.str
|
|
211
|
+
device_code: builtins.str
|
|
212
|
+
verification_uri_complete: builtins.str
|
|
154
213
|
expires_in: builtins.int
|
|
155
214
|
interval: builtins.int
|
|
156
|
-
def __init__(
|
|
215
|
+
def __init__(
|
|
216
|
+
self,
|
|
157
217
|
*,
|
|
158
|
-
|
|
159
|
-
device_code:
|
|
160
|
-
verification_uri_complete:
|
|
218
|
+
authn_type: builtins.str = ...,
|
|
219
|
+
device_code: builtins.str = ...,
|
|
220
|
+
verification_uri_complete: builtins.str = ...,
|
|
161
221
|
expires_in: builtins.int = ...,
|
|
162
222
|
interval: builtins.int = ...,
|
|
163
|
-
|
|
164
|
-
def ClearField(self, field_name:
|
|
223
|
+
) -> None: ...
|
|
224
|
+
def ClearField(self, field_name: typing.Literal["authn_type", b"authn_type", "device_code", b"device_code", "expires_in", b"expires_in", "interval", b"interval", "verification_uri_complete", b"verification_uri_complete"]) -> None: ...
|
|
225
|
+
|
|
165
226
|
global___GetLoginDetailsResponse = GetLoginDetailsResponse
|
|
166
227
|
|
|
228
|
+
@typing.final
|
|
167
229
|
class GetAuthTokensRequest(google.protobuf.message.Message):
|
|
168
230
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
231
|
+
|
|
169
232
|
DEVICE_CODE_FIELD_NUMBER: builtins.int
|
|
170
|
-
device_code:
|
|
171
|
-
def __init__(
|
|
233
|
+
device_code: builtins.str
|
|
234
|
+
def __init__(
|
|
235
|
+
self,
|
|
172
236
|
*,
|
|
173
|
-
device_code:
|
|
174
|
-
|
|
175
|
-
def ClearField(self, field_name:
|
|
237
|
+
device_code: builtins.str = ...,
|
|
238
|
+
) -> None: ...
|
|
239
|
+
def ClearField(self, field_name: typing.Literal["device_code", b"device_code"]) -> None: ...
|
|
240
|
+
|
|
176
241
|
global___GetAuthTokensRequest = GetAuthTokensRequest
|
|
177
242
|
|
|
243
|
+
@typing.final
|
|
178
244
|
class GetAuthTokensResponse(google.protobuf.message.Message):
|
|
179
245
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
246
|
+
|
|
180
247
|
ACCESS_TOKEN_FIELD_NUMBER: builtins.int
|
|
181
248
|
REFRESH_TOKEN_FIELD_NUMBER: builtins.int
|
|
182
|
-
access_token:
|
|
183
|
-
refresh_token:
|
|
184
|
-
def __init__(
|
|
249
|
+
access_token: builtins.str
|
|
250
|
+
refresh_token: builtins.str
|
|
251
|
+
def __init__(
|
|
252
|
+
self,
|
|
185
253
|
*,
|
|
186
|
-
access_token:
|
|
187
|
-
refresh_token:
|
|
188
|
-
|
|
189
|
-
def ClearField(self, field_name:
|
|
254
|
+
access_token: builtins.str = ...,
|
|
255
|
+
refresh_token: builtins.str = ...,
|
|
256
|
+
) -> None: ...
|
|
257
|
+
def ClearField(self, field_name: typing.Literal["access_token", b"access_token", "refresh_token", b"refresh_token"]) -> None: ...
|
|
258
|
+
|
|
190
259
|
global___GetAuthTokensResponse = GetAuthTokensResponse
|
|
191
260
|
|
|
261
|
+
@typing.final
|
|
192
262
|
class StopRunRequest(google.protobuf.message.Message):
|
|
193
263
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
264
|
+
|
|
194
265
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
195
266
|
run_id: builtins.int
|
|
196
|
-
def __init__(
|
|
267
|
+
def __init__(
|
|
268
|
+
self,
|
|
197
269
|
*,
|
|
198
270
|
run_id: builtins.int = ...,
|
|
199
|
-
|
|
200
|
-
def ClearField(self, field_name:
|
|
271
|
+
) -> None: ...
|
|
272
|
+
def ClearField(self, field_name: typing.Literal["run_id", b"run_id"]) -> None: ...
|
|
273
|
+
|
|
201
274
|
global___StopRunRequest = StopRunRequest
|
|
202
275
|
|
|
276
|
+
@typing.final
|
|
203
277
|
class StopRunResponse(google.protobuf.message.Message):
|
|
204
278
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
279
|
+
|
|
205
280
|
SUCCESS_FIELD_NUMBER: builtins.int
|
|
206
281
|
success: builtins.bool
|
|
207
|
-
def __init__(
|
|
282
|
+
def __init__(
|
|
283
|
+
self,
|
|
208
284
|
*,
|
|
209
285
|
success: builtins.bool = ...,
|
|
210
|
-
|
|
211
|
-
def ClearField(self, field_name:
|
|
286
|
+
) -> None: ...
|
|
287
|
+
def ClearField(self, field_name: typing.Literal["success", b"success"]) -> None: ...
|
|
288
|
+
|
|
212
289
|
global___StopRunResponse = StopRunResponse
|
|
213
290
|
|
|
291
|
+
@typing.final
|
|
214
292
|
class PullArtifactsRequest(google.protobuf.message.Message):
|
|
215
293
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
294
|
+
|
|
216
295
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
217
296
|
run_id: builtins.int
|
|
218
|
-
def __init__(
|
|
297
|
+
def __init__(
|
|
298
|
+
self,
|
|
219
299
|
*,
|
|
220
300
|
run_id: builtins.int = ...,
|
|
221
|
-
|
|
222
|
-
def ClearField(self, field_name:
|
|
301
|
+
) -> None: ...
|
|
302
|
+
def ClearField(self, field_name: typing.Literal["run_id", b"run_id"]) -> None: ...
|
|
303
|
+
|
|
223
304
|
global___PullArtifactsRequest = PullArtifactsRequest
|
|
224
305
|
|
|
306
|
+
@typing.final
|
|
225
307
|
class PullArtifactsResponse(google.protobuf.message.Message):
|
|
226
308
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
309
|
+
|
|
227
310
|
URL_FIELD_NUMBER: builtins.int
|
|
228
|
-
url:
|
|
229
|
-
def __init__(
|
|
311
|
+
url: builtins.str
|
|
312
|
+
def __init__(
|
|
313
|
+
self,
|
|
230
314
|
*,
|
|
231
|
-
url:
|
|
232
|
-
|
|
233
|
-
def HasField(self, field_name:
|
|
234
|
-
def ClearField(self, field_name:
|
|
235
|
-
def WhichOneof(self, oneof_group:
|
|
315
|
+
url: builtins.str | None = ...,
|
|
316
|
+
) -> None: ...
|
|
317
|
+
def HasField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> builtins.bool: ...
|
|
318
|
+
def ClearField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> None: ...
|
|
319
|
+
def WhichOneof(self, oneof_group: typing.Literal["_url", b"_url"]) -> typing.Literal["url"] | None: ...
|
|
320
|
+
|
|
236
321
|
global___PullArtifactsResponse = PullArtifactsResponse
|
|
322
|
+
|
|
323
|
+
@typing.final
|
|
324
|
+
class RegisterNodeRequest(google.protobuf.message.Message):
|
|
325
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
326
|
+
|
|
327
|
+
PUBLIC_KEY_FIELD_NUMBER: builtins.int
|
|
328
|
+
public_key: builtins.bytes
|
|
329
|
+
def __init__(
|
|
330
|
+
self,
|
|
331
|
+
*,
|
|
332
|
+
public_key: builtins.bytes = ...,
|
|
333
|
+
) -> None: ...
|
|
334
|
+
def ClearField(self, field_name: typing.Literal["public_key", b"public_key"]) -> None: ...
|
|
335
|
+
|
|
336
|
+
global___RegisterNodeRequest = RegisterNodeRequest
|
|
337
|
+
|
|
338
|
+
@typing.final
|
|
339
|
+
class RegisterNodeResponse(google.protobuf.message.Message):
|
|
340
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
341
|
+
|
|
342
|
+
NODE_ID_FIELD_NUMBER: builtins.int
|
|
343
|
+
node_id: builtins.int
|
|
344
|
+
def __init__(
|
|
345
|
+
self,
|
|
346
|
+
*,
|
|
347
|
+
node_id: builtins.int | None = ...,
|
|
348
|
+
) -> None: ...
|
|
349
|
+
def HasField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> builtins.bool: ...
|
|
350
|
+
def ClearField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> None: ...
|
|
351
|
+
def WhichOneof(self, oneof_group: typing.Literal["_node_id", b"_node_id"]) -> typing.Literal["node_id"] | None: ...
|
|
352
|
+
|
|
353
|
+
global___RegisterNodeResponse = RegisterNodeResponse
|
|
354
|
+
|
|
355
|
+
@typing.final
|
|
356
|
+
class UnregisterNodeRequest(google.protobuf.message.Message):
|
|
357
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
358
|
+
|
|
359
|
+
NODE_ID_FIELD_NUMBER: builtins.int
|
|
360
|
+
node_id: builtins.int
|
|
361
|
+
def __init__(
|
|
362
|
+
self,
|
|
363
|
+
*,
|
|
364
|
+
node_id: builtins.int = ...,
|
|
365
|
+
) -> None: ...
|
|
366
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
367
|
+
|
|
368
|
+
global___UnregisterNodeRequest = UnregisterNodeRequest
|
|
369
|
+
|
|
370
|
+
@typing.final
|
|
371
|
+
class UnregisterNodeResponse(google.protobuf.message.Message):
|
|
372
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
373
|
+
|
|
374
|
+
def __init__(
|
|
375
|
+
self,
|
|
376
|
+
) -> None: ...
|
|
377
|
+
|
|
378
|
+
global___UnregisterNodeResponse = UnregisterNodeResponse
|
|
379
|
+
|
|
380
|
+
@typing.final
|
|
381
|
+
class ListNodesRequest(google.protobuf.message.Message):
|
|
382
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
383
|
+
|
|
384
|
+
def __init__(
|
|
385
|
+
self,
|
|
386
|
+
) -> None: ...
|
|
387
|
+
|
|
388
|
+
global___ListNodesRequest = ListNodesRequest
|
|
389
|
+
|
|
390
|
+
@typing.final
|
|
391
|
+
class ListNodesResponse(google.protobuf.message.Message):
|
|
392
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
393
|
+
|
|
394
|
+
NODES_INFO_FIELD_NUMBER: builtins.int
|
|
395
|
+
NOW_FIELD_NUMBER: builtins.int
|
|
396
|
+
now: builtins.str
|
|
397
|
+
@property
|
|
398
|
+
def nodes_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
|
|
399
|
+
def __init__(
|
|
400
|
+
self,
|
|
401
|
+
*,
|
|
402
|
+
nodes_info: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
|
|
403
|
+
now: builtins.str = ...,
|
|
404
|
+
) -> None: ...
|
|
405
|
+
def ClearField(self, field_name: typing.Literal["nodes_info", b"nodes_info", "now", b"now"]) -> None: ...
|
|
406
|
+
|
|
407
|
+
global___ListNodesResponse = ListNodesResponse
|
|
408
|
+
|
|
409
|
+
@typing.final
|
|
410
|
+
class ListFederationsRequest(google.protobuf.message.Message):
|
|
411
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
412
|
+
|
|
413
|
+
def __init__(
|
|
414
|
+
self,
|
|
415
|
+
) -> None: ...
|
|
416
|
+
|
|
417
|
+
global___ListFederationsRequest = ListFederationsRequest
|
|
418
|
+
|
|
419
|
+
@typing.final
|
|
420
|
+
class ListFederationsResponse(google.protobuf.message.Message):
|
|
421
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
422
|
+
|
|
423
|
+
FEDERATIONS_FIELD_NUMBER: builtins.int
|
|
424
|
+
@property
|
|
425
|
+
def federations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.federation_pb2.Federation]: ...
|
|
426
|
+
def __init__(
|
|
427
|
+
self,
|
|
428
|
+
*,
|
|
429
|
+
federations: collections.abc.Iterable[flwr.proto.federation_pb2.Federation] | None = ...,
|
|
430
|
+
) -> None: ...
|
|
431
|
+
def ClearField(self, field_name: typing.Literal["federations", b"federations"]) -> None: ...
|
|
432
|
+
|
|
433
|
+
global___ListFederationsResponse = ListFederationsResponse
|
|
434
|
+
|
|
435
|
+
@typing.final
|
|
436
|
+
class ShowFederationRequest(google.protobuf.message.Message):
|
|
437
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
438
|
+
|
|
439
|
+
FEDERATION_NAME_FIELD_NUMBER: builtins.int
|
|
440
|
+
federation_name: builtins.str
|
|
441
|
+
def __init__(
|
|
442
|
+
self,
|
|
443
|
+
*,
|
|
444
|
+
federation_name: builtins.str = ...,
|
|
445
|
+
) -> None: ...
|
|
446
|
+
def ClearField(self, field_name: typing.Literal["federation_name", b"federation_name"]) -> None: ...
|
|
447
|
+
|
|
448
|
+
global___ShowFederationRequest = ShowFederationRequest
|
|
449
|
+
|
|
450
|
+
@typing.final
|
|
451
|
+
class ShowFederationResponse(google.protobuf.message.Message):
|
|
452
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
453
|
+
|
|
454
|
+
FEDERATION_FIELD_NUMBER: builtins.int
|
|
455
|
+
NOW_FIELD_NUMBER: builtins.int
|
|
456
|
+
now: builtins.str
|
|
457
|
+
@property
|
|
458
|
+
def federation(self) -> flwr.proto.federation_pb2.Federation: ...
|
|
459
|
+
def __init__(
|
|
460
|
+
self,
|
|
461
|
+
*,
|
|
462
|
+
federation: flwr.proto.federation_pb2.Federation | None = ...,
|
|
463
|
+
now: builtins.str = ...,
|
|
464
|
+
) -> None: ...
|
|
465
|
+
def HasField(self, field_name: typing.Literal["federation", b"federation"]) -> builtins.bool: ...
|
|
466
|
+
def ClearField(self, field_name: typing.Literal["federation", b"federation", "now", b"now"]) -> None: ...
|
|
467
|
+
|
|
468
|
+
global___ShowFederationResponse = ShowFederationResponse
|