flwr 1.23.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 +19 -0
- 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/auth_plugin.py +4 -5
- flwr/cli/auth_plugin/noop_auth_plugin.py +54 -11
- flwr/cli/auth_plugin/oidc_cli_plugin.py +32 -9
- flwr/cli/build.py +60 -18
- flwr/cli/cli_account_auth_interceptor.py +24 -7
- 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 +52 -9
- flwr/cli/login/login.py +7 -4
- flwr/cli/ls.py +170 -130
- flwr/cli/new/new.py +33 -50
- 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 +10 -5
- flwr/cli/run/run.py +77 -30
- flwr/cli/run_utils.py +130 -0
- flwr/cli/stop.py +25 -7
- flwr/cli/supernode/ls.py +16 -8
- flwr/cli/supernode/register.py +9 -4
- flwr/cli/supernode/unregister.py +5 -3
- flwr/cli/utils.py +376 -16
- flwr/client/__init__.py +1 -1
- flwr/client/dpfedavg_numpy_client.py +4 -1
- flwr/client/grpc_adapter_client/connection.py +6 -7
- flwr/client/grpc_rere_client/connection.py +10 -11
- flwr/client/grpc_rere_client/grpc_adapter.py +6 -2
- flwr/client/grpc_rere_client/node_auth_client_interceptor.py +2 -1
- flwr/client/message_handler/message_handler.py +2 -2
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +3 -3
- flwr/client/numpy_client.py +1 -1
- flwr/client/rest_client/connection.py +12 -14
- flwr/client/run_info_store.py +4 -5
- flwr/client/typing.py +1 -1
- flwr/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/clientapp/utils.py +3 -3
- flwr/common/address.py +1 -2
- flwr/common/args.py +3 -4
- flwr/common/config.py +13 -16
- flwr/common/constant.py +5 -2
- 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 +19 -0
- 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 +38 -21
- flwr/common/logger.py +19 -19
- flwr/common/message.py +4 -4
- flwr/common/object_ref.py +7 -7
- flwr/common/record/array.py +3 -3
- flwr/common/record/arrayrecord.py +18 -30
- 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/ndarrays_arithmetic.py +3 -3
- flwr/common/serde.py +5 -4
- flwr/common/serde_utils.py +2 -2
- flwr/common/telemetry.py +9 -5
- flwr/common/typing.py +52 -37
- flwr/compat/client/app.py +38 -37
- flwr/compat/client/grpc_client/connection.py +11 -11
- 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 +71 -52
- flwr/proto/control_pb2.pyi +277 -111
- flwr/proto/control_pb2_grpc.py +249 -40
- flwr/proto/control_pb2_grpc.pyi +185 -52
- 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 +14 -4
- flwr/proto/fab_pb2.pyi +59 -31
- 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 +14 -4
- flwr/proto/fleet_pb2.pyi +137 -61
- flwr/proto/fleet_pb2_grpc.py +189 -48
- flwr/proto/fleet_pb2_grpc.pyi +175 -61
- 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 +15 -5
- flwr/proto/node_pb2.pyi +50 -25
- 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 +38 -17
- 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 +2 -1
- 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 +4 -4
- flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +3 -2
- flwr/server/superlink/fleet/message_handler/message_handler.py +34 -28
- flwr/server/superlink/fleet/rest_rere/rest_api.py +2 -2
- flwr/server/superlink/fleet/vce/backend/backend.py +1 -1
- flwr/server/superlink/fleet/vce/backend/raybackend.py +5 -5
- flwr/server/superlink/fleet/vce/vce_api.py +15 -9
- flwr/server/superlink/linkstate/in_memory_linkstate.py +115 -150
- flwr/server/superlink/linkstate/linkstate.py +59 -43
- flwr/server/superlink/linkstate/linkstate_factory.py +22 -5
- flwr/server/superlink/linkstate/sqlite_linkstate.py +447 -438
- flwr/server/superlink/linkstate/utils.py +6 -6
- flwr/server/superlink/serverappio/serverappio_grpc.py +1 -2
- flwr/server/superlink/serverappio/serverappio_servicer.py +26 -21
- flwr/server/superlink/simulation/simulationio_grpc.py +1 -2
- flwr/server/superlink/simulation/simulationio_servicer.py +18 -13
- flwr/server/superlink/utils.py +4 -6
- flwr/server/typing.py +1 -1
- flwr/server/utils/tensorboard.py +15 -8
- 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 +8 -8
- 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 +10 -11
- flwr/simulation/ray_transport/ray_client_proxy.py +11 -12
- flwr/simulation/run_simulation.py +43 -43
- flwr/simulation/simulationio_connection.py +4 -4
- flwr/supercore/cli/flower_superexec.py +3 -4
- flwr/supercore/constant.py +31 -1
- 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 -2
- flwr/supercore/object_store/object_store.py +1 -2
- flwr/supercore/object_store/object_store_factory.py +1 -2
- flwr/supercore/object_store/sqlite_object_store.py +8 -7
- flwr/supercore/primitives/asymmetric.py +1 -1
- flwr/supercore/primitives/asymmetric_ed25519.py +11 -1
- flwr/supercore/sqlite_mixin.py +37 -34
- 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/superlink/artifact_provider/artifact_provider.py +1 -2
- flwr/superlink/auth_plugin/auth_plugin.py +6 -9
- flwr/superlink/auth_plugin/noop_auth_plugin.py +6 -9
- 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_account_auth_interceptor.py +22 -13
- flwr/superlink/servicer/control/control_event_log_interceptor.py +7 -7
- flwr/superlink/servicer/control/control_grpc.py +5 -6
- flwr/superlink/servicer/control/control_license_interceptor.py +3 -3
- flwr/superlink/servicer/control/control_servicer.py +102 -18
- flwr/supernode/cli/flower_supernode.py +58 -3
- 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 +41 -22
- flwr/supernode/servicer/clientappio/clientappio_servicer.py +40 -10
- flwr/supernode/start_client_internal.py +158 -42
- {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/METADATA +8 -8
- flwr-1.24.0.dist-info/RECORD +454 -0
- flwr/supercore/object_store/utils.py +0 -43
- flwr-1.23.0.dist-info/RECORD +0 -439
- {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/WHEEL +0 -0
- {flwr-1.23.0.dist-info → flwr-1.24.0.dist-info}/entry_points.txt +0 -0
flwr/proto/message_pb2.pyi
CHANGED
|
@@ -1,8 +1,24 @@
|
|
|
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.error_pb2
|
|
7
23
|
import flwr.proto.node_pb2
|
|
8
24
|
import flwr.proto.recorddict_pb2
|
|
@@ -11,12 +27,13 @@ import google.protobuf.descriptor
|
|
|
11
27
|
import google.protobuf.internal.containers
|
|
12
28
|
import google.protobuf.message
|
|
13
29
|
import typing
|
|
14
|
-
import typing_extensions
|
|
15
30
|
|
|
16
31
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
17
32
|
|
|
33
|
+
@typing.final
|
|
18
34
|
class Message(google.protobuf.message.Message):
|
|
19
35
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
36
|
+
|
|
20
37
|
METADATA_FIELD_NUMBER: builtins.int
|
|
21
38
|
CONTENT_FIELD_NUMBER: builtins.int
|
|
22
39
|
ERROR_FIELD_NUMBER: builtins.int
|
|
@@ -26,47 +43,57 @@ class Message(google.protobuf.message.Message):
|
|
|
26
43
|
def content(self) -> flwr.proto.recorddict_pb2.RecordDict: ...
|
|
27
44
|
@property
|
|
28
45
|
def error(self) -> flwr.proto.error_pb2.Error: ...
|
|
29
|
-
def __init__(
|
|
46
|
+
def __init__(
|
|
47
|
+
self,
|
|
30
48
|
*,
|
|
31
|
-
metadata:
|
|
32
|
-
content:
|
|
33
|
-
error:
|
|
34
|
-
|
|
35
|
-
def HasField(self, field_name:
|
|
36
|
-
def ClearField(self, field_name:
|
|
49
|
+
metadata: global___Metadata | None = ...,
|
|
50
|
+
content: flwr.proto.recorddict_pb2.RecordDict | None = ...,
|
|
51
|
+
error: flwr.proto.error_pb2.Error | None = ...,
|
|
52
|
+
) -> None: ...
|
|
53
|
+
def HasField(self, field_name: typing.Literal["content", b"content", "error", b"error", "metadata", b"metadata"]) -> builtins.bool: ...
|
|
54
|
+
def ClearField(self, field_name: typing.Literal["content", b"content", "error", b"error", "metadata", b"metadata"]) -> None: ...
|
|
55
|
+
|
|
37
56
|
global___Message = Message
|
|
38
57
|
|
|
58
|
+
@typing.final
|
|
39
59
|
class Context(google.protobuf.message.Message):
|
|
40
60
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
61
|
+
|
|
62
|
+
@typing.final
|
|
41
63
|
class NodeConfigEntry(google.protobuf.message.Message):
|
|
42
64
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
65
|
+
|
|
43
66
|
KEY_FIELD_NUMBER: builtins.int
|
|
44
67
|
VALUE_FIELD_NUMBER: builtins.int
|
|
45
|
-
key:
|
|
68
|
+
key: builtins.str
|
|
46
69
|
@property
|
|
47
70
|
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
48
|
-
def __init__(
|
|
71
|
+
def __init__(
|
|
72
|
+
self,
|
|
49
73
|
*,
|
|
50
|
-
key:
|
|
51
|
-
value:
|
|
52
|
-
|
|
53
|
-
def HasField(self, field_name:
|
|
54
|
-
def ClearField(self, field_name:
|
|
74
|
+
key: builtins.str = ...,
|
|
75
|
+
value: flwr.proto.transport_pb2.Scalar | None = ...,
|
|
76
|
+
) -> None: ...
|
|
77
|
+
def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
|
|
78
|
+
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
55
79
|
|
|
80
|
+
@typing.final
|
|
56
81
|
class RunConfigEntry(google.protobuf.message.Message):
|
|
57
82
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
83
|
+
|
|
58
84
|
KEY_FIELD_NUMBER: builtins.int
|
|
59
85
|
VALUE_FIELD_NUMBER: builtins.int
|
|
60
|
-
key:
|
|
86
|
+
key: builtins.str
|
|
61
87
|
@property
|
|
62
88
|
def value(self) -> flwr.proto.transport_pb2.Scalar: ...
|
|
63
|
-
def __init__(
|
|
89
|
+
def __init__(
|
|
90
|
+
self,
|
|
64
91
|
*,
|
|
65
|
-
key:
|
|
66
|
-
value:
|
|
67
|
-
|
|
68
|
-
def HasField(self, field_name:
|
|
69
|
-
def ClearField(self, field_name:
|
|
92
|
+
key: builtins.str = ...,
|
|
93
|
+
value: flwr.proto.transport_pb2.Scalar | None = ...,
|
|
94
|
+
) -> None: ...
|
|
95
|
+
def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
|
|
96
|
+
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
70
97
|
|
|
71
98
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
72
99
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
@@ -76,25 +103,29 @@ class Context(google.protobuf.message.Message):
|
|
|
76
103
|
run_id: builtins.int
|
|
77
104
|
node_id: builtins.int
|
|
78
105
|
@property
|
|
79
|
-
def node_config(self) -> google.protobuf.internal.containers.MessageMap[
|
|
106
|
+
def node_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
|
|
80
107
|
@property
|
|
81
108
|
def state(self) -> flwr.proto.recorddict_pb2.RecordDict: ...
|
|
82
109
|
@property
|
|
83
|
-
def run_config(self) -> google.protobuf.internal.containers.MessageMap[
|
|
84
|
-
def __init__(
|
|
110
|
+
def run_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
|
|
111
|
+
def __init__(
|
|
112
|
+
self,
|
|
85
113
|
*,
|
|
86
114
|
run_id: builtins.int = ...,
|
|
87
115
|
node_id: builtins.int = ...,
|
|
88
|
-
node_config:
|
|
89
|
-
state:
|
|
90
|
-
run_config:
|
|
91
|
-
|
|
92
|
-
def HasField(self, field_name:
|
|
93
|
-
def ClearField(self, field_name:
|
|
116
|
+
node_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
|
|
117
|
+
state: flwr.proto.recorddict_pb2.RecordDict | None = ...,
|
|
118
|
+
run_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
|
|
119
|
+
) -> None: ...
|
|
120
|
+
def HasField(self, field_name: typing.Literal["state", b"state"]) -> builtins.bool: ...
|
|
121
|
+
def ClearField(self, field_name: typing.Literal["node_config", b"node_config", "node_id", b"node_id", "run_config", b"run_config", "run_id", b"run_id", "state", b"state"]) -> None: ...
|
|
122
|
+
|
|
94
123
|
global___Context = Context
|
|
95
124
|
|
|
125
|
+
@typing.final
|
|
96
126
|
class Metadata(google.protobuf.message.Message):
|
|
97
127
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
128
|
+
|
|
98
129
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
99
130
|
MESSAGE_ID_FIELD_NUMBER: builtins.int
|
|
100
131
|
SRC_NODE_ID_FIELD_NUMBER: builtins.int
|
|
@@ -105,149 +136,186 @@ class Metadata(google.protobuf.message.Message):
|
|
|
105
136
|
MESSAGE_TYPE_FIELD_NUMBER: builtins.int
|
|
106
137
|
CREATED_AT_FIELD_NUMBER: builtins.int
|
|
107
138
|
run_id: builtins.int
|
|
108
|
-
message_id:
|
|
139
|
+
message_id: builtins.str
|
|
109
140
|
src_node_id: builtins.int
|
|
110
141
|
dst_node_id: builtins.int
|
|
111
|
-
reply_to_message_id:
|
|
112
|
-
group_id:
|
|
142
|
+
reply_to_message_id: builtins.str
|
|
143
|
+
group_id: builtins.str
|
|
113
144
|
ttl: builtins.float
|
|
114
|
-
message_type:
|
|
145
|
+
message_type: builtins.str
|
|
115
146
|
created_at: builtins.float
|
|
116
|
-
def __init__(
|
|
147
|
+
def __init__(
|
|
148
|
+
self,
|
|
117
149
|
*,
|
|
118
150
|
run_id: builtins.int = ...,
|
|
119
|
-
message_id:
|
|
151
|
+
message_id: builtins.str = ...,
|
|
120
152
|
src_node_id: builtins.int = ...,
|
|
121
153
|
dst_node_id: builtins.int = ...,
|
|
122
|
-
reply_to_message_id:
|
|
123
|
-
group_id:
|
|
154
|
+
reply_to_message_id: builtins.str = ...,
|
|
155
|
+
group_id: builtins.str = ...,
|
|
124
156
|
ttl: builtins.float = ...,
|
|
125
|
-
message_type:
|
|
157
|
+
message_type: builtins.str = ...,
|
|
126
158
|
created_at: builtins.float = ...,
|
|
127
|
-
|
|
128
|
-
def ClearField(self, field_name:
|
|
159
|
+
) -> None: ...
|
|
160
|
+
def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "dst_node_id", b"dst_node_id", "group_id", b"group_id", "message_id", b"message_id", "message_type", b"message_type", "reply_to_message_id", b"reply_to_message_id", "run_id", b"run_id", "src_node_id", b"src_node_id", "ttl", b"ttl"]) -> None: ...
|
|
161
|
+
|
|
129
162
|
global___Metadata = Metadata
|
|
130
163
|
|
|
164
|
+
@typing.final
|
|
131
165
|
class ObjectIDs(google.protobuf.message.Message):
|
|
132
166
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
167
|
+
|
|
133
168
|
OBJECT_IDS_FIELD_NUMBER: builtins.int
|
|
134
169
|
@property
|
|
135
|
-
def object_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
|
|
136
|
-
def __init__(
|
|
170
|
+
def object_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
171
|
+
def __init__(
|
|
172
|
+
self,
|
|
137
173
|
*,
|
|
138
|
-
object_ids:
|
|
139
|
-
|
|
140
|
-
def ClearField(self, field_name:
|
|
174
|
+
object_ids: collections.abc.Iterable[builtins.str] | None = ...,
|
|
175
|
+
) -> None: ...
|
|
176
|
+
def ClearField(self, field_name: typing.Literal["object_ids", b"object_ids"]) -> None: ...
|
|
177
|
+
|
|
141
178
|
global___ObjectIDs = ObjectIDs
|
|
142
179
|
|
|
180
|
+
@typing.final
|
|
143
181
|
class ObjectTree(google.protobuf.message.Message):
|
|
144
182
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
183
|
+
|
|
145
184
|
OBJECT_ID_FIELD_NUMBER: builtins.int
|
|
146
185
|
CHILDREN_FIELD_NUMBER: builtins.int
|
|
147
|
-
object_id:
|
|
186
|
+
object_id: builtins.str
|
|
148
187
|
@property
|
|
149
188
|
def children(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObjectTree]: ...
|
|
150
|
-
def __init__(
|
|
189
|
+
def __init__(
|
|
190
|
+
self,
|
|
151
191
|
*,
|
|
152
|
-
object_id:
|
|
153
|
-
children:
|
|
154
|
-
|
|
155
|
-
def ClearField(self, field_name:
|
|
192
|
+
object_id: builtins.str = ...,
|
|
193
|
+
children: collections.abc.Iterable[global___ObjectTree] | None = ...,
|
|
194
|
+
) -> None: ...
|
|
195
|
+
def ClearField(self, field_name: typing.Literal["children", b"children", "object_id", b"object_id"]) -> None: ...
|
|
196
|
+
|
|
156
197
|
global___ObjectTree = ObjectTree
|
|
157
198
|
|
|
199
|
+
@typing.final
|
|
158
200
|
class PushObjectRequest(google.protobuf.message.Message):
|
|
159
201
|
"""PushObject messages"""
|
|
202
|
+
|
|
160
203
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
204
|
+
|
|
161
205
|
NODE_FIELD_NUMBER: builtins.int
|
|
162
206
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
163
207
|
OBJECT_ID_FIELD_NUMBER: builtins.int
|
|
164
208
|
OBJECT_CONTENT_FIELD_NUMBER: builtins.int
|
|
165
|
-
@property
|
|
166
|
-
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
167
209
|
run_id: builtins.int
|
|
168
|
-
object_id:
|
|
210
|
+
object_id: builtins.str
|
|
169
211
|
object_content: builtins.bytes
|
|
170
|
-
|
|
212
|
+
@property
|
|
213
|
+
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
214
|
+
def __init__(
|
|
215
|
+
self,
|
|
171
216
|
*,
|
|
172
|
-
node:
|
|
217
|
+
node: flwr.proto.node_pb2.Node | None = ...,
|
|
173
218
|
run_id: builtins.int = ...,
|
|
174
|
-
object_id:
|
|
219
|
+
object_id: builtins.str = ...,
|
|
175
220
|
object_content: builtins.bytes = ...,
|
|
176
|
-
|
|
177
|
-
def HasField(self, field_name:
|
|
178
|
-
def ClearField(self, field_name:
|
|
221
|
+
) -> None: ...
|
|
222
|
+
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
223
|
+
def ClearField(self, field_name: typing.Literal["node", b"node", "object_content", b"object_content", "object_id", b"object_id", "run_id", b"run_id"]) -> None: ...
|
|
224
|
+
|
|
179
225
|
global___PushObjectRequest = PushObjectRequest
|
|
180
226
|
|
|
227
|
+
@typing.final
|
|
181
228
|
class PushObjectResponse(google.protobuf.message.Message):
|
|
182
229
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
230
|
+
|
|
183
231
|
STORED_FIELD_NUMBER: builtins.int
|
|
184
232
|
stored: builtins.bool
|
|
185
|
-
def __init__(
|
|
233
|
+
def __init__(
|
|
234
|
+
self,
|
|
186
235
|
*,
|
|
187
236
|
stored: builtins.bool = ...,
|
|
188
|
-
|
|
189
|
-
def ClearField(self, field_name:
|
|
237
|
+
) -> None: ...
|
|
238
|
+
def ClearField(self, field_name: typing.Literal["stored", b"stored"]) -> None: ...
|
|
239
|
+
|
|
190
240
|
global___PushObjectResponse = PushObjectResponse
|
|
191
241
|
|
|
242
|
+
@typing.final
|
|
192
243
|
class PullObjectRequest(google.protobuf.message.Message):
|
|
193
244
|
"""PullObject messages"""
|
|
245
|
+
|
|
194
246
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
247
|
+
|
|
195
248
|
NODE_FIELD_NUMBER: builtins.int
|
|
196
249
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
197
250
|
OBJECT_ID_FIELD_NUMBER: builtins.int
|
|
251
|
+
run_id: builtins.int
|
|
252
|
+
object_id: builtins.str
|
|
198
253
|
@property
|
|
199
254
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
def __init__(self,
|
|
255
|
+
def __init__(
|
|
256
|
+
self,
|
|
203
257
|
*,
|
|
204
|
-
node:
|
|
258
|
+
node: flwr.proto.node_pb2.Node | None = ...,
|
|
205
259
|
run_id: builtins.int = ...,
|
|
206
|
-
object_id:
|
|
207
|
-
|
|
208
|
-
def HasField(self, field_name:
|
|
209
|
-
def ClearField(self, field_name:
|
|
260
|
+
object_id: builtins.str = ...,
|
|
261
|
+
) -> None: ...
|
|
262
|
+
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
263
|
+
def ClearField(self, field_name: typing.Literal["node", b"node", "object_id", b"object_id", "run_id", b"run_id"]) -> None: ...
|
|
264
|
+
|
|
210
265
|
global___PullObjectRequest = PullObjectRequest
|
|
211
266
|
|
|
267
|
+
@typing.final
|
|
212
268
|
class PullObjectResponse(google.protobuf.message.Message):
|
|
213
269
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
270
|
+
|
|
214
271
|
OBJECT_FOUND_FIELD_NUMBER: builtins.int
|
|
215
272
|
OBJECT_AVAILABLE_FIELD_NUMBER: builtins.int
|
|
216
273
|
OBJECT_CONTENT_FIELD_NUMBER: builtins.int
|
|
217
274
|
object_found: builtins.bool
|
|
218
275
|
object_available: builtins.bool
|
|
219
276
|
object_content: builtins.bytes
|
|
220
|
-
def __init__(
|
|
277
|
+
def __init__(
|
|
278
|
+
self,
|
|
221
279
|
*,
|
|
222
280
|
object_found: builtins.bool = ...,
|
|
223
281
|
object_available: builtins.bool = ...,
|
|
224
282
|
object_content: builtins.bytes = ...,
|
|
225
|
-
|
|
226
|
-
def ClearField(self, field_name:
|
|
283
|
+
) -> None: ...
|
|
284
|
+
def ClearField(self, field_name: typing.Literal["object_available", b"object_available", "object_content", b"object_content", "object_found", b"object_found"]) -> None: ...
|
|
285
|
+
|
|
227
286
|
global___PullObjectResponse = PullObjectResponse
|
|
228
287
|
|
|
288
|
+
@typing.final
|
|
229
289
|
class ConfirmMessageReceivedRequest(google.protobuf.message.Message):
|
|
230
290
|
"""ConfirmMessageReceived messages"""
|
|
291
|
+
|
|
231
292
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
293
|
+
|
|
232
294
|
NODE_FIELD_NUMBER: builtins.int
|
|
233
295
|
RUN_ID_FIELD_NUMBER: builtins.int
|
|
234
296
|
MESSAGE_OBJECT_ID_FIELD_NUMBER: builtins.int
|
|
297
|
+
run_id: builtins.int
|
|
298
|
+
message_object_id: builtins.str
|
|
235
299
|
@property
|
|
236
300
|
def node(self) -> flwr.proto.node_pb2.Node: ...
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
def __init__(self,
|
|
301
|
+
def __init__(
|
|
302
|
+
self,
|
|
240
303
|
*,
|
|
241
|
-
node:
|
|
304
|
+
node: flwr.proto.node_pb2.Node | None = ...,
|
|
242
305
|
run_id: builtins.int = ...,
|
|
243
|
-
message_object_id:
|
|
244
|
-
|
|
245
|
-
def HasField(self, field_name:
|
|
246
|
-
def ClearField(self, field_name:
|
|
306
|
+
message_object_id: builtins.str = ...,
|
|
307
|
+
) -> None: ...
|
|
308
|
+
def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
|
|
309
|
+
def ClearField(self, field_name: typing.Literal["message_object_id", b"message_object_id", "node", b"node", "run_id", b"run_id"]) -> None: ...
|
|
310
|
+
|
|
247
311
|
global___ConfirmMessageReceivedRequest = ConfirmMessageReceivedRequest
|
|
248
312
|
|
|
313
|
+
@typing.final
|
|
249
314
|
class ConfirmMessageReceivedResponse(google.protobuf.message.Message):
|
|
250
315
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
251
|
-
|
|
252
|
-
|
|
316
|
+
|
|
317
|
+
def __init__(
|
|
318
|
+
self,
|
|
319
|
+
) -> None: ...
|
|
320
|
+
|
|
253
321
|
global___ConfirmMessageReceivedResponse = ConfirmMessageReceivedResponse
|
flwr/proto/message_pb2_grpc.py
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
|
+
import warnings
|
|
4
5
|
|
|
6
|
+
|
|
7
|
+
GRPC_GENERATED_VERSION = '1.70.0'
|
|
8
|
+
GRPC_VERSION = grpc.__version__
|
|
9
|
+
_version_not_supported = False
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from grpc._utilities import first_version_is_lower
|
|
13
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
14
|
+
except ImportError:
|
|
15
|
+
_version_not_supported = True
|
|
16
|
+
|
|
17
|
+
if _version_not_supported:
|
|
18
|
+
raise RuntimeError(
|
|
19
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
20
|
+
+ f' but the generated code in flwr/proto/message_pb2_grpc.py depends on'
|
|
21
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
22
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
23
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
24
|
+
)
|
flwr/proto/message_pb2_grpc.pyi
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
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
|
+
|
|
20
|
+
import abc
|
|
21
|
+
import collections.abc
|
|
22
|
+
import grpc
|
|
23
|
+
import grpc.aio
|
|
24
|
+
import typing
|
|
25
|
+
|
|
26
|
+
_T = typing.TypeVar("_T")
|
|
27
|
+
|
|
28
|
+
class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
|
|
29
|
+
|
|
30
|
+
class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
|
|
31
|
+
...
|
flwr/proto/node_pb2.py
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
4
|
# source: flwr/proto/node.proto
|
|
4
|
-
# Protobuf Python Version:
|
|
5
|
+
# Protobuf Python Version: 5.29.0
|
|
5
6
|
"""Generated protocol buffer code."""
|
|
6
7
|
from google.protobuf import descriptor as _descriptor
|
|
7
8
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
8
10
|
from google.protobuf import symbol_database as _symbol_database
|
|
9
11
|
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
0,
|
|
17
|
+
'',
|
|
18
|
+
'flwr/proto/node.proto'
|
|
19
|
+
)
|
|
10
20
|
# @@protoc_insertion_point(imports)
|
|
11
21
|
|
|
12
22
|
_sym_db = _symbol_database.Default()
|
|
@@ -14,15 +24,15 @@ _sym_db = _symbol_database.Default()
|
|
|
14
24
|
|
|
15
25
|
|
|
16
26
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/node.proto\x12\nflwr.proto\"\x17\n\x04Node\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/node.proto\x12\nflwr.proto\"\x17\n\x04Node\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\"\xe7\x02\n\x08NodeInfo\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\x12\x11\n\towner_aid\x18\x02 \x01(\t\x12\x12\n\nowner_name\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x15\n\rregistered_at\x18\x05 \x01(\t\x12\x1e\n\x11last_activated_at\x18\x06 \x01(\tH\x00\x88\x01\x01\x12 \n\x13last_deactivated_at\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0funregistered_at\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0conline_until\x18\t \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\x12heartbeat_interval\x18\n \x01(\x01\x12\x12\n\npublic_key\x18\x0b \x01(\x0c\x42\x14\n\x12_last_activated_atB\x16\n\x14_last_deactivated_atB\x12\n\x10_unregistered_atB\x0f\n\r_online_untilb\x06proto3')
|
|
18
28
|
|
|
19
29
|
_globals = globals()
|
|
20
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
31
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.node_pb2', _globals)
|
|
22
|
-
if _descriptor._USE_C_DESCRIPTORS
|
|
23
|
-
DESCRIPTOR.
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
24
34
|
_globals['_NODE']._serialized_start=37
|
|
25
35
|
_globals['_NODE']._serialized_end=60
|
|
26
36
|
_globals['_NODEINFO']._serialized_start=63
|
|
27
|
-
_globals['_NODEINFO']._serialized_end=
|
|
37
|
+
_globals['_NODEINFO']._serialized_end=422
|
|
28
38
|
# @@protoc_insertion_point(module_scope)
|
flwr/proto/node_pb2.pyi
CHANGED
|
@@ -1,30 +1,51 @@
|
|
|
1
1
|
"""
|
|
2
2
|
@generated by mypy-protobuf. Do not edit manually!
|
|
3
3
|
isort:skip_file
|
|
4
|
+
Copyright 2022 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
|
|
6
21
|
import google.protobuf.descriptor
|
|
7
22
|
import google.protobuf.message
|
|
8
23
|
import typing
|
|
9
|
-
import typing_extensions
|
|
10
24
|
|
|
11
25
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
12
26
|
|
|
27
|
+
@typing.final
|
|
13
28
|
class Node(google.protobuf.message.Message):
|
|
14
29
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
30
|
+
|
|
15
31
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
16
32
|
node_id: builtins.int
|
|
17
|
-
def __init__(
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
18
35
|
*,
|
|
19
36
|
node_id: builtins.int = ...,
|
|
20
|
-
|
|
21
|
-
def ClearField(self, field_name:
|
|
37
|
+
) -> None: ...
|
|
38
|
+
def ClearField(self, field_name: typing.Literal["node_id", b"node_id"]) -> None: ...
|
|
39
|
+
|
|
22
40
|
global___Node = Node
|
|
23
41
|
|
|
42
|
+
@typing.final
|
|
24
43
|
class NodeInfo(google.protobuf.message.Message):
|
|
25
44
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
45
|
+
|
|
26
46
|
NODE_ID_FIELD_NUMBER: builtins.int
|
|
27
47
|
OWNER_AID_FIELD_NUMBER: builtins.int
|
|
48
|
+
OWNER_NAME_FIELD_NUMBER: builtins.int
|
|
28
49
|
STATUS_FIELD_NUMBER: builtins.int
|
|
29
50
|
REGISTERED_AT_FIELD_NUMBER: builtins.int
|
|
30
51
|
LAST_ACTIVATED_AT_FIELD_NUMBER: builtins.int
|
|
@@ -34,36 +55,40 @@ class NodeInfo(google.protobuf.message.Message):
|
|
|
34
55
|
HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
|
|
35
56
|
PUBLIC_KEY_FIELD_NUMBER: builtins.int
|
|
36
57
|
node_id: builtins.int
|
|
37
|
-
owner_aid:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
58
|
+
owner_aid: builtins.str
|
|
59
|
+
owner_name: builtins.str
|
|
60
|
+
status: builtins.str
|
|
61
|
+
registered_at: builtins.str
|
|
62
|
+
last_activated_at: builtins.str
|
|
63
|
+
last_deactivated_at: builtins.str
|
|
64
|
+
unregistered_at: builtins.str
|
|
43
65
|
online_until: builtins.float
|
|
44
66
|
heartbeat_interval: builtins.float
|
|
45
67
|
public_key: builtins.bytes
|
|
46
|
-
def __init__(
|
|
68
|
+
def __init__(
|
|
69
|
+
self,
|
|
47
70
|
*,
|
|
48
71
|
node_id: builtins.int = ...,
|
|
49
|
-
owner_aid:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
72
|
+
owner_aid: builtins.str = ...,
|
|
73
|
+
owner_name: builtins.str = ...,
|
|
74
|
+
status: builtins.str = ...,
|
|
75
|
+
registered_at: builtins.str = ...,
|
|
76
|
+
last_activated_at: builtins.str | None = ...,
|
|
77
|
+
last_deactivated_at: builtins.str | None = ...,
|
|
78
|
+
unregistered_at: builtins.str | None = ...,
|
|
79
|
+
online_until: builtins.float | None = ...,
|
|
56
80
|
heartbeat_interval: builtins.float = ...,
|
|
57
81
|
public_key: builtins.bytes = ...,
|
|
58
|
-
|
|
59
|
-
def HasField(self, field_name:
|
|
60
|
-
def ClearField(self, field_name:
|
|
82
|
+
) -> None: ...
|
|
83
|
+
def HasField(self, field_name: typing.Literal["_last_activated_at", b"_last_activated_at", "_last_deactivated_at", b"_last_deactivated_at", "_online_until", b"_online_until", "_unregistered_at", b"_unregistered_at", "last_activated_at", b"last_activated_at", "last_deactivated_at", b"last_deactivated_at", "online_until", b"online_until", "unregistered_at", b"unregistered_at"]) -> builtins.bool: ...
|
|
84
|
+
def ClearField(self, field_name: typing.Literal["_last_activated_at", b"_last_activated_at", "_last_deactivated_at", b"_last_deactivated_at", "_online_until", b"_online_until", "_unregistered_at", b"_unregistered_at", "heartbeat_interval", b"heartbeat_interval", "last_activated_at", b"last_activated_at", "last_deactivated_at", b"last_deactivated_at", "node_id", b"node_id", "online_until", b"online_until", "owner_aid", b"owner_aid", "owner_name", b"owner_name", "public_key", b"public_key", "registered_at", b"registered_at", "status", b"status", "unregistered_at", b"unregistered_at"]) -> None: ...
|
|
61
85
|
@typing.overload
|
|
62
|
-
def WhichOneof(self, oneof_group:
|
|
86
|
+
def WhichOneof(self, oneof_group: typing.Literal["_last_activated_at", b"_last_activated_at"]) -> typing.Literal["last_activated_at"] | None: ...
|
|
63
87
|
@typing.overload
|
|
64
|
-
def WhichOneof(self, oneof_group:
|
|
88
|
+
def WhichOneof(self, oneof_group: typing.Literal["_last_deactivated_at", b"_last_deactivated_at"]) -> typing.Literal["last_deactivated_at"] | None: ...
|
|
65
89
|
@typing.overload
|
|
66
|
-
def WhichOneof(self, oneof_group:
|
|
90
|
+
def WhichOneof(self, oneof_group: typing.Literal["_online_until", b"_online_until"]) -> typing.Literal["online_until"] | None: ...
|
|
67
91
|
@typing.overload
|
|
68
|
-
def WhichOneof(self, oneof_group:
|
|
92
|
+
def WhichOneof(self, oneof_group: typing.Literal["_unregistered_at", b"_unregistered_at"]) -> typing.Literal["unregistered_at"] | None: ...
|
|
93
|
+
|
|
69
94
|
global___NodeInfo = NodeInfo
|
flwr/proto/node_pb2_grpc.py
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
|
+
import warnings
|
|
4
5
|
|
|
6
|
+
|
|
7
|
+
GRPC_GENERATED_VERSION = '1.70.0'
|
|
8
|
+
GRPC_VERSION = grpc.__version__
|
|
9
|
+
_version_not_supported = False
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from grpc._utilities import first_version_is_lower
|
|
13
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
14
|
+
except ImportError:
|
|
15
|
+
_version_not_supported = True
|
|
16
|
+
|
|
17
|
+
if _version_not_supported:
|
|
18
|
+
raise RuntimeError(
|
|
19
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
20
|
+
+ f' but the generated code in flwr/proto/node_pb2_grpc.py depends on'
|
|
21
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
22
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
23
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
24
|
+
)
|