flwr-nightly 1.8.0.dev20240315__py3-none-any.whl → 1.11.0.dev20240813__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- flwr/cli/app.py +7 -0
- flwr/cli/build.py +150 -0
- flwr/cli/config_utils.py +219 -0
- flwr/cli/example.py +3 -1
- flwr/cli/install.py +227 -0
- flwr/cli/new/new.py +179 -48
- flwr/cli/new/templates/app/.gitignore.tpl +160 -0
- flwr/cli/new/templates/app/README.flowertune.md.tpl +56 -0
- flwr/cli/new/templates/app/README.md.tpl +1 -5
- flwr/cli/new/templates/app/code/__init__.py.tpl +1 -1
- flwr/cli/new/templates/app/code/client.huggingface.py.tpl +65 -0
- flwr/cli/new/templates/app/code/client.jax.py.tpl +56 -0
- flwr/cli/new/templates/app/code/client.mlx.py.tpl +93 -0
- flwr/cli/new/templates/app/code/client.numpy.py.tpl +3 -2
- flwr/cli/new/templates/app/code/client.pytorch.py.tpl +23 -11
- flwr/cli/new/templates/app/code/client.sklearn.py.tpl +97 -0
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +60 -1
- flwr/cli/new/templates/app/code/flwr_tune/__init__.py +15 -0
- flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +89 -0
- flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl +126 -0
- flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +34 -0
- flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +57 -0
- flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +59 -0
- flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +48 -0
- flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +11 -0
- flwr/cli/new/templates/app/code/server.huggingface.py.tpl +23 -0
- flwr/cli/new/templates/app/code/server.jax.py.tpl +20 -0
- flwr/cli/new/templates/app/code/server.mlx.py.tpl +20 -0
- flwr/cli/new/templates/app/code/server.numpy.py.tpl +17 -9
- flwr/cli/new/templates/app/code/server.pytorch.py.tpl +21 -18
- flwr/cli/new/templates/app/code/server.sklearn.py.tpl +24 -0
- flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +29 -1
- flwr/cli/new/templates/app/code/task.huggingface.py.tpl +99 -0
- flwr/cli/new/templates/app/code/task.jax.py.tpl +57 -0
- flwr/cli/new/templates/app/code/task.mlx.py.tpl +102 -0
- flwr/cli/new/templates/app/code/task.pytorch.py.tpl +28 -23
- flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +53 -0
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +39 -0
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +38 -0
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl +34 -0
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +39 -0
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +25 -12
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +29 -14
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +33 -0
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +29 -14
- flwr/cli/run/run.py +168 -17
- flwr/cli/utils.py +75 -4
- flwr/client/__init__.py +6 -1
- flwr/client/app.py +239 -248
- flwr/client/client_app.py +70 -9
- flwr/client/dpfedavg_numpy_client.py +1 -1
- flwr/client/grpc_adapter_client/__init__.py +15 -0
- flwr/client/grpc_adapter_client/connection.py +97 -0
- flwr/client/grpc_client/connection.py +18 -5
- flwr/client/grpc_rere_client/__init__.py +1 -1
- flwr/client/grpc_rere_client/client_interceptor.py +158 -0
- flwr/client/grpc_rere_client/connection.py +127 -33
- flwr/client/grpc_rere_client/grpc_adapter.py +140 -0
- flwr/client/heartbeat.py +74 -0
- flwr/client/message_handler/__init__.py +1 -1
- flwr/client/message_handler/message_handler.py +7 -7
- flwr/client/mod/__init__.py +5 -5
- flwr/client/mod/centraldp_mods.py +4 -2
- flwr/client/mod/comms_mods.py +4 -4
- flwr/client/mod/localdp_mod.py +9 -4
- flwr/client/mod/secure_aggregation/__init__.py +1 -1
- flwr/client/mod/secure_aggregation/secaggplus_mod.py +1 -1
- flwr/client/mod/utils.py +1 -1
- flwr/client/node_state.py +60 -10
- flwr/client/node_state_tests.py +4 -3
- flwr/client/rest_client/__init__.py +1 -1
- flwr/client/rest_client/connection.py +177 -157
- flwr/client/supernode/__init__.py +26 -0
- flwr/client/supernode/app.py +464 -0
- flwr/client/typing.py +1 -0
- flwr/common/__init__.py +13 -11
- flwr/common/address.py +1 -1
- flwr/common/config.py +193 -0
- flwr/common/constant.py +42 -1
- flwr/common/context.py +26 -1
- flwr/common/date.py +1 -1
- flwr/common/dp.py +1 -1
- flwr/common/grpc.py +6 -2
- flwr/common/logger.py +79 -8
- flwr/common/message.py +167 -105
- flwr/common/object_ref.py +126 -25
- flwr/common/record/__init__.py +1 -1
- flwr/common/record/parametersrecord.py +0 -1
- flwr/common/record/recordset.py +78 -27
- flwr/common/recordset_compat.py +8 -1
- flwr/common/retry_invoker.py +25 -13
- flwr/common/secure_aggregation/__init__.py +1 -1
- flwr/common/secure_aggregation/crypto/__init__.py +1 -1
- flwr/common/secure_aggregation/crypto/shamir.py +1 -1
- flwr/common/secure_aggregation/crypto/symmetric_encryption.py +21 -2
- flwr/common/secure_aggregation/ndarrays_arithmetic.py +1 -1
- flwr/common/secure_aggregation/quantization.py +1 -1
- flwr/common/secure_aggregation/secaggplus_constants.py +1 -1
- flwr/common/secure_aggregation/secaggplus_utils.py +1 -1
- flwr/common/serde.py +209 -3
- flwr/common/telemetry.py +25 -0
- flwr/common/typing.py +38 -0
- flwr/common/version.py +14 -0
- flwr/proto/clientappio_pb2.py +41 -0
- flwr/proto/clientappio_pb2.pyi +110 -0
- flwr/proto/clientappio_pb2_grpc.py +101 -0
- flwr/proto/clientappio_pb2_grpc.pyi +40 -0
- flwr/proto/common_pb2.py +36 -0
- flwr/proto/common_pb2.pyi +121 -0
- flwr/proto/common_pb2_grpc.py +4 -0
- flwr/proto/common_pb2_grpc.pyi +4 -0
- flwr/proto/driver_pb2.py +26 -19
- flwr/proto/driver_pb2.pyi +34 -0
- flwr/proto/driver_pb2_grpc.py +70 -0
- flwr/proto/driver_pb2_grpc.pyi +28 -0
- flwr/proto/exec_pb2.py +43 -0
- flwr/proto/exec_pb2.pyi +95 -0
- flwr/proto/exec_pb2_grpc.py +101 -0
- flwr/proto/exec_pb2_grpc.pyi +41 -0
- flwr/proto/fab_pb2.py +30 -0
- flwr/proto/fab_pb2.pyi +56 -0
- flwr/proto/fab_pb2_grpc.py +4 -0
- flwr/proto/fab_pb2_grpc.pyi +4 -0
- flwr/proto/fleet_pb2.py +29 -23
- flwr/proto/fleet_pb2.pyi +33 -0
- flwr/proto/fleet_pb2_grpc.py +102 -0
- flwr/proto/fleet_pb2_grpc.pyi +35 -0
- flwr/proto/grpcadapter_pb2.py +32 -0
- flwr/proto/grpcadapter_pb2.pyi +43 -0
- flwr/proto/grpcadapter_pb2_grpc.py +66 -0
- flwr/proto/grpcadapter_pb2_grpc.pyi +24 -0
- flwr/proto/message_pb2.py +41 -0
- flwr/proto/message_pb2.pyi +122 -0
- flwr/proto/message_pb2_grpc.py +4 -0
- flwr/proto/message_pb2_grpc.pyi +4 -0
- flwr/proto/run_pb2.py +35 -0
- flwr/proto/run_pb2.pyi +76 -0
- flwr/proto/run_pb2_grpc.py +4 -0
- flwr/proto/run_pb2_grpc.pyi +4 -0
- flwr/proto/task_pb2.py +7 -8
- flwr/proto/task_pb2.pyi +8 -5
- flwr/server/__init__.py +4 -8
- flwr/server/app.py +298 -350
- flwr/server/compat/app.py +6 -57
- flwr/server/compat/app_utils.py +5 -4
- flwr/server/compat/driver_client_proxy.py +29 -48
- flwr/server/compat/legacy_context.py +5 -4
- flwr/server/driver/__init__.py +2 -0
- flwr/server/driver/driver.py +22 -132
- flwr/server/driver/grpc_driver.py +224 -74
- flwr/server/driver/inmemory_driver.py +183 -0
- flwr/server/history.py +20 -20
- flwr/server/run_serverapp.py +121 -34
- flwr/server/server.py +11 -7
- flwr/server/server_app.py +59 -10
- flwr/server/serverapp_components.py +52 -0
- flwr/server/strategy/__init__.py +2 -2
- flwr/server/strategy/bulyan.py +1 -1
- flwr/server/strategy/dp_adaptive_clipping.py +3 -3
- flwr/server/strategy/dp_fixed_clipping.py +4 -3
- flwr/server/strategy/dpfedavg_adaptive.py +1 -1
- flwr/server/strategy/dpfedavg_fixed.py +1 -1
- flwr/server/strategy/fedadagrad.py +1 -1
- flwr/server/strategy/fedadam.py +1 -1
- flwr/server/strategy/fedavg_android.py +1 -1
- flwr/server/strategy/fedavgm.py +1 -1
- flwr/server/strategy/fedmedian.py +1 -1
- flwr/server/strategy/fedopt.py +1 -1
- flwr/server/strategy/fedprox.py +1 -1
- flwr/server/strategy/fedxgb_bagging.py +1 -1
- flwr/server/strategy/fedxgb_cyclic.py +1 -1
- flwr/server/strategy/fedxgb_nn_avg.py +1 -1
- flwr/server/strategy/fedyogi.py +1 -1
- flwr/server/strategy/krum.py +1 -1
- flwr/server/strategy/qfedavg.py +1 -1
- flwr/server/superlink/driver/__init__.py +1 -1
- flwr/server/superlink/driver/driver_grpc.py +1 -1
- flwr/server/superlink/driver/driver_servicer.py +51 -4
- flwr/server/superlink/ffs/__init__.py +24 -0
- flwr/server/superlink/ffs/disk_ffs.py +104 -0
- flwr/server/superlink/ffs/ffs.py +79 -0
- flwr/server/superlink/fleet/__init__.py +1 -1
- flwr/server/superlink/fleet/grpc_adapter/__init__.py +15 -0
- flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +131 -0
- flwr/server/superlink/fleet/grpc_bidi/__init__.py +1 -1
- flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +1 -1
- flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +1 -1
- flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +1 -1
- flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +8 -2
- flwr/server/superlink/fleet/grpc_rere/__init__.py +1 -1
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +30 -2
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +214 -0
- flwr/server/superlink/fleet/message_handler/__init__.py +1 -1
- flwr/server/superlink/fleet/message_handler/message_handler.py +42 -2
- flwr/server/superlink/fleet/rest_rere/__init__.py +1 -1
- flwr/server/superlink/fleet/rest_rere/rest_api.py +59 -1
- flwr/server/superlink/fleet/vce/backend/__init__.py +1 -1
- flwr/server/superlink/fleet/vce/backend/backend.py +5 -5
- flwr/server/superlink/fleet/vce/backend/raybackend.py +53 -56
- flwr/server/superlink/fleet/vce/vce_api.py +190 -127
- flwr/server/superlink/state/__init__.py +1 -1
- flwr/server/superlink/state/in_memory_state.py +159 -42
- flwr/server/superlink/state/sqlite_state.py +243 -39
- flwr/server/superlink/state/state.py +81 -6
- flwr/server/superlink/state/state_factory.py +11 -2
- flwr/server/superlink/state/utils.py +62 -0
- flwr/server/typing.py +2 -0
- flwr/server/utils/__init__.py +1 -1
- flwr/server/utils/tensorboard.py +1 -1
- flwr/server/utils/validator.py +23 -9
- flwr/server/workflow/default_workflows.py +67 -25
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +18 -6
- flwr/simulation/__init__.py +7 -4
- flwr/simulation/app.py +67 -36
- flwr/simulation/ray_transport/__init__.py +1 -1
- flwr/simulation/ray_transport/ray_actor.py +20 -46
- flwr/simulation/ray_transport/ray_client_proxy.py +36 -16
- flwr/simulation/run_simulation.py +308 -92
- flwr/superexec/__init__.py +21 -0
- flwr/superexec/app.py +184 -0
- flwr/superexec/deployment.py +185 -0
- flwr/superexec/exec_grpc.py +55 -0
- flwr/superexec/exec_servicer.py +70 -0
- flwr/superexec/executor.py +75 -0
- flwr/superexec/simulation.py +193 -0
- {flwr_nightly-1.8.0.dev20240315.dist-info → flwr_nightly-1.11.0.dev20240813.dist-info}/METADATA +10 -6
- flwr_nightly-1.11.0.dev20240813.dist-info/RECORD +288 -0
- flwr_nightly-1.11.0.dev20240813.dist-info/entry_points.txt +10 -0
- flwr/cli/flower_toml.py +0 -140
- flwr/cli/new/templates/app/flower.toml.tpl +0 -13
- flwr/cli/new/templates/app/requirements.numpy.txt.tpl +0 -2
- flwr/cli/new/templates/app/requirements.pytorch.txt.tpl +0 -4
- flwr/cli/new/templates/app/requirements.tensorflow.txt.tpl +0 -4
- flwr_nightly-1.8.0.dev20240315.dist-info/RECORD +0 -211
- flwr_nightly-1.8.0.dev20240315.dist-info/entry_points.txt +0 -9
- {flwr_nightly-1.8.0.dev20240315.dist-info → flwr_nightly-1.11.0.dev20240813.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.8.0.dev20240315.dist-info → flwr_nightly-1.11.0.dev20240813.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Copyright 2024 Flower Labs GmbH. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
"""Simulation engine executor."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
import subprocess
|
|
19
|
+
import sys
|
|
20
|
+
from logging import ERROR, INFO, WARN
|
|
21
|
+
from typing import Optional
|
|
22
|
+
|
|
23
|
+
from typing_extensions import override
|
|
24
|
+
|
|
25
|
+
from flwr.cli.config_utils import load_and_validate
|
|
26
|
+
from flwr.cli.install import install_from_fab
|
|
27
|
+
from flwr.common.constant import RUN_ID_NUM_BYTES
|
|
28
|
+
from flwr.common.logger import log
|
|
29
|
+
from flwr.common.typing import UserConfig
|
|
30
|
+
from flwr.server.superlink.state.utils import generate_rand_int_from_bytes
|
|
31
|
+
|
|
32
|
+
from .executor import Executor, RunTracker
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _user_config_to_str(user_config: UserConfig) -> str:
|
|
36
|
+
"""Convert override user config to string."""
|
|
37
|
+
user_config_list_str = []
|
|
38
|
+
for key, value in user_config.items():
|
|
39
|
+
if isinstance(value, bool):
|
|
40
|
+
user_config_list_str.append(f"{key}={str(value).lower()}")
|
|
41
|
+
elif isinstance(value, (int, float)):
|
|
42
|
+
user_config_list_str.append(f"{key}={value}")
|
|
43
|
+
elif isinstance(value, str):
|
|
44
|
+
user_config_list_str.append(f'{key}="{value}"')
|
|
45
|
+
else:
|
|
46
|
+
raise ValueError(
|
|
47
|
+
"Only types `bool`, `float`, `int` and `str` are supported"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
user_config_str = ",".join(user_config_list_str)
|
|
51
|
+
return user_config_str
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class SimulationEngine(Executor):
|
|
55
|
+
"""Simulation engine executor.
|
|
56
|
+
|
|
57
|
+
Parameters
|
|
58
|
+
----------
|
|
59
|
+
num_supernodes: Opitonal[str] (default: None)
|
|
60
|
+
Total number of nodes to involve in the simulation.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
def __init__(
|
|
64
|
+
self,
|
|
65
|
+
num_supernodes: Optional[int] = None,
|
|
66
|
+
verbose: Optional[bool] = False,
|
|
67
|
+
) -> None:
|
|
68
|
+
self.num_supernodes = num_supernodes
|
|
69
|
+
self.verbose = verbose
|
|
70
|
+
|
|
71
|
+
@override
|
|
72
|
+
def set_config(
|
|
73
|
+
self,
|
|
74
|
+
config: UserConfig,
|
|
75
|
+
) -> None:
|
|
76
|
+
"""Set executor config arguments.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
config : UserConfig
|
|
81
|
+
A dictionary for configuration values.
|
|
82
|
+
Supported configuration key/value pairs:
|
|
83
|
+
- "num-supernodes": int
|
|
84
|
+
Number of nodes to register for the simulation.
|
|
85
|
+
- "verbose": bool
|
|
86
|
+
Set verbosity of logs.
|
|
87
|
+
"""
|
|
88
|
+
if num_supernodes := config.get("num-supernodes"):
|
|
89
|
+
if not isinstance(num_supernodes, int):
|
|
90
|
+
raise ValueError("The `num-supernodes` value should be of type `int`.")
|
|
91
|
+
self.num_supernodes = num_supernodes
|
|
92
|
+
elif self.num_supernodes is None:
|
|
93
|
+
log(
|
|
94
|
+
ERROR,
|
|
95
|
+
"To start a run with the simulation plugin, please specify "
|
|
96
|
+
"the number of SuperNodes. This can be done by using the "
|
|
97
|
+
"`--executor-config` argument when launching the SuperExec.",
|
|
98
|
+
)
|
|
99
|
+
raise ValueError(
|
|
100
|
+
"`num-supernodes` must not be `None`, it must be a valid "
|
|
101
|
+
"positive integer."
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if verbose := config.get("verbose"):
|
|
105
|
+
if not isinstance(verbose, bool):
|
|
106
|
+
raise ValueError(
|
|
107
|
+
"The `verbose` value must be a string `true` or `false`."
|
|
108
|
+
)
|
|
109
|
+
self.verbose = verbose
|
|
110
|
+
|
|
111
|
+
@override
|
|
112
|
+
def start_run(
|
|
113
|
+
self,
|
|
114
|
+
fab_file: bytes,
|
|
115
|
+
override_config: UserConfig,
|
|
116
|
+
federation_config: UserConfig,
|
|
117
|
+
) -> Optional[RunTracker]:
|
|
118
|
+
"""Start run using the Flower Simulation Engine."""
|
|
119
|
+
if self.num_supernodes is None:
|
|
120
|
+
raise ValueError(
|
|
121
|
+
"Error in `SuperExec` (`SimulationEngine` executor):\n\n"
|
|
122
|
+
"`num-supernodes` must not be `None`, it must be a valid "
|
|
123
|
+
"positive integer. In order to start this simulation executor "
|
|
124
|
+
"with a specified number of `SuperNodes`, you can either provide "
|
|
125
|
+
"a `--executor` that has been initialized with a number of nodes "
|
|
126
|
+
"to the `flower-superexec` CLI, or `--executor-config num-supernodes=N`"
|
|
127
|
+
"to the `flower-superexec` CLI."
|
|
128
|
+
)
|
|
129
|
+
try:
|
|
130
|
+
|
|
131
|
+
# Install FAB to flwr dir
|
|
132
|
+
fab_path = install_from_fab(fab_file, None, True)
|
|
133
|
+
|
|
134
|
+
# Install FAB Python package
|
|
135
|
+
subprocess.run(
|
|
136
|
+
[sys.executable, "-m", "pip", "install", "--no-deps", str(fab_path)],
|
|
137
|
+
stdout=None if self.verbose else subprocess.DEVNULL,
|
|
138
|
+
stderr=None if self.verbose else subprocess.DEVNULL,
|
|
139
|
+
check=True,
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
# Load and validate config
|
|
143
|
+
config, errors, warnings = load_and_validate(fab_path / "pyproject.toml")
|
|
144
|
+
if errors:
|
|
145
|
+
raise ValueError(errors)
|
|
146
|
+
|
|
147
|
+
if warnings:
|
|
148
|
+
log(WARN, warnings)
|
|
149
|
+
|
|
150
|
+
if config is None:
|
|
151
|
+
raise ValueError(
|
|
152
|
+
"Config extracted from FAB's pyproject.toml is not valid"
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# In Simulation there is no SuperLink, still we create a run_id
|
|
156
|
+
run_id = generate_rand_int_from_bytes(RUN_ID_NUM_BYTES)
|
|
157
|
+
log(INFO, "Created run %s", str(run_id))
|
|
158
|
+
|
|
159
|
+
# Prepare commnand
|
|
160
|
+
command = [
|
|
161
|
+
"flower-simulation",
|
|
162
|
+
"--app",
|
|
163
|
+
f"{str(fab_path)}",
|
|
164
|
+
"--num-supernodes",
|
|
165
|
+
f"{federation_config.get('num-supernodes', self.num_supernodes)}",
|
|
166
|
+
"--run-id",
|
|
167
|
+
str(run_id),
|
|
168
|
+
]
|
|
169
|
+
|
|
170
|
+
if override_config:
|
|
171
|
+
override_config_str = _user_config_to_str(override_config)
|
|
172
|
+
command.extend(["--run-config", f"{override_config_str}"])
|
|
173
|
+
|
|
174
|
+
# Start Simulation
|
|
175
|
+
proc = subprocess.Popen( # pylint: disable=consider-using-with
|
|
176
|
+
command,
|
|
177
|
+
text=True,
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
log(INFO, "Started run %s", str(run_id))
|
|
181
|
+
|
|
182
|
+
return RunTracker(
|
|
183
|
+
run_id=run_id,
|
|
184
|
+
proc=proc,
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
# pylint: disable-next=broad-except
|
|
188
|
+
except Exception as e:
|
|
189
|
+
log(ERROR, "Could not start run: %s", str(e))
|
|
190
|
+
return None
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
executor = SimulationEngine()
|
{flwr_nightly-1.8.0.dev20240315.dist-info → flwr_nightly-1.11.0.dev20240813.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flwr-nightly
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.11.0.dev20240813
|
|
4
4
|
Summary: Flower: A Friendly Federated Learning Framework
|
|
5
5
|
Home-page: https://flower.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -33,16 +33,17 @@ Classifier: Typing :: Typed
|
|
|
33
33
|
Provides-Extra: rest
|
|
34
34
|
Provides-Extra: simulation
|
|
35
35
|
Requires-Dist: cryptography (>=42.0.4,<43.0.0)
|
|
36
|
-
Requires-Dist: grpcio (>=1.60.0,<2.0.0)
|
|
36
|
+
Requires-Dist: grpcio (>=1.60.0,<2.0.0,!=1.64.2,!=1.65.1,!=1.65.2,!=1.65.4)
|
|
37
37
|
Requires-Dist: iterators (>=0.0.2,<0.0.3)
|
|
38
38
|
Requires-Dist: numpy (>=1.21.0,<2.0.0)
|
|
39
|
+
Requires-Dist: pathspec (>=0.12.1,<0.13.0)
|
|
39
40
|
Requires-Dist: protobuf (>=4.25.2,<5.0.0)
|
|
40
41
|
Requires-Dist: pycryptodome (>=3.18.0,<4.0.0)
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist: ray (==2.6.3) ; extra == "simulation"
|
|
42
|
+
Requires-Dist: ray (==2.10.0) ; (python_version >= "3.8" and python_version < "3.12") and (extra == "simulation")
|
|
43
43
|
Requires-Dist: requests (>=2.31.0,<3.0.0) ; extra == "rest"
|
|
44
44
|
Requires-Dist: starlette (>=0.31.0,<0.32.0) ; extra == "rest"
|
|
45
45
|
Requires-Dist: tomli (>=2.0.1,<3.0.0)
|
|
46
|
+
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
|
|
46
47
|
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
|
|
47
48
|
Requires-Dist: uvicorn[standard] (>=0.23.0,<0.24.0) ; extra == "rest"
|
|
48
49
|
Project-URL: Documentation, https://flower.ai
|
|
@@ -194,14 +195,17 @@ Other [examples](https://github.com/adap/flower/tree/main/examples):
|
|
|
194
195
|
- [PyTorch: From Centralized to Federated](https://github.com/adap/flower/tree/main/examples/pytorch-from-centralized-to-federated)
|
|
195
196
|
- [Vertical FL](https://github.com/adap/flower/tree/main/examples/vertical-fl)
|
|
196
197
|
- [Federated Finetuning of OpenAI's Whisper](https://github.com/adap/flower/tree/main/examples/whisper-federated-finetuning)
|
|
197
|
-
- [Federated Finetuning of Large Language Model](https://github.com/adap/flower/tree/main/examples/
|
|
198
|
+
- [Federated Finetuning of Large Language Model](https://github.com/adap/flower/tree/main/examples/llm-flowertune)
|
|
198
199
|
- [Federated Finetuning of a Vision Transformer](https://github.com/adap/flower/tree/main/examples/vit-finetune)
|
|
199
200
|
- [Advanced Flower with TensorFlow/Keras](https://github.com/adap/flower/tree/main/examples/advanced-tensorflow)
|
|
200
201
|
- [Advanced Flower with PyTorch](https://github.com/adap/flower/tree/main/examples/advanced-pytorch)
|
|
201
202
|
- Single-Machine Simulation of Federated Learning Systems ([PyTorch](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)) ([Tensorflow](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow))
|
|
202
203
|
- [Comprehensive Flower+XGBoost](https://github.com/adap/flower/tree/main/examples/xgboost-comprehensive)
|
|
203
204
|
- [Flower through Docker Compose and with Grafana dashboard](https://github.com/adap/flower/tree/main/examples/flower-via-docker-compose)
|
|
204
|
-
- [Flower with KaplanMeierFitter from the lifelines library](https://github.com/adap/flower/tree/main/examples/federated-
|
|
205
|
+
- [Flower with KaplanMeierFitter from the lifelines library](https://github.com/adap/flower/tree/main/examples/federated-kaplan-meier-fitter)
|
|
206
|
+
- [Sample Level Privacy with Opacus](https://github.com/adap/flower/tree/main/examples/opacus)
|
|
207
|
+
- [Sample Level Privacy with TensorFlow-Privacy](https://github.com/adap/flower/tree/main/examples/tensorflow-privacy)
|
|
208
|
+
- [Flower with a Tabular Dataset](https://github.com/adap/flower/tree/main/examples/fl-tabular)
|
|
205
209
|
|
|
206
210
|
## Community
|
|
207
211
|
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
2
|
+
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
|
+
flwr/cli/app.py,sha256=FBcSrE35ll88VE11ib67qgsJe2GYDN25UswV9-cYcX8,1267
|
|
4
|
+
flwr/cli/build.py,sha256=gIR-nTgmLJY5ZtJFLN5ebFBCN3_hoqaioFT77AHojNU,5159
|
|
5
|
+
flwr/cli/config_utils.py,sha256=WK6ywT-mHt2iMG90bspkSGMewv8jXh7yQPVdcPuT2JE,7540
|
|
6
|
+
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
|
+
flwr/cli/install.py,sha256=AI6Zv2dQVDHpLDX1Z_vX5XHVxmZo1OU3ndCSrD2stzQ,7059
|
|
8
|
+
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
9
|
+
flwr/cli/new/new.py,sha256=VNb31-NLedm-_OK_D0aed0QxHO-tVlXjnf9UWVhC_Jk,9612
|
|
10
|
+
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
11
|
+
flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
|
|
12
|
+
flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=PqzkGm0g6Zy-vZK9_0EO3f_U6g1r69lGc4UL8kds5Q8,2696
|
|
13
|
+
flwr/cli/new/templates/app/README.md.tpl,sha256=9-z-JDEao3QmFWNLQyf-OzHlvWxVSzs2s1MeTKk68Zc,699
|
|
14
|
+
flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
|
|
15
|
+
flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
|
|
16
|
+
flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=J0Gn74E7khpLyKJVNqOPu7ev93vkcu1PZugsbxtABMw,52
|
|
17
|
+
flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=62wtB4k1yrDApiG-rvGlOYFuiwAVk8kqJFmyY_v8HLo,1803
|
|
18
|
+
flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=c2LDew2V8BUybZJiz1FeB3Kq4ey0Q2s0S5qNPUTNmI4,1490
|
|
19
|
+
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=gxipt57ldc741qwRqSWtsLQH05JODKdGMTtvoXiBzDA,2906
|
|
20
|
+
flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=DMUXvQd2dr-wEn0ZrYJQhZ0OFUT4PKoHXtiD2haWnCI,570
|
|
21
|
+
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256=WczaR5avJUhfw2Grn2KEC4tDJ4voIYG-2pAy-7i2cT8,1685
|
|
22
|
+
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=xW9cuKhybk5S8IeDZhbeb0DNegDIJGEYrzMKsxgc2GE,2978
|
|
23
|
+
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=u3KKf7hC9xGqOIUJXYCHJ_jiIu3aVbsC8pxVxm4yN6I,1759
|
|
24
|
+
flwr/cli/new/templates/app/code/flwr_tune/__init__.py,sha256=JgNgBtKdm1jKM9625WxappCAVUGtYAmcjKSsXJ1u3ZQ,748
|
|
25
|
+
flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl,sha256=LOtmEYYayMCpF4rJRdo059n5w_cZRmzyuEkCN2qpTyQ,2826
|
|
26
|
+
flwr/cli/new/templates/app/code/flwr_tune/client.py.tpl,sha256=3s41XYHRvmcLhyA60tZyGCNK2wxo2shl6mwmPfZANlA,4155
|
|
27
|
+
flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl,sha256=aPjrwFU020tPkJmOjzSUjb9dSi2bhs4ZTMEyd0uRlCA,867
|
|
28
|
+
flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl,sha256=kPG4AIXQfNNHZGYC3amet3ttI23N72N6jjoDkp_wYIA,2028
|
|
29
|
+
flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl,sha256=cEq9ZWM3zImJVceNtxHC_bYBLE8OChK0BdjpWs5Wz-0,1881
|
|
30
|
+
flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl,sha256=tz4hgAGV6pn5cOFW10ELRNRsUzLBSssHxrH_gSs_jtk,1552
|
|
31
|
+
flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl,sha256=cBPpBVN_N7p4T2a3rqChlngmE0dB_jveOLHesNcEHvs,268
|
|
32
|
+
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=etpjLvGu6pVXzYQBKZp4tTbD3zm461qFo24NliKo74U,591
|
|
33
|
+
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=pIdUH-LgWRAGWQYLlivMNf8XnDSNDe2cCuRjlxbRzys,529
|
|
34
|
+
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
35
|
+
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
36
|
+
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=DW5c8vzXCvFeIE8YIWBhoGnSdv8Ka_e5wd3F6B3xvp8,916
|
|
37
|
+
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=25Ae3kDqjDdBl8LwkDwye69nevd02Pk_e7F3SQKLdyk,624
|
|
38
|
+
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=xMhQ7AumowgLkgUilgjVK7IbpRhPjslhVJU-vID6NY8,856
|
|
39
|
+
flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=G_LOeGErw-6WZAyuT01mXqR6s_BUrQYErXf_nHLujo4,3153
|
|
40
|
+
flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=F05eg149c9icRyVNdfcLyZvAXROQ7QhfifoGw_U1dsg,1530
|
|
41
|
+
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=jWtCULLRr_9bCIJvoTLMx037-SDl_LF8udtA1UGoXDk,2946
|
|
42
|
+
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=NgbPix74X1t3ybaGjqdls30vF1i5oY3L7EQExhWhN74,3812
|
|
43
|
+
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
|
|
44
|
+
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=chTKewidM-st9Uk5o95tGOqJ5FSa1L2R0UdSW2wTr0c,789
|
|
45
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=nD0rRUyr_Cj0TaSH8PsiaMhCwu_BuOVX4oqWfFSvOcE,765
|
|
46
|
+
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=Tq6jeGcoOKzMwWWYxMVnzMcipLURHLiW69iYlD1ywMg,659
|
|
47
|
+
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=SHwYAA2qgIlOAU3Sb9BKSZcZ7O9biACg27MHexXUtDw,741
|
|
48
|
+
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=-FCi64ygMgQke3zApUt0XtkIBo3WtQoPAPhtp_FqkPE,612
|
|
49
|
+
flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=vIO1ArukTC76ogYLNmJIl25MOE_nEELj3IcTZZJjohU,710
|
|
50
|
+
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=jk_5teoyOVM9QdBea8J-nk10S6TKw81QZiiKB54ATF0,654
|
|
51
|
+
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=bRIvPCPvTTI4Eo5b61Rmw8WdDw3sjcohciTXgULN5l8,702
|
|
52
|
+
flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
53
|
+
flwr/cli/run/run.py,sha256=te6J1HxOOzyC47HMIrvbh-_4xVEGM1x_yXLIhlCBkb8,7521
|
|
54
|
+
flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
|
|
55
|
+
flwr/client/__init__.py,sha256=wzJZsYJIHf_8-PMzvfbinyzzjgh1UP1vLrAw2_yEbKI,1345
|
|
56
|
+
flwr/client/app.py,sha256=ZeAl3pKGAFSRtH8WpICCZVgy9ESAo7_8R5GdP3tCXQA,26166
|
|
57
|
+
flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
|
|
58
|
+
flwr/client/client_app.py,sha256=WcO4r6wrdfaus__3s22D2sYjfcptdgmVujUAYdNE6HU,10393
|
|
59
|
+
flwr/client/dpfedavg_numpy_client.py,sha256=ylZ-LpBIKmL1HCiS8kq4pkp2QGalc8rYEzDHdRG3VRQ,7435
|
|
60
|
+
flwr/client/grpc_adapter_client/__init__.py,sha256=QyNWIbsq9DpyMk7oemiO1P3TBFfkfkctnJ1JoAkTl3s,742
|
|
61
|
+
flwr/client/grpc_adapter_client/connection.py,sha256=aOlCYasl8f2CrfcN-WrVEmvjAZFfEGWFOLwD6K9R0ZQ,3951
|
|
62
|
+
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
63
|
+
flwr/client/grpc_client/connection.py,sha256=czhRm23fwTgjN24Vf5nyNQ3hcb5Fo_5k-o9yZnelQCs,9362
|
|
64
|
+
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
65
|
+
flwr/client/grpc_rere_client/client_interceptor.py,sha256=sYPEznuQPdy2BPDlvM9FK0ZRRucb4NfwUee1Z_mN82E,4954
|
|
66
|
+
flwr/client/grpc_rere_client/connection.py,sha256=5n8AknkYAx3q6zuYXY3UqoatP2gQyw8v6rjBr93ee0c,10541
|
|
67
|
+
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=Pw7Toi4wCUIEdBMyv4yKirjgW6814gFhhAmsTYmV4IM,5005
|
|
68
|
+
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
69
|
+
flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
|
|
70
|
+
flwr/client/message_handler/message_handler.py,sha256=q1fiWQob4TCaSHxvIklEtqsz-TwupXNYK-yKV9LubWY,6531
|
|
71
|
+
flwr/client/message_handler/task_handler.py,sha256=ZDJBKmrn2grRMNl1rU1iGs7FiMHL5VmZiSp_6h9GHVU,1824
|
|
72
|
+
flwr/client/mod/__init__.py,sha256=37XeXZLFq_tzFVKVtC9JaigM2bSAU7BrGQvMPCE3Q28,1159
|
|
73
|
+
flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
|
|
74
|
+
flwr/client/mod/comms_mods.py,sha256=QzJF7lgbYGnZvY805rkBfDsYCRC0HBHeDkJQ_JXhUZY,2624
|
|
75
|
+
flwr/client/mod/localdp_mod.py,sha256=SBDhW71vY6lEU_lQNOySLUWypkNwUwuHAtbBErOarpM,4982
|
|
76
|
+
flwr/client/mod/secure_aggregation/__init__.py,sha256=A7DzZ3uvXTUkuHBzrxJMWQQD4RtO_PsVA53yHc4oWco,849
|
|
77
|
+
flwr/client/mod/secure_aggregation/secagg_mod.py,sha256=wI9tuIEvMUETz-wVIEbPYvh-1nK9CEylBLGoVpNhL94,1095
|
|
78
|
+
flwr/client/mod/secure_aggregation/secaggplus_mod.py,sha256=fZTfIELkYS64lpgxQKL66s-QHjCn-159qfLoNoIMJjc,19699
|
|
79
|
+
flwr/client/mod/utils.py,sha256=UAJXiB0wwVyLkCkpW_i5BXikdBR65p8sNFr7VNHm2nk,1226
|
|
80
|
+
flwr/client/node_state.py,sha256=Z0ZUPL5BWde9nfAPwR7cSV9YiNQeiEHbuMKDxqpy6-M,3492
|
|
81
|
+
flwr/client/node_state_tests.py,sha256=-4fVsn7y-z9NYBuhq-cjepgxgVuPqqQgDOL4SofrdIo,2239
|
|
82
|
+
flwr/client/numpy_client.py,sha256=u76GWAdHmJM88Agm2EgLQSvO8Jnk225mJTk-_TmPjFE,10283
|
|
83
|
+
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
84
|
+
flwr/client/rest_client/connection.py,sha256=N9D1YCTy6Jk8MLWDGFWTE261_EEgIfzw4rjXD8k3JS4,12350
|
|
85
|
+
flwr/client/supernode/__init__.py,sha256=8JuFMx5B06SymNWZ9ndvUimD0mopq0Yp2RdQaUANsw8,937
|
|
86
|
+
flwr/client/supernode/app.py,sha256=mbSs612GCpRsv6xIi_TD_V2Gi7aYBdpo_e4nKs8kAvI,15910
|
|
87
|
+
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
88
|
+
flwr/common/__init__.py,sha256=4cBLNNnNTwHDnL_HCxhU5ILCSZ6fYh3A_aMBtlvHTVw,3721
|
|
89
|
+
flwr/common/address.py,sha256=wRu1Luezx1PWadwV9OA_KNko01oVvbRnPqfzaDn8QOk,1882
|
|
90
|
+
flwr/common/config.py,sha256=soJEX0bo3gcKpYlZBzu4NGiNVmwF0tEvqSnwWQsu3pw,6548
|
|
91
|
+
flwr/common/constant.py,sha256=1XxuRezsr9fl3xvQNPR2kyFkwNeG_f5vZayv0PFh0kY,3012
|
|
92
|
+
flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
|
|
93
|
+
flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
|
|
94
|
+
flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
|
|
95
|
+
flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
|
|
96
|
+
flwr/common/dp.py,sha256=SZ3MtJKpjxUeQeyb2pqWSF0S_h9rZtCGYPToIxqcNj8,2004
|
|
97
|
+
flwr/common/exit_handlers.py,sha256=2Nt0wLhc17KQQsLPFSRAjjhUiEFfJK6tNozdGiIY4Fs,2812
|
|
98
|
+
flwr/common/grpc.py,sha256=_9838_onFLx7W6_lakUN35ziKpdcKp7fA-0jE0EhcEQ,2460
|
|
99
|
+
flwr/common/logger.py,sha256=42rLD69BetRkVKYXZLUaTgyjPxsCn6phVbndMC1fWjk,8130
|
|
100
|
+
flwr/common/message.py,sha256=QmFYYXA-3e9M8tGO-3NPyAI8yvdmcpdYaA_noR1DE88,13194
|
|
101
|
+
flwr/common/object_ref.py,sha256=qXwF441qulzl18pggrj9LDLtz92K83xjAuSA0HfPKP0,8724
|
|
102
|
+
flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
|
|
103
|
+
flwr/common/pyproject.py,sha256=EI_ovbCHGmhYrdPx0RSDi5EkFZFof-8m1PA54c0ZTjc,1385
|
|
104
|
+
flwr/common/record/__init__.py,sha256=ejDBQOIA0OkwZAC5cK_tTPHA4oAM0Ju7Oi13-NneMlE,1054
|
|
105
|
+
flwr/common/record/configsrecord.py,sha256=VKeFEYa6cneyStqQlUOaKj12by5ZI_NXYR25LOEVeo8,4652
|
|
106
|
+
flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
|
|
107
|
+
flwr/common/record/metricsrecord.py,sha256=Yv99oRa3LzFgSfwl903S8sB8rAgr3Sv6i6ovW7pdHsA,3923
|
|
108
|
+
flwr/common/record/parametersrecord.py,sha256=2sgjxsolFBUfnYYstIciOir0HAs95lqWY3pdcsYvsso,4838
|
|
109
|
+
flwr/common/record/recordset.py,sha256=wOonAziLalABXzCHF5ih-QzXsKXZAKCls3HhMFJCWkY,5056
|
|
110
|
+
flwr/common/record/typeddict.py,sha256=2NW8JF27p1uNWaqDbJ7bMkItA5x4ygYT8aHrf8NaqnE,3879
|
|
111
|
+
flwr/common/recordset_compat.py,sha256=SYuJJmsfsWUP60nXREviyl78nOojKfMekALjzeZLsP8,14009
|
|
112
|
+
flwr/common/retry_invoker.py,sha256=dQY5fPIKhy9OiFswZhLxA9fB455u-DYCvDVcFJmrPDk,11707
|
|
113
|
+
flwr/common/secure_aggregation/__init__.py,sha256=erPnTWdOfMH0K0HQTmj5foDJ6t3iYcExy2aACy8iZNQ,731
|
|
114
|
+
flwr/common/secure_aggregation/crypto/__init__.py,sha256=nlHesCWy8xxE5s6qHWnauCtyClcMQ2K0CEXAHakY5n0,738
|
|
115
|
+
flwr/common/secure_aggregation/crypto/shamir.py,sha256=qS6_eqVvkXuDQHdW4Kvb2Nmkof-cZT76-kq6JLDaJbA,2792
|
|
116
|
+
flwr/common/secure_aggregation/crypto/symmetric_encryption.py,sha256=cE1N9H-hF0iZzOWULQZuTp6zkfRsY-K4YpZ4BsghpvM,4173
|
|
117
|
+
flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=7Y0WnWcYi8UWZEKnUb4qYHLI2HfjNG9itqB8ngkUu2k,3026
|
|
118
|
+
flwr/common/secure_aggregation/quantization.py,sha256=1obYr9qneaI8r-A0F_pghrPNG9FcAwM5svSLbzMw6C4,2310
|
|
119
|
+
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
120
|
+
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=3VssKgYF7HQIkSpROnEUoYWVt47p12PE_Rj4nYqqg04,3221
|
|
121
|
+
flwr/common/serde.py,sha256=VgfTKU4B0g7qJkOf7w8uaHlVysEd_NrwzQCNDfkfRHU,28466
|
|
122
|
+
flwr/common/telemetry.py,sha256=nSjJHDitPhzB2qUl6LeSMT9Zld5lIk9uW98RpxQwiZw,8366
|
|
123
|
+
flwr/common/typing.py,sha256=VJvdhrVxu6a1y2lgZSjHdSgYqXQ6Cma4t_owI3EhOes,4986
|
|
124
|
+
flwr/common/version.py,sha256=W1ntylR04xkCP6zeSet6sRtBn7P1cje2lOqBJgYBjJY,1349
|
|
125
|
+
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
126
|
+
flwr/proto/clientappio_pb2.py,sha256=018Lj2HBXmEeq6KsmqFVVx2DGO2nDQqTA6YHEPjCTbc,3242
|
|
127
|
+
flwr/proto/clientappio_pb2.pyi,sha256=M0-zbx5cNMUtGY7orsSQWwXo5EbN0CvwQPTuQFwXaCg,4855
|
|
128
|
+
flwr/proto/clientappio_pb2_grpc.py,sha256=7WjUVfUUKctIloX3bkKjDprhtkqj2d9Xj3UlYxKzp1s,4513
|
|
129
|
+
flwr/proto/clientappio_pb2_grpc.pyi,sha256=30X6jhMIjy5w3iZsDCBGDDwNwj3vj3RslZVWkRvzTn0,1413
|
|
130
|
+
flwr/proto/common_pb2.py,sha256=uzSmq0FJdC-MriN9UGPFs7QVIFTKJmX5lyLnzcyZ5WE,2405
|
|
131
|
+
flwr/proto/common_pb2.pyi,sha256=0ylFO7G79qqLuRg9IQUCBdgyIIFv4m8VzrfoWad4xXU,5394
|
|
132
|
+
flwr/proto/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
133
|
+
flwr/proto/common_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
134
|
+
flwr/proto/driver_pb2.py,sha256=Zeh0qvAdcKED8fxHDai67mgDq0iFR0b87C8BbOemvi8,4299
|
|
135
|
+
flwr/proto/driver_pb2.pyi,sha256=apvTyy7N0SV3H8mueOwgB8aDETtxb6ZuKB1g1nMmJ4o,6390
|
|
136
|
+
flwr/proto/driver_pb2_grpc.py,sha256=ZNDFyPfEZt5L3eFqJRwAE_ylwWLTNf1hfXzUGkVpzTI,10462
|
|
137
|
+
flwr/proto/driver_pb2_grpc.pyi,sha256=_SLFI7AvJv5JU_7axipERF4oTspRh3bzZswLiKDtV1E,2812
|
|
138
|
+
flwr/proto/error_pb2.py,sha256=LarjKL90LbwkXKlhzNrDssgl4DXcvIPve8NVCXHpsKA,1084
|
|
139
|
+
flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
|
|
140
|
+
flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
141
|
+
flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
142
|
+
flwr/proto/exec_pb2.py,sha256=7b1JUZgt04lBxdXpnd3WOOwmY2egUausm4G1wbmXFPs,3120
|
|
143
|
+
flwr/proto/exec_pb2.pyi,sha256=R9xCAUxkLvuXcvQfhNGZ5Qy8qiUCdjN-gp3Iy5BmkNo,4110
|
|
144
|
+
flwr/proto/exec_pb2_grpc.py,sha256=faAN19XEMP8GTKrcIU6jvlWkN44n2KiUsZh_OG0sYcg,4072
|
|
145
|
+
flwr/proto/exec_pb2_grpc.pyi,sha256=VrFhT1Um3Nb8UC2YqnR9GIiM-Yyx0FqaxVOWljh-G_w,1208
|
|
146
|
+
flwr/proto/fab_pb2.py,sha256=ztC3HnD5e-bYpp7lxrlxkdc30haAlBHswTnt4X5G1eg,1432
|
|
147
|
+
flwr/proto/fab_pb2.pyi,sha256=wQXdQkcij6CrkmclIT5tU9SkOSZHTqm3PxWJWu4-CPI,1970
|
|
148
|
+
flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
149
|
+
flwr/proto/fab_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
150
|
+
flwr/proto/fleet_pb2.py,sha256=euBC2M_LfQSwiSK9kFi18OvoV1gnQT4cC9lAMCCiOGY,4729
|
|
151
|
+
flwr/proto/fleet_pb2.pyi,sha256=45kQ9YINv3VG0nxWSjCN4SppdepjKW8rRBlxKxz7ud4,7571
|
|
152
|
+
flwr/proto/fleet_pb2_grpc.py,sha256=VyqpAcX-6tiQVehQfRMbCErtIW4Mot1uXUSzRaklZTI,12228
|
|
153
|
+
flwr/proto/fleet_pb2_grpc.pyi,sha256=VvOtOBwPcgoHRPgj2JENXq2HbcfU8cxp82E9tDfGyEs,3216
|
|
154
|
+
flwr/proto/grpcadapter_pb2.py,sha256=bb8mW09XzNCpMdr1KuYQkefPFWR8lc8y1uL6Uk0TtsM,1843
|
|
155
|
+
flwr/proto/grpcadapter_pb2.pyi,sha256=AR77gDsF6f8zqSIQp3877DUd7S8lP95lFak5Ir_WPkw,1716
|
|
156
|
+
flwr/proto/grpcadapter_pb2_grpc.py,sha256=rRNuNES5nBugUZWfeA8oAy8dMHgzqU_PF1srTseo3b8,2634
|
|
157
|
+
flwr/proto/grpcadapter_pb2_grpc.pyi,sha256=AgA9Qo_lnANb9SNuPzbZGAxupau-xcqYawZz6vqf-24,735
|
|
158
|
+
flwr/proto/message_pb2.py,sha256=7sP1PEOoZnfynNcM_KmlHn2bFM8eZpHYJbzkCSoAT2E,3110
|
|
159
|
+
flwr/proto/message_pb2.pyi,sha256=0IF_l1-fgQOs2uBNqu6PszzfulRQppdUIvDA-T6XeJ8,5475
|
|
160
|
+
flwr/proto/message_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
161
|
+
flwr/proto/message_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
162
|
+
flwr/proto/node_pb2.py,sha256=1zfXEvgGObglIcaVb4SLFmOcHZvA8eHzEtMFM5A6FYY,1081
|
|
163
|
+
flwr/proto/node_pb2.pyi,sha256=aX3BHhgXvJE1rvcRnEE_gB-5GcaFQ0SJ88yTE223bjI,751
|
|
164
|
+
flwr/proto/node_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
165
|
+
flwr/proto/node_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
166
|
+
flwr/proto/recordset_pb2.py,sha256=un8L0kvBcgFXQIiQweOseeIJBjlOozUvQY9uTQ42Dqo,6009
|
|
167
|
+
flwr/proto/recordset_pb2.pyi,sha256=NPzCJWAj1xLWzeZ_xZ6uaObQjQfWGnnqlLtn4J-SoFY,14161
|
|
168
|
+
flwr/proto/recordset_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
169
|
+
flwr/proto/recordset_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
170
|
+
flwr/proto/run_pb2.py,sha256=Fs2HlEgOFDm9-No40K8GE2o_4aTRXZrxa_jTeYPz9l4,2102
|
|
171
|
+
flwr/proto/run_pb2.pyi,sha256=oIaKIjgyjnifossFMTSqQISEMb1IJYhSYGQYcAGBIS4,3063
|
|
172
|
+
flwr/proto/run_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
173
|
+
flwr/proto/run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
174
|
+
flwr/proto/task_pb2.py,sha256=xuXMmfPAWd7lhyyqhGrmjsfn_j_s5HRz21vMXtxziNE,2361
|
|
175
|
+
flwr/proto/task_pb2.pyi,sha256=KJVsLm-THY5QjHreHDm_-OS1tyZyD61mx6BzOpoeMjw,4320
|
|
176
|
+
flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
177
|
+
flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
|
|
178
|
+
flwr/proto/transport_pb2.py,sha256=cURzfpCgZvH7GEvBPLvTYijE3HvhK1MePjINk4xYArk,9781
|
|
179
|
+
flwr/proto/transport_pb2.pyi,sha256=CZvJRWTU3QWFWLXNFtyLSrSKFatIyMcy-ohzLbQ-G9c,21497
|
|
180
|
+
flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
|
|
181
|
+
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
182
|
+
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
183
|
+
flwr/server/__init__.py,sha256=BxzPhvouvWFGi7CFpI5b4EeVR9XDqbK7Ndqg24EL_Rw,1679
|
|
184
|
+
flwr/server/app.py,sha256=WABxljYzn9mEaHvnXXBceVkBx2V6lmlFGpl5f0Uue08,23736
|
|
185
|
+
flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
|
|
186
|
+
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
187
|
+
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
188
|
+
flwr/server/compat/app.py,sha256=u0elxfiLjGouCMQIy5KnCpeCHdc3s0qvojUm8unInIs,3421
|
|
189
|
+
flwr/server/compat/app_utils.py,sha256=B9pec7LnYACzowXKZTZNu3SNS-fSaHfefwvRyAQa4Nc,3456
|
|
190
|
+
flwr/server/compat/driver_client_proxy.py,sha256=BxTDo7i89VAG2tuF4x7zogSVn2bXPMr0H2H0lERzW9c,5444
|
|
191
|
+
flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
|
|
192
|
+
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
193
|
+
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
194
|
+
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
195
|
+
flwr/server/driver/grpc_driver.py,sha256=4LMLDXjMU1VdHsj9nyqFIF71GWVsUR85fsO6biWMHRU,9710
|
|
196
|
+
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
197
|
+
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
198
|
+
flwr/server/run_serverapp.py,sha256=8HCGSVaNYd2cnd_j-JpVTRH7Cg8_U7ATZUejiMmJe0o,8894
|
|
199
|
+
flwr/server/server.py,sha256=wsXsxMZ9SQ0B42nBnUlcV83NJPycgrgg5bFwcQ4BYBE,17821
|
|
200
|
+
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
201
|
+
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
202
|
+
flwr/server/serverapp_components.py,sha256=-IV_CitOfrJclJj2jNdbN1Q65PyFmtKtrTIg1hc6WQw,2118
|
|
203
|
+
flwr/server/strategy/__init__.py,sha256=tQer2SwjDnvgFFuJMZM-S01Z615N5XK6MaCvpm4BMU0,2836
|
|
204
|
+
flwr/server/strategy/aggregate.py,sha256=QyRIJtI5gnuY1NbgrcrOvkHxGIxBvApq7d9Y4xl-6W4,13468
|
|
205
|
+
flwr/server/strategy/bulyan.py,sha256=zHBSZ40KtRg07tXtwWg2SRvpt89oeRbUO9zTnOFYx2k,6532
|
|
206
|
+
flwr/server/strategy/dp_adaptive_clipping.py,sha256=Et8HuHoZ7g1J1yEsSGc8HTjjbppY_0u70nKcm-GMtbQ,17406
|
|
207
|
+
flwr/server/strategy/dp_fixed_clipping.py,sha256=34pHIxq_jqHFhaNBpjUBF1qtKF860WqWntD9KMKlWWA,12853
|
|
208
|
+
flwr/server/strategy/dpfedavg_adaptive.py,sha256=i791RWB4tS0pPZHGMxkdwedEYE2e-WiYUbPonZf5wmM,4877
|
|
209
|
+
flwr/server/strategy/dpfedavg_fixed.py,sha256=Djj44UBgoMpLKnvImGMggzJMcQk9xX6N4_QOqjT8zPY,7219
|
|
210
|
+
flwr/server/strategy/fault_tolerant_fedavg.py,sha256=veGcehB6rXT_MihNDrD1v5JY-TxJi7fybdDl-OZooDQ,5900
|
|
211
|
+
flwr/server/strategy/fedadagrad.py,sha256=u0CQYBf85uxsvGXRNwugmJjm_RZ6udAxmZPvI7mc1AQ,6505
|
|
212
|
+
flwr/server/strategy/fedadam.py,sha256=uFfzs-QKZmVXDi51hnME9KzfWSuIvKKvkpNu56cqnX4,6763
|
|
213
|
+
flwr/server/strategy/fedavg.py,sha256=wPs2p2DmQ-v5zkmvEoT5kljVYJUt-zg4rqYK5CMMLs4,11799
|
|
214
|
+
flwr/server/strategy/fedavg_android.py,sha256=F_-vjBG66J4u6brOrBPhZHGUpyNhng_Quujt2Cg5uFs,9784
|
|
215
|
+
flwr/server/strategy/fedavgm.py,sha256=R0KWa9VTO6qX7fE2N0o4jQ3T4O6utEjgiV6VMkS8NEs,8132
|
|
216
|
+
flwr/server/strategy/fedmedian.py,sha256=xQ48q4vhwJNFG1kmtGV24bBbHnvXB-ZXjMlGRHY56W8,2704
|
|
217
|
+
flwr/server/strategy/fedopt.py,sha256=4k8xWobvggJxagUlabfM7Ad4zH2kI6ipjF7A10skCHk,5242
|
|
218
|
+
flwr/server/strategy/fedprox.py,sha256=yrdhimyDQKmwM_PmzXQJuqW0Mbi0L29ckruXrUOOdSI,6862
|
|
219
|
+
flwr/server/strategy/fedtrimmedavg.py,sha256=p12uA7EN0k_CfYeh513P3m8mH3h14SmR3C_MQ9vw6Sc,5890
|
|
220
|
+
flwr/server/strategy/fedxgb_bagging.py,sha256=l5nIhLYiecH__bVnyt-IXA8DTliaJ2E8sN0sQSjA5hY,6080
|
|
221
|
+
flwr/server/strategy/fedxgb_cyclic.py,sha256=cC9OxgLS3zzIFgmEtXUY2PAZj7_FHU-CjjnqHI9J5Mw,5607
|
|
222
|
+
flwr/server/strategy/fedxgb_nn_avg.py,sha256=oWb5M4y8QGNiLBbu6IOkdfzoPVUDrDTMqn0eZohUPZI,4047
|
|
223
|
+
flwr/server/strategy/fedyogi.py,sha256=WWQK8u7z3tiNRRNYvx0wEydvaKxlVVEDLSAONmz7JqA,6801
|
|
224
|
+
flwr/server/strategy/krum.py,sha256=hRrnFD0OAdQCP-hMUZheGj3tpE5QdJ5M4PsxkeNykJI,6285
|
|
225
|
+
flwr/server/strategy/qfedavg.py,sha256=LZ-zVHRFPVMeeROgDHfMshHaAKaq9Hu9Ev9blREQmf0,10150
|
|
226
|
+
flwr/server/strategy/strategy.py,sha256=g6VoIFogEviRub6G4QsKdIp6M_Ek6GhBhqcdNx5ueUk,7543
|
|
227
|
+
flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
|
|
228
|
+
flwr/server/superlink/driver/__init__.py,sha256=_JaRW-FdyikHc7souUrnk3mwTGViraEJCeUBY_M_ocs,712
|
|
229
|
+
flwr/server/superlink/driver/driver_grpc.py,sha256=wMqYVeDwIc_FEfQPbCzd9p1YyIcjwiFUMX4QZjGSx5k,1932
|
|
230
|
+
flwr/server/superlink/driver/driver_servicer.py,sha256=UWJKw7-eVILw97MdTGjZt9yV0noXnrzcO72bYZ0b2kM,6010
|
|
231
|
+
flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
|
|
232
|
+
flwr/server/superlink/ffs/disk_ffs.py,sha256=ZsBCQVpuScm5QNul_XWlXU65XEaOGbH9ULIls6h7p1A,3213
|
|
233
|
+
flwr/server/superlink/ffs/ffs.py,sha256=AVl1AM7ZfVTPOIEQJuMR-aXUUd2foSkRe49NWoPecL8,2384
|
|
234
|
+
flwr/server/superlink/fleet/__init__.py,sha256=76od-HhYjOUoZFLFDFCFnNHI4JLAmaXQEAyp7LWlQpc,711
|
|
235
|
+
flwr/server/superlink/fleet/grpc_adapter/__init__.py,sha256=spBQQJeYz8zPOBOfyMLv87kqWPASGB73AymcLXdFaYA,742
|
|
236
|
+
flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py,sha256=K4LkOsVzIdsR7Py_9cfo6CR-bDocpP15ktHTc2UnJ9k,4957
|
|
237
|
+
flwr/server/superlink/fleet/grpc_bidi/__init__.py,sha256=dkSKQMuMTYh1qSnuN87cAPv_mcdLg3f0PqTABHs8gUE,735
|
|
238
|
+
flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py,sha256=KCtr4WzoVvYKEgDQFu4XEStXheO7DN2znTiQX6WFA9k,5993
|
|
239
|
+
flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFMfX7D1EUPWhD29n_cI0fS2Nk,6458
|
|
240
|
+
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
241
|
+
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=ROH-dr7TQZ9nVXjkKOzMhxidJguX2li8--nDnXRi-dU,12095
|
|
242
|
+
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
243
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=D7OBFZSDBTpA5MiNHtAmELr569gqhjpCHbFlsvqx4Gg,3705
|
|
244
|
+
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=v54f7yEX0Xwqh9KRDPzKgJdSBsosus4RzUyzTl-_u5Q,7738
|
|
245
|
+
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
246
|
+
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=KgNah2AaNDiqsTEa653wQqVGUy8hvNAOFzeUfaQR6-Y,3893
|
|
247
|
+
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
248
|
+
flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=yoSU-6nCJF9ASHGNpSY69nZbUhPGXkMIKYDgybKQX3c,7672
|
|
249
|
+
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
250
|
+
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
|
|
251
|
+
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=KL0eHScWr_YfP2eY3VP8_OOMgZwnRNW7qpu5J-ISpXI,2212
|
|
252
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=6-CjUTv1cFnAb53cZzEYCuVLrVu60tPczTo8meqeqbk,6289
|
|
253
|
+
flwr/server/superlink/fleet/vce/vce_api.py,sha256=AeJBEZIC3V54Wg4bzBJa0aO4IXUNiRzRDRv-EKhqtpQ,12750
|
|
254
|
+
flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
|
|
255
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=LnKlnXe9JjVHb5_XOo6eD1RQhlCvJVKgz_CkXrMz8DY,13069
|
|
256
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=LdLnHtF8C-1L1IAglfZPqIuKa782Qo7qAYzTXMdMYGM,29052
|
|
257
|
+
flwr/server/superlink/state/state.py,sha256=juv9a8pQLxylfcZcXRaDBLG5gFG4MXytIcG6NlZTn4E,8117
|
|
258
|
+
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
259
|
+
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
260
|
+
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
261
|
+
flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
|
|
262
|
+
flwr/server/utils/tensorboard.py,sha256=l6aMVdtZbbfCX8uwFW-WxH6P171-R-tulMcPhlykowo,5485
|
|
263
|
+
flwr/server/utils/validator.py,sha256=pzyXoOEEPSoYC2UEzened8IKSFRI-kIqqI0QlwRK9jk,5301
|
|
264
|
+
flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
|
|
265
|
+
flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
|
|
266
|
+
flwr/server/workflow/default_workflows.py,sha256=_GqFCaxtiq3_UVCvZWgJ200QroGSI9qibeVcT2R71ao,14003
|
|
267
|
+
flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
|
|
268
|
+
flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=wpAkYPId0nfK6SgpUAtsCni4_MQLd-uqJ81tUKu3xlI,5838
|
|
269
|
+
flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=LLW4LfPAVdpMhIjJBopHVl-OltYuVSqsESw3PULcrN8,29694
|
|
270
|
+
flwr/simulation/__init__.py,sha256=ybVBW3xT6cg_IasJV4_ymI3bVrCbFhw1mmcfrdfl3q0,1359
|
|
271
|
+
flwr/simulation/app.py,sha256=te3dQB3eodPwzsv1y4daPyaskIAaOtgoHaQLobrqoqY,15163
|
|
272
|
+
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
273
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=3j0HgzjrlYjnzdTRy8aA4Nf6VoUvxi1hGRQkGSU5z6c,19020
|
|
274
|
+
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
|
|
275
|
+
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
276
|
+
flwr/simulation/run_simulation.py,sha256=BPW_zn5xuGlOHKZDvl8J-IuwH7E8ZZAIR2zcXNjsLMo,23391
|
|
277
|
+
flwr/superexec/__init__.py,sha256=9h94ogLxi6eJ3bUuJYq3E3pApThSabTPiSmPAGlTkHE,800
|
|
278
|
+
flwr/superexec/app.py,sha256=bmYl8zABnWka9WhRQxX4p1YAI76cYG655dP09ro-V0o,6485
|
|
279
|
+
flwr/superexec/deployment.py,sha256=B--96bAvyotQX-c4-umXIe50uCw4HVjD79rXCQtSUH4,6357
|
|
280
|
+
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
281
|
+
flwr/superexec/exec_servicer.py,sha256=fxQAKfgmQRSnYq5anjryfGeRbsZrNFEkuiNcTZhRwiE,2320
|
|
282
|
+
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
283
|
+
flwr/superexec/simulation.py,sha256=lfdClQYSAIMHe43aJ0Pk-kBw_xoV09LsIMfHo2eo-Ck,6775
|
|
284
|
+
flwr_nightly-1.11.0.dev20240813.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
285
|
+
flwr_nightly-1.11.0.dev20240813.dist-info/METADATA,sha256=ZfHPCwurXVhKgVFFPJ3XAwtN6e45R-GcF0rIlNPMhQw,15690
|
|
286
|
+
flwr_nightly-1.11.0.dev20240813.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
287
|
+
flwr_nightly-1.11.0.dev20240813.dist-info/entry_points.txt,sha256=KqQQGNjnr-2IT-bheOkO9yM4Gv5BtjaBgYKRkp-NhVg,388
|
|
288
|
+
flwr_nightly-1.11.0.dev20240813.dist-info/RECORD,,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
flower-client-app=flwr.client:run_client_app
|
|
3
|
+
flower-server-app=flwr.server:run_server_app
|
|
4
|
+
flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
|
|
5
|
+
flower-superexec=flwr.superexec:run_superexec
|
|
6
|
+
flower-superlink=flwr.server:run_superlink
|
|
7
|
+
flower-supernode=flwr.client:run_supernode
|
|
8
|
+
flwr=flwr.cli.app:app
|
|
9
|
+
flwr-clientapp=flwr.client.supernode:flwr_clientapp
|
|
10
|
+
|